zavudev 0.10.0 → 0.12.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 (122) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/zavudev/client.rb +8 -0
  5. data/lib/zavudev/models/broadcast_contact.rb +10 -1
  6. data/lib/zavudev/models/broadcast_content.rb +18 -4
  7. data/lib/zavudev/models/broadcasts/contact_add_params.rb +17 -4
  8. data/lib/zavudev/models/contact_delete_params.rb +20 -0
  9. data/lib/zavudev/models/function_create_params.rb +104 -0
  10. data/lib/zavudev/models/function_create_response.rb +168 -0
  11. data/lib/zavudev/models/function_delete_params.rb +20 -0
  12. data/lib/zavudev/models/function_delete_response.rb +28 -0
  13. data/lib/zavudev/models/function_deploy_params.rb +37 -0
  14. data/lib/zavudev/models/function_deploy_response.rb +104 -0
  15. data/lib/zavudev/models/function_get_deployment_params.rb +20 -0
  16. data/lib/zavudev/models/function_get_deployment_response.rb +104 -0
  17. data/lib/zavudev/models/function_retrieve_params.rb +20 -0
  18. data/lib/zavudev/models/function_retrieve_response.rb +168 -0
  19. data/lib/zavudev/models/function_tail_logs_params.rb +58 -0
  20. data/lib/zavudev/models/function_tail_logs_response.rb +41 -0
  21. data/lib/zavudev/models/function_update_params.rb +37 -0
  22. data/lib/zavudev/models/function_update_response.rb +168 -0
  23. data/lib/zavudev/models/functions/secret_list_params.rb +22 -0
  24. data/lib/zavudev/models/functions/secret_list_response.rb +59 -0
  25. data/lib/zavudev/models/functions/secret_set_params.rb +34 -0
  26. data/lib/zavudev/models/functions/secret_set_response.rb +10 -0
  27. data/lib/zavudev/models/functions/secret_unset_params.rb +28 -0
  28. data/lib/zavudev/models/me_retrieve_params.rb +14 -0
  29. data/lib/zavudev/models/me_retrieve_response.rb +85 -0
  30. data/lib/zavudev/models/message_content.rb +20 -4
  31. data/lib/zavudev/models/message_show_typing_params.rb +26 -0
  32. data/lib/zavudev/models/message_show_typing_response.rb +16 -0
  33. data/lib/zavudev/models/senders/agent/execution_retrieve_params.rb +30 -0
  34. data/lib/zavudev/models/senders/agent/execution_retrieve_response.rb +20 -0
  35. data/lib/zavudev/models/template.rb +6 -3
  36. data/lib/zavudev/models.rb +22 -0
  37. data/lib/zavudev/resources/contacts.rb +24 -0
  38. data/lib/zavudev/resources/functions/secrets.rb +98 -0
  39. data/lib/zavudev/resources/functions.rb +220 -0
  40. data/lib/zavudev/resources/me.rb +33 -0
  41. data/lib/zavudev/resources/messages.rb +31 -0
  42. data/lib/zavudev/resources/senders/agent/executions.rb +26 -0
  43. data/lib/zavudev/version.rb +1 -1
  44. data/lib/zavudev.rb +29 -0
  45. data/rbi/zavudev/client.rbi +6 -0
  46. data/rbi/zavudev/models/broadcast_contact.rbi +9 -0
  47. data/rbi/zavudev/models/broadcast_content.rbi +23 -4
  48. data/rbi/zavudev/models/broadcasts/contact_add_params.rbi +23 -4
  49. data/rbi/zavudev/models/contact_delete_params.rbi +35 -0
  50. data/rbi/zavudev/models/function_create_params.rbi +177 -0
  51. data/rbi/zavudev/models/function_create_response.rbi +277 -0
  52. data/rbi/zavudev/models/function_delete_params.rbi +35 -0
  53. data/rbi/zavudev/models/function_delete_response.rbi +44 -0
  54. data/rbi/zavudev/models/function_deploy_params.rbi +63 -0
  55. data/rbi/zavudev/models/function_deploy_response.rbi +196 -0
  56. data/rbi/zavudev/models/function_get_deployment_params.rbi +38 -0
  57. data/rbi/zavudev/models/function_get_deployment_response.rbi +201 -0
  58. data/rbi/zavudev/models/function_retrieve_params.rbi +35 -0
  59. data/rbi/zavudev/models/function_retrieve_response.rbi +277 -0
  60. data/rbi/zavudev/models/function_tail_logs_params.rbi +90 -0
  61. data/rbi/zavudev/models/function_tail_logs_response.rbi +75 -0
  62. data/rbi/zavudev/models/function_update_params.rbi +63 -0
  63. data/rbi/zavudev/models/function_update_response.rbi +277 -0
  64. data/rbi/zavudev/models/functions/secret_list_params.rbi +40 -0
  65. data/rbi/zavudev/models/functions/secret_list_response.rbi +118 -0
  66. data/rbi/zavudev/models/functions/secret_set_params.rbi +53 -0
  67. data/rbi/zavudev/models/functions/secret_set_response.rbi +9 -0
  68. data/rbi/zavudev/models/functions/secret_unset_params.rbi +48 -0
  69. data/rbi/zavudev/models/me_retrieve_params.rbi +27 -0
  70. data/rbi/zavudev/models/me_retrieve_response.rbi +151 -0
  71. data/rbi/zavudev/models/message_content.rbi +27 -4
  72. data/rbi/zavudev/models/message_show_typing_params.rbi +46 -0
  73. data/rbi/zavudev/models/message_show_typing_response.rbi +26 -0
  74. data/rbi/zavudev/models/senders/agent/execution_retrieve_params.rbi +50 -0
  75. data/rbi/zavudev/models/senders/agent/execution_retrieve_response.rbi +41 -0
  76. data/rbi/zavudev/models/template.rbi +10 -4
  77. data/rbi/zavudev/models.rbi +22 -0
  78. data/rbi/zavudev/resources/contacts.rbi +15 -0
  79. data/rbi/zavudev/resources/functions/secrets.rbi +69 -0
  80. data/rbi/zavudev/resources/functions.rbi +171 -0
  81. data/rbi/zavudev/resources/me.rbi +22 -0
  82. data/rbi/zavudev/resources/messages.rbi +21 -0
  83. data/rbi/zavudev/resources/senders/agent/executions.rbi +14 -0
  84. data/sig/zavudev/client.rbs +4 -0
  85. data/sig/zavudev/models/broadcast_contact.rbs +9 -0
  86. data/sig/zavudev/models/broadcast_content.rbs +9 -0
  87. data/sig/zavudev/models/broadcasts/contact_add_params.rbs +9 -0
  88. data/sig/zavudev/models/contact_delete_params.rbs +23 -0
  89. data/sig/zavudev/models/function_create_params.rbs +107 -0
  90. data/sig/zavudev/models/function_create_response.rbs +126 -0
  91. data/sig/zavudev/models/function_delete_params.rbs +23 -0
  92. data/sig/zavudev/models/function_delete_response.rbs +22 -0
  93. data/sig/zavudev/models/function_deploy_params.rbs +40 -0
  94. data/sig/zavudev/models/function_deploy_response.rbs +98 -0
  95. data/sig/zavudev/models/function_get_deployment_params.rbs +23 -0
  96. data/sig/zavudev/models/function_get_deployment_response.rbs +98 -0
  97. data/sig/zavudev/models/function_retrieve_params.rbs +23 -0
  98. data/sig/zavudev/models/function_retrieve_response.rbs +126 -0
  99. data/sig/zavudev/models/function_tail_logs_params.rbs +61 -0
  100. data/sig/zavudev/models/function_tail_logs_response.rbs +37 -0
  101. data/sig/zavudev/models/function_update_params.rbs +40 -0
  102. data/sig/zavudev/models/function_update_response.rbs +126 -0
  103. data/sig/zavudev/models/functions/secret_list_params.rbs +25 -0
  104. data/sig/zavudev/models/functions/secret_list_response.rbs +70 -0
  105. data/sig/zavudev/models/functions/secret_set_params.rbs +34 -0
  106. data/sig/zavudev/models/functions/secret_set_response.rbs +7 -0
  107. data/sig/zavudev/models/functions/secret_unset_params.rbs +30 -0
  108. data/sig/zavudev/models/me_retrieve_params.rbs +14 -0
  109. data/sig/zavudev/models/me_retrieve_response.rbs +75 -0
  110. data/sig/zavudev/models/message_content.rbs +9 -0
  111. data/sig/zavudev/models/message_show_typing_params.rbs +30 -0
  112. data/sig/zavudev/models/message_show_typing_response.rbs +13 -0
  113. data/sig/zavudev/models/senders/agent/execution_retrieve_params.rbs +32 -0
  114. data/sig/zavudev/models/senders/agent/execution_retrieve_response.rbs +18 -0
  115. data/sig/zavudev/models.rbs +22 -0
  116. data/sig/zavudev/resources/contacts.rbs +5 -0
  117. data/sig/zavudev/resources/functions/secrets.rbs +27 -0
  118. data/sig/zavudev/resources/functions.rbs +61 -0
  119. data/sig/zavudev/resources/me.rbs +11 -0
  120. data/sig/zavudev/resources/messages.rbs +6 -0
  121. data/sig/zavudev/resources/senders/agent/executions.rbs +6 -0
  122. metadata +89 -2
@@ -0,0 +1,220 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class Functions
6
+ # @return [Zavudev::Resources::Functions::Secrets]
7
+ attr_reader :secrets
8
+
9
+ # Create a new Zavu Function. The function starts in `draft` status. A dedicated
10
+ # API key is auto-provisioned and injected as the `ZAVU_API_KEY` secret so the
11
+ # function can call back into the Zavu API without manual setup.
12
+ #
13
+ # Provide `sourceCode` to seed the draft. Call
14
+ # `POST /v1/functions/{functionId}/deploy` afterwards to publish.
15
+ #
16
+ # @overload create(name:, slug:, dependencies: nil, description: nil, http_enabled: nil, memory_mb: nil, runtime: nil, source_code: nil, timeout_sec: nil, request_options: {})
17
+ #
18
+ # @param name [String]
19
+ #
20
+ # @param slug [String] URL-safe identifier (lowercase, digits, hyphens). Must be unique per project.
21
+ #
22
+ # @param dependencies [Hash{Symbol=>String}] npm dependencies. Keys are package names, values are semver ranges.
23
+ #
24
+ # @param description [String]
25
+ #
26
+ # @param http_enabled [Boolean] Whether to expose a public HTTPS URL for this function.
27
+ #
28
+ # @param memory_mb [Integer, Zavudev::Models::FunctionCreateParams::MemoryMB]
29
+ #
30
+ # @param runtime [Symbol, Zavudev::Models::FunctionCreateParams::Runtime] Runtime the function is deployed on.
31
+ #
32
+ # @param source_code [String] TypeScript source code for the function entry point (max ~900KB).
33
+ #
34
+ # @param timeout_sec [Integer]
35
+ #
36
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
37
+ #
38
+ # @return [Zavudev::Models::FunctionCreateResponse]
39
+ #
40
+ # @see Zavudev::Models::FunctionCreateParams
41
+ def create(params)
42
+ parsed, options = Zavudev::FunctionCreateParams.dump_request(params)
43
+ @client.request(
44
+ method: :post,
45
+ path: "v1/functions",
46
+ body: parsed,
47
+ model: Zavudev::Models::FunctionCreateResponse,
48
+ options: options
49
+ )
50
+ end
51
+
52
+ # Get function
53
+ #
54
+ # @overload retrieve(function_id, request_options: {})
55
+ #
56
+ # @param function_id [String] Zavu Function ID.
57
+ #
58
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
59
+ #
60
+ # @return [Zavudev::Models::FunctionRetrieveResponse]
61
+ #
62
+ # @see Zavudev::Models::FunctionRetrieveParams
63
+ def retrieve(function_id, params = {})
64
+ @client.request(
65
+ method: :get,
66
+ path: ["v1/functions/%1$s", function_id],
67
+ model: Zavudev::Models::FunctionRetrieveResponse,
68
+ options: params[:request_options]
69
+ )
70
+ end
71
+
72
+ # Update the draft source code and/or dependency map without triggering a build.
73
+ # Visible in the dashboard immediately, but the live (deployed) function does not
74
+ # change until `POST /v1/functions/{functionId}/deploy` runs.
75
+ #
76
+ # @overload update(function_id, dependencies: nil, source_code: nil, request_options: {})
77
+ #
78
+ # @param function_id [String] Zavu Function ID.
79
+ #
80
+ # @param dependencies [Hash{Symbol=>String}] New dependency map (replaces existing dependencies).
81
+ #
82
+ # @param source_code [String] New source code to publish (replaces the draft).
83
+ #
84
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
85
+ #
86
+ # @return [Zavudev::Models::FunctionUpdateResponse]
87
+ #
88
+ # @see Zavudev::Models::FunctionUpdateParams
89
+ def update(function_id, params = {})
90
+ parsed, options = Zavudev::FunctionUpdateParams.dump_request(params)
91
+ @client.request(
92
+ method: :patch,
93
+ path: ["v1/functions/%1$s", function_id],
94
+ body: parsed,
95
+ model: Zavudev::Models::FunctionUpdateResponse,
96
+ options: options
97
+ )
98
+ end
99
+
100
+ # Permanently delete a function and cascade: triggers, secrets, deployment
101
+ # history, managed agents+tools, and revoke the auto-provisioned API key. The AWS
102
+ # Lambda + log group are torn down asynchronously.
103
+ #
104
+ # @overload delete(function_id, request_options: {})
105
+ #
106
+ # @param function_id [String] Zavu Function ID.
107
+ #
108
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
109
+ #
110
+ # @return [Zavudev::Models::FunctionDeleteResponse]
111
+ #
112
+ # @see Zavudev::Models::FunctionDeleteParams
113
+ def delete(function_id, params = {})
114
+ @client.request(
115
+ method: :delete,
116
+ path: ["v1/functions/%1$s", function_id],
117
+ model: Zavudev::Models::FunctionDeleteResponse,
118
+ options: params[:request_options]
119
+ )
120
+ end
121
+
122
+ # Publish the function. If `sourceCode` or `dependencies` are provided in the
123
+ # body, they replace the current draft before deployment. Returns immediately with
124
+ # a deployment ID — poll `GET /v1/functions/deployments/{deploymentId}` until
125
+ # status is `active` or `failed`.
126
+ #
127
+ # @overload deploy(function_id, dependencies: nil, source_code: nil, request_options: {})
128
+ #
129
+ # @param function_id [String] Zavu Function ID.
130
+ #
131
+ # @param dependencies [Hash{Symbol=>String}] New dependency map (replaces existing dependencies).
132
+ #
133
+ # @param source_code [String] New source code to publish (replaces the draft).
134
+ #
135
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
136
+ #
137
+ # @return [Zavudev::Models::FunctionDeployResponse]
138
+ #
139
+ # @see Zavudev::Models::FunctionDeployParams
140
+ def deploy(function_id, params = {})
141
+ parsed, options = Zavudev::FunctionDeployParams.dump_request(params)
142
+ @client.request(
143
+ method: :post,
144
+ path: ["v1/functions/%1$s/deploy", function_id],
145
+ body: parsed,
146
+ model: Zavudev::Models::FunctionDeployResponse,
147
+ options: options
148
+ )
149
+ end
150
+
151
+ # Fetch a deployment to poll its status during a deploy.
152
+ #
153
+ # @overload get_deployment(deployment_id, request_options: {})
154
+ #
155
+ # @param deployment_id [String] Function deployment ID.
156
+ #
157
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
158
+ #
159
+ # @return [Zavudev::Models::FunctionGetDeploymentResponse]
160
+ #
161
+ # @see Zavudev::Models::FunctionGetDeploymentParams
162
+ def get_deployment(deployment_id, params = {})
163
+ @client.request(
164
+ method: :get,
165
+ path: ["v1/functions/deployments/%1$s", deployment_id],
166
+ model: Zavudev::Models::FunctionGetDeploymentResponse,
167
+ options: params[:request_options]
168
+ )
169
+ end
170
+
171
+ # Fetch invocation logs for a function. Logs are paginated via `nextToken`. Pass
172
+ # `startTime` / `endTime` (Unix epoch milliseconds) to bound the window, or
173
+ # `filterPattern` to filter messages.
174
+ #
175
+ # @overload tail_logs(function_id, end_time: nil, filter_pattern: nil, limit: nil, next_token: nil, start_time: nil, request_options: {})
176
+ #
177
+ # @param function_id [String] Zavu Function ID.
178
+ #
179
+ # @param end_time [Integer] End of the log window in Unix epoch milliseconds.
180
+ #
181
+ # @param filter_pattern [String]
182
+ #
183
+ # @param limit [Integer]
184
+ #
185
+ # @param next_token [String]
186
+ #
187
+ # @param start_time [Integer] Start of the log window in Unix epoch milliseconds.
188
+ #
189
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
190
+ #
191
+ # @return [Zavudev::Models::FunctionTailLogsResponse]
192
+ #
193
+ # @see Zavudev::Models::FunctionTailLogsParams
194
+ def tail_logs(function_id, params = {})
195
+ parsed, options = Zavudev::FunctionTailLogsParams.dump_request(params)
196
+ query = Zavudev::Internal::Util.encode_query_params(parsed)
197
+ @client.request(
198
+ method: :get,
199
+ path: ["v1/functions/%1$s/logs", function_id],
200
+ query: query.transform_keys(
201
+ end_time: "endTime",
202
+ filter_pattern: "filterPattern",
203
+ next_token: "nextToken",
204
+ start_time: "startTime"
205
+ ),
206
+ model: Zavudev::Models::FunctionTailLogsResponse,
207
+ options: options
208
+ )
209
+ end
210
+
211
+ # @api private
212
+ #
213
+ # @param client [Zavudev::Client]
214
+ def initialize(client:)
215
+ @client = client
216
+ @secrets = Zavudev::Resources::Functions::Secrets.new(client: client)
217
+ end
218
+ end
219
+ end
220
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class Me
6
+ # Returns the project, team, and API key metadata bound to the current Bearer
7
+ # token. Used by CLIs and SDKs to confirm which project they will operate on.
8
+ #
9
+ # @overload retrieve(request_options: {})
10
+ #
11
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
12
+ #
13
+ # @return [Zavudev::Models::MeRetrieveResponse]
14
+ #
15
+ # @see Zavudev::Models::MeRetrieveParams
16
+ def retrieve(params = {})
17
+ @client.request(
18
+ method: :get,
19
+ path: "v1/me",
20
+ model: Zavudev::Models::MeRetrieveResponse,
21
+ options: params[:request_options]
22
+ )
23
+ end
24
+
25
+ # @api private
26
+ #
27
+ # @param client [Zavudev::Client]
28
+ def initialize(client:)
29
+ @client = client
30
+ end
31
+ end
32
+ end
33
+ end
@@ -155,6 +155,37 @@ module Zavudev
155
155
  )
156
156
  end
157
157
 
158
+ # Some parameter documentations has been truncated, see
159
+ # {Zavudev::Models::MessageShowTypingParams} for more details.
160
+ #
161
+ # Mark an inbound WhatsApp message as read and display a typing indicator to the
162
+ # user while you prepare a response. The indicator is automatically dismissed when
163
+ # you send a reply, or after 25 seconds — whichever comes first. Only valid for
164
+ # inbound WhatsApp messages. Use this when a reply will take more than a couple of
165
+ # seconds (LLM agent, tool call, lookup) to improve the recipient's experience.
166
+ #
167
+ # @overload show_typing(message_id, zavu_sender: nil, request_options: {})
168
+ #
169
+ # @param message_id [String]
170
+ #
171
+ # @param zavu_sender [String] Optional sender profile ID. If omitted, the project's default sender will be use
172
+ #
173
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
174
+ #
175
+ # @return [Zavudev::Models::MessageShowTypingResponse]
176
+ #
177
+ # @see Zavudev::Models::MessageShowTypingParams
178
+ def show_typing(message_id, params = {})
179
+ parsed, options = Zavudev::MessageShowTypingParams.dump_request(params)
180
+ @client.request(
181
+ method: :post,
182
+ path: ["v1/messages/%1$s/typing", message_id],
183
+ headers: parsed.transform_keys(zavu_sender: "zavu-sender"),
184
+ model: Zavudev::Models::MessageShowTypingResponse,
185
+ options: options
186
+ )
187
+ end
188
+
158
189
  # @api private
159
190
  #
160
191
  # @param client [Zavudev::Client]
@@ -5,6 +5,32 @@ module Zavudev
5
5
  class Senders
6
6
  class Agent
7
7
  class Executions
8
+ # Fetch full details for one execution — including `errorMessage`, `errorCode`,
9
+ # and `responseText`. Use this to debug failures surfaced by the list endpoint.
10
+ #
11
+ # @overload retrieve(execution_id, sender_id:, request_options: {})
12
+ #
13
+ # @param execution_id [String]
14
+ # @param sender_id [String]
15
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [Zavudev::Models::Senders::Agent::ExecutionRetrieveResponse]
18
+ #
19
+ # @see Zavudev::Models::Senders::Agent::ExecutionRetrieveParams
20
+ def retrieve(execution_id, params)
21
+ parsed, options = Zavudev::Senders::Agent::ExecutionRetrieveParams.dump_request(params)
22
+ sender_id =
23
+ parsed.delete(:sender_id) do
24
+ raise ArgumentError.new("missing required path argument #{_1}")
25
+ end
26
+ @client.request(
27
+ method: :get,
28
+ path: ["v1/senders/%1$s/agent/executions/%2$s", sender_id, execution_id],
29
+ model: Zavudev::Models::Senders::Agent::ExecutionRetrieveResponse,
30
+ options: options
31
+ )
32
+ end
33
+
8
34
  # List recent agent executions with pagination.
9
35
  #
10
36
  # @overload list(sender_id, cursor: nil, limit: nil, status: nil, request_options: {})
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zavudev
4
- VERSION = "0.10.0"
4
+ VERSION = "0.12.0"
5
5
  end
data/lib/zavudev.rb CHANGED
@@ -99,6 +99,7 @@ require_relative "zavudev/models/channel"
99
99
  require_relative "zavudev/models/contact"
100
100
  require_relative "zavudev/models/contact_channel"
101
101
  require_relative "zavudev/models/contact_create_params"
102
+ require_relative "zavudev/models/contact_delete_params"
102
103
  require_relative "zavudev/models/contact_dismiss_merge_suggestion_params"
103
104
  require_relative "zavudev/models/contact_list_params"
104
105
  require_relative "zavudev/models/contact_merge_params"
@@ -118,6 +119,25 @@ require_relative "zavudev/models/export_create_response"
118
119
  require_relative "zavudev/models/export_list_params"
119
120
  require_relative "zavudev/models/export_retrieve_params"
120
121
  require_relative "zavudev/models/export_retrieve_response"
122
+ require_relative "zavudev/models/function_create_params"
123
+ require_relative "zavudev/models/function_create_response"
124
+ require_relative "zavudev/models/function_delete_params"
125
+ require_relative "zavudev/models/function_delete_response"
126
+ require_relative "zavudev/models/function_deploy_params"
127
+ require_relative "zavudev/models/function_deploy_response"
128
+ require_relative "zavudev/models/function_get_deployment_params"
129
+ require_relative "zavudev/models/function_get_deployment_response"
130
+ require_relative "zavudev/models/function_retrieve_params"
131
+ require_relative "zavudev/models/function_retrieve_response"
132
+ require_relative "zavudev/models/functions/secret_list_params"
133
+ require_relative "zavudev/models/functions/secret_list_response"
134
+ require_relative "zavudev/models/functions/secret_set_params"
135
+ require_relative "zavudev/models/functions/secret_set_response"
136
+ require_relative "zavudev/models/functions/secret_unset_params"
137
+ require_relative "zavudev/models/function_tail_logs_params"
138
+ require_relative "zavudev/models/function_tail_logs_response"
139
+ require_relative "zavudev/models/function_update_params"
140
+ require_relative "zavudev/models/function_update_response"
121
141
  require_relative "zavudev/models/introspect_validate_phone_params"
122
142
  require_relative "zavudev/models/introspect_validate_phone_response"
123
143
  require_relative "zavudev/models/invitation"
@@ -129,6 +149,8 @@ require_relative "zavudev/models/invitation_list_params"
129
149
  require_relative "zavudev/models/invitation_retrieve_params"
130
150
  require_relative "zavudev/models/invitation_retrieve_response"
131
151
  require_relative "zavudev/models/line_type"
152
+ require_relative "zavudev/models/me_retrieve_params"
153
+ require_relative "zavudev/models/me_retrieve_response"
132
154
  require_relative "zavudev/models/message"
133
155
  require_relative "zavudev/models/message_content"
134
156
  require_relative "zavudev/models/message_list_params"
@@ -136,6 +158,8 @@ require_relative "zavudev/models/message_react_params"
136
158
  require_relative "zavudev/models/message_response"
137
159
  require_relative "zavudev/models/message_retrieve_params"
138
160
  require_relative "zavudev/models/message_send_params"
161
+ require_relative "zavudev/models/message_show_typing_params"
162
+ require_relative "zavudev/models/message_show_typing_response"
139
163
  require_relative "zavudev/models/message_status"
140
164
  require_relative "zavudev/models/message_type"
141
165
  require_relative "zavudev/models/number_10dlc/brand_create_params"
@@ -217,6 +241,8 @@ require_relative "zavudev/models/senders/agent/agent_flow"
217
241
  require_relative "zavudev/models/senders/agent/agent_knowledge_base"
218
242
  require_relative "zavudev/models/senders/agent/agent_tool"
219
243
  require_relative "zavudev/models/senders/agent/execution_list_params"
244
+ require_relative "zavudev/models/senders/agent/execution_retrieve_params"
245
+ require_relative "zavudev/models/senders/agent/execution_retrieve_response"
220
246
  require_relative "zavudev/models/senders/agent/flow_create_params"
221
247
  require_relative "zavudev/models/senders/agent/flow_create_response"
222
248
  require_relative "zavudev/models/senders/agent/flow_delete_params"
@@ -323,8 +349,11 @@ require_relative "zavudev/resources/broadcasts/contacts"
323
349
  require_relative "zavudev/resources/contacts"
324
350
  require_relative "zavudev/resources/contacts/channels"
325
351
  require_relative "zavudev/resources/exports"
352
+ require_relative "zavudev/resources/functions"
353
+ require_relative "zavudev/resources/functions/secrets"
326
354
  require_relative "zavudev/resources/introspect"
327
355
  require_relative "zavudev/resources/invitations"
356
+ require_relative "zavudev/resources/me"
328
357
  require_relative "zavudev/resources/messages"
329
358
  require_relative "zavudev/resources/number_10dlc"
330
359
  require_relative "zavudev/resources/number_10dlc/brands"
@@ -64,6 +64,12 @@ module Zavudev
64
64
  sig { returns(Zavudev::Resources::Number10dlc) }
65
65
  attr_reader :number_10dlc
66
66
 
67
+ sig { returns(Zavudev::Resources::Me) }
68
+ attr_reader :me
69
+
70
+ sig { returns(Zavudev::Resources::Functions) }
71
+ attr_reader :functions
72
+
67
73
  # @api private
68
74
  sig { override.returns(T::Hash[String, String]) }
69
75
  private def auth_headers
@@ -58,6 +58,12 @@ module Zavudev
58
58
  sig { params(template_button_variables: T::Hash[Symbol, String]).void }
59
59
  attr_writer :template_button_variables
60
60
 
61
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
62
+ attr_reader :template_header_variables
63
+
64
+ sig { params(template_header_variables: T::Hash[Symbol, String]).void }
65
+ attr_writer :template_header_variables
66
+
61
67
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
62
68
  attr_reader :template_variables
63
69
 
@@ -77,6 +83,7 @@ module Zavudev
77
83
  message_id: String,
78
84
  processed_at: Time,
79
85
  template_button_variables: T::Hash[Symbol, String],
86
+ template_header_variables: T::Hash[Symbol, String],
80
87
  template_variables: T::Hash[Symbol, String]
81
88
  ).returns(T.attached_class)
82
89
  end
@@ -94,6 +101,7 @@ module Zavudev
94
101
  message_id: nil,
95
102
  processed_at: nil,
96
103
  template_button_variables: nil,
104
+ template_header_variables: nil,
97
105
  template_variables: nil
98
106
  )
99
107
  end
@@ -113,6 +121,7 @@ module Zavudev
113
121
  message_id: String,
114
122
  processed_at: Time,
115
123
  template_button_variables: T::Hash[Symbol, String],
124
+ template_header_variables: T::Hash[Symbol, String],
116
125
  template_variables: T::Hash[Symbol, String]
117
126
  }
118
127
  )
@@ -44,6 +44,15 @@ module Zavudev
44
44
  sig { params(template_button_variables: T::Hash[Symbol, String]).void }
45
45
  attr_writer :template_button_variables
46
46
 
47
+ # Default value for a text-header variable, keyed by `1` (can be overridden per
48
+ # contact). If omitted, Zavu resolves the header from `templateVariables` by the
49
+ # header placeholder's name.
50
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
51
+ attr_reader :template_header_variables
52
+
53
+ sig { params(template_header_variables: T::Hash[Symbol, String]).void }
54
+ attr_writer :template_header_variables
55
+
47
56
  # Template ID for template messages.
48
57
  sig { returns(T.nilable(String)) }
49
58
  attr_reader :template_id
@@ -51,8 +60,10 @@ module Zavudev
51
60
  sig { params(template_id: String).void }
52
61
  attr_writer :template_id
53
62
 
54
- # Default body variables (can be overridden per contact). Keys are positions (1,
55
- # 2, ...).
63
+ # Default body variables (can be overridden per contact). Key them to match the
64
+ # template body: by position (`1`, `2`, ...) for positional templates, or by name
65
+ # (e.g. `customer_name`) for named templates. Zavu detects the template's format
66
+ # and sends the correct payload to Meta. Do not mix positional and named keys.
56
67
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
57
68
  attr_reader :template_variables
58
69
 
@@ -67,6 +78,7 @@ module Zavudev
67
78
  media_url: String,
68
79
  mime_type: String,
69
80
  template_button_variables: T::Hash[Symbol, String],
81
+ template_header_variables: T::Hash[Symbol, String],
70
82
  template_id: String,
71
83
  template_variables: T::Hash[Symbol, String]
72
84
  ).returns(T.attached_class)
@@ -83,10 +95,16 @@ module Zavudev
83
95
  # Default button variables for dynamic URL/OTP buttons. Keys are the button index
84
96
  # (0, 1, 2). Per-contact values override these.
85
97
  template_button_variables: nil,
98
+ # Default value for a text-header variable, keyed by `1` (can be overridden per
99
+ # contact). If omitted, Zavu resolves the header from `templateVariables` by the
100
+ # header placeholder's name.
101
+ template_header_variables: nil,
86
102
  # Template ID for template messages.
87
103
  template_id: nil,
88
- # Default body variables (can be overridden per contact). Keys are positions (1,
89
- # 2, ...).
104
+ # Default body variables (can be overridden per contact). Key them to match the
105
+ # template body: by position (`1`, `2`, ...) for positional templates, or by name
106
+ # (e.g. `customer_name`) for named templates. Zavu detects the template's format
107
+ # and sends the correct payload to Meta. Do not mix positional and named keys.
90
108
  template_variables: nil
91
109
  )
92
110
  end
@@ -99,6 +117,7 @@ module Zavudev
99
117
  media_url: String,
100
118
  mime_type: String,
101
119
  template_button_variables: T::Hash[Symbol, String],
120
+ template_header_variables: T::Hash[Symbol, String],
102
121
  template_id: String,
103
122
  template_variables: T::Hash[Symbol, String]
104
123
  }
@@ -76,8 +76,20 @@ module Zavudev
76
76
  end
77
77
  attr_writer :template_button_variables
78
78
 
79
- # Per-contact body variables. Keys are positions (1, 2, ...) matching the order
80
- # placeholders appear in the template body.
79
+ # Per-contact value for a text-header variable, keyed by `1`. If omitted, Zavu
80
+ # resolves the header from `templateVariables` by the header placeholder's name.
81
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
82
+ attr_reader :template_header_variables
83
+
84
+ sig do
85
+ params(template_header_variables: T::Hash[Symbol, String]).void
86
+ end
87
+ attr_writer :template_header_variables
88
+
89
+ # Per-contact body variables. Key them to match the template body: by position
90
+ # (`1`, `2`, ...) for positional templates, or by name (e.g. `customer_name`) for
91
+ # named templates. Zavu detects the template's format and sends the correct
92
+ # payload to Meta. Do not mix positional and named keys.
81
93
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
82
94
  attr_reader :template_variables
83
95
 
@@ -88,6 +100,7 @@ module Zavudev
88
100
  params(
89
101
  recipient: String,
90
102
  template_button_variables: T::Hash[Symbol, String],
103
+ template_header_variables: T::Hash[Symbol, String],
91
104
  template_variables: T::Hash[Symbol, String]
92
105
  ).returns(T.attached_class)
93
106
  end
@@ -97,8 +110,13 @@ module Zavudev
97
110
  # Per-contact button variables for dynamic URL/OTP buttons. Keys are the button
98
111
  # index (0, 1, 2).
99
112
  template_button_variables: nil,
100
- # Per-contact body variables. Keys are positions (1, 2, ...) matching the order
101
- # placeholders appear in the template body.
113
+ # Per-contact value for a text-header variable, keyed by `1`. If omitted, Zavu
114
+ # resolves the header from `templateVariables` by the header placeholder's name.
115
+ template_header_variables: nil,
116
+ # Per-contact body variables. Key them to match the template body: by position
117
+ # (`1`, `2`, ...) for positional templates, or by name (e.g. `customer_name`) for
118
+ # named templates. Zavu detects the template's format and sends the correct
119
+ # payload to Meta. Do not mix positional and named keys.
102
120
  template_variables: nil
103
121
  )
104
122
  end
@@ -108,6 +126,7 @@ module Zavudev
108
126
  {
109
127
  recipient: String,
110
128
  template_button_variables: T::Hash[Symbol, String],
129
+ template_header_variables: T::Hash[Symbol, String],
111
130
  template_variables: T::Hash[Symbol, String]
112
131
  }
113
132
  )
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Zavudev
4
+ module Models
5
+ class ContactDeleteParams < Zavudev::Internal::Type::BaseModel
6
+ extend Zavudev::Internal::Type::RequestParameters::Converter
7
+ include Zavudev::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Zavudev::ContactDeleteParams, Zavudev::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :contact_id
16
+
17
+ sig do
18
+ params(
19
+ contact_id: String,
20
+ request_options: Zavudev::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(contact_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { contact_id: String, request_options: Zavudev::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end