1use std::collections::HashMap;
4
5use serde::{Deserialize, Serialize};
6
7use crate::types::{
8 Distribution, Entity, ExportTaskStatusCode, InputLogEvent, LogGroupClass, MetricTransformation,
9 OrderBy, PolicyScope, QueryLanguage, QueryStatus,
10};
11
12#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14#[serde(rename_all = "camelCase")]
15pub struct AssociateKmsKeyInput {
16 pub kms_key_id: String,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub log_group_name: Option<String>,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub resource_identifier: Option<String>,
21}
22
23#[derive(Debug, Clone, Default, Serialize, Deserialize)]
25#[serde(rename_all = "camelCase")]
26pub struct CancelExportTaskInput {
27 pub task_id: String,
28}
29
30#[derive(Debug, Clone, Default, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct CreateExportTaskInput {
34 pub destination: String,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub destination_prefix: Option<String>,
37 pub from: i64,
38 pub log_group_name: String,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub log_stream_name_prefix: Option<String>,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub task_name: Option<String>,
43 pub to: i64,
44}
45
46#[derive(Debug, Clone, Default, Serialize, Deserialize)]
48#[serde(rename_all = "camelCase")]
49pub struct CreateLogGroupInput {
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub deletion_protection_enabled: Option<bool>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub kms_key_id: Option<String>,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub log_group_class: Option<LogGroupClass>,
56 pub log_group_name: String,
57 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
58 pub tags: HashMap<String, String>,
59}
60
61#[derive(Debug, Clone, Default, Serialize, Deserialize)]
63#[serde(rename_all = "camelCase")]
64pub struct CreateLogStreamInput {
65 pub log_group_name: String,
66 pub log_stream_name: String,
67}
68
69#[derive(Debug, Clone, Default, Serialize, Deserialize)]
71#[serde(rename_all = "camelCase")]
72pub struct DeleteDestinationInput {
73 pub destination_name: String,
74}
75
76#[derive(Debug, Clone, Default, Serialize, Deserialize)]
78#[serde(rename_all = "camelCase")]
79pub struct DeleteLogGroupInput {
80 pub log_group_name: String,
81}
82
83#[derive(Debug, Clone, Default, Serialize, Deserialize)]
85#[serde(rename_all = "camelCase")]
86pub struct DeleteLogStreamInput {
87 pub log_group_name: String,
88 pub log_stream_name: String,
89}
90
91#[derive(Debug, Clone, Default, Serialize, Deserialize)]
93#[serde(rename_all = "camelCase")]
94pub struct DeleteMetricFilterInput {
95 pub filter_name: String,
96 pub log_group_name: String,
97}
98
99#[derive(Debug, Clone, Default, Serialize, Deserialize)]
101#[serde(rename_all = "camelCase")]
102pub struct DeleteQueryDefinitionInput {
103 pub query_definition_id: String,
104}
105
106#[derive(Debug, Clone, Default, Serialize, Deserialize)]
108#[serde(rename_all = "camelCase")]
109pub struct DeleteResourcePolicyInput {
110 #[serde(skip_serializing_if = "Option::is_none")]
111 pub expected_revision_id: Option<String>,
112 #[serde(skip_serializing_if = "Option::is_none")]
113 pub policy_name: Option<String>,
114 #[serde(skip_serializing_if = "Option::is_none")]
115 pub resource_arn: Option<String>,
116}
117
118#[derive(Debug, Clone, Default, Serialize, Deserialize)]
120#[serde(rename_all = "camelCase")]
121pub struct DeleteRetentionPolicyInput {
122 pub log_group_name: String,
123}
124
125#[derive(Debug, Clone, Default, Serialize, Deserialize)]
127#[serde(rename_all = "camelCase")]
128pub struct DeleteSubscriptionFilterInput {
129 pub filter_name: String,
130 pub log_group_name: String,
131}
132
133#[derive(Debug, Clone, Default, Serialize, Deserialize)]
135#[serde(rename_all = "camelCase")]
136pub struct DescribeDestinationsInput {
137 #[serde(rename = "DestinationNamePrefix")]
138 #[serde(skip_serializing_if = "Option::is_none")]
139 pub destination_name_prefix: Option<String>,
140 #[serde(skip_serializing_if = "Option::is_none")]
141 pub limit: Option<i32>,
142 #[serde(skip_serializing_if = "Option::is_none")]
143 pub next_token: Option<String>,
144}
145
146#[derive(Debug, Clone, Default, Serialize, Deserialize)]
148#[serde(rename_all = "camelCase")]
149pub struct DescribeExportTasksInput {
150 #[serde(skip_serializing_if = "Option::is_none")]
151 pub limit: Option<i32>,
152 #[serde(skip_serializing_if = "Option::is_none")]
153 pub next_token: Option<String>,
154 #[serde(skip_serializing_if = "Option::is_none")]
155 pub status_code: Option<ExportTaskStatusCode>,
156 #[serde(skip_serializing_if = "Option::is_none")]
157 pub task_id: Option<String>,
158}
159
160#[derive(Debug, Clone, Default, Serialize, Deserialize)]
162#[serde(rename_all = "camelCase")]
163pub struct DescribeLogGroupsInput {
164 #[serde(default, skip_serializing_if = "Vec::is_empty")]
165 pub account_identifiers: Vec<String>,
166 #[serde(skip_serializing_if = "Option::is_none")]
167 pub include_linked_accounts: Option<bool>,
168 #[serde(skip_serializing_if = "Option::is_none")]
169 pub limit: Option<i32>,
170 #[serde(skip_serializing_if = "Option::is_none")]
171 pub log_group_class: Option<LogGroupClass>,
172 #[serde(default, skip_serializing_if = "Vec::is_empty")]
173 pub log_group_identifiers: Vec<String>,
174 #[serde(skip_serializing_if = "Option::is_none")]
175 pub log_group_name_pattern: Option<String>,
176 #[serde(skip_serializing_if = "Option::is_none")]
177 pub log_group_name_prefix: Option<String>,
178 #[serde(skip_serializing_if = "Option::is_none")]
179 pub next_token: Option<String>,
180}
181
182#[derive(Debug, Clone, Default, Serialize, Deserialize)]
184#[serde(rename_all = "camelCase")]
185pub struct DescribeLogStreamsInput {
186 #[serde(skip_serializing_if = "Option::is_none")]
187 pub descending: Option<bool>,
188 #[serde(skip_serializing_if = "Option::is_none")]
189 pub limit: Option<i32>,
190 #[serde(skip_serializing_if = "Option::is_none")]
191 pub log_group_identifier: Option<String>,
192 #[serde(skip_serializing_if = "Option::is_none")]
193 pub log_group_name: Option<String>,
194 #[serde(skip_serializing_if = "Option::is_none")]
195 pub log_stream_name_prefix: Option<String>,
196 #[serde(skip_serializing_if = "Option::is_none")]
197 pub next_token: Option<String>,
198 #[serde(skip_serializing_if = "Option::is_none")]
199 pub order_by: Option<OrderBy>,
200}
201
202#[derive(Debug, Clone, Default, Serialize, Deserialize)]
204#[serde(rename_all = "camelCase")]
205pub struct DescribeMetricFiltersInput {
206 #[serde(skip_serializing_if = "Option::is_none")]
207 pub filter_name_prefix: Option<String>,
208 #[serde(skip_serializing_if = "Option::is_none")]
209 pub limit: Option<i32>,
210 #[serde(skip_serializing_if = "Option::is_none")]
211 pub log_group_name: Option<String>,
212 #[serde(skip_serializing_if = "Option::is_none")]
213 pub metric_name: Option<String>,
214 #[serde(skip_serializing_if = "Option::is_none")]
215 pub metric_namespace: Option<String>,
216 #[serde(skip_serializing_if = "Option::is_none")]
217 pub next_token: Option<String>,
218}
219
220#[derive(Debug, Clone, Default, Serialize, Deserialize)]
222#[serde(rename_all = "camelCase")]
223pub struct DescribeQueriesInput {
224 #[serde(skip_serializing_if = "Option::is_none")]
225 pub log_group_name: Option<String>,
226 #[serde(skip_serializing_if = "Option::is_none")]
227 pub max_results: Option<i32>,
228 #[serde(skip_serializing_if = "Option::is_none")]
229 pub next_token: Option<String>,
230 #[serde(skip_serializing_if = "Option::is_none")]
231 pub query_language: Option<QueryLanguage>,
232 #[serde(skip_serializing_if = "Option::is_none")]
233 pub status: Option<QueryStatus>,
234}
235
236#[derive(Debug, Clone, Default, Serialize, Deserialize)]
238#[serde(rename_all = "camelCase")]
239pub struct DescribeQueryDefinitionsInput {
240 #[serde(skip_serializing_if = "Option::is_none")]
241 pub max_results: Option<i32>,
242 #[serde(skip_serializing_if = "Option::is_none")]
243 pub next_token: Option<String>,
244 #[serde(skip_serializing_if = "Option::is_none")]
245 pub query_definition_name_prefix: Option<String>,
246 #[serde(skip_serializing_if = "Option::is_none")]
247 pub query_language: Option<QueryLanguage>,
248}
249
250#[derive(Debug, Clone, Default, Serialize, Deserialize)]
252#[serde(rename_all = "camelCase")]
253pub struct DescribeResourcePoliciesInput {
254 #[serde(skip_serializing_if = "Option::is_none")]
255 pub limit: Option<i32>,
256 #[serde(skip_serializing_if = "Option::is_none")]
257 pub next_token: Option<String>,
258 #[serde(skip_serializing_if = "Option::is_none")]
259 pub policy_scope: Option<PolicyScope>,
260 #[serde(skip_serializing_if = "Option::is_none")]
261 pub resource_arn: Option<String>,
262}
263
264#[derive(Debug, Clone, Default, Serialize, Deserialize)]
266#[serde(rename_all = "camelCase")]
267pub struct DescribeSubscriptionFiltersInput {
268 #[serde(skip_serializing_if = "Option::is_none")]
269 pub filter_name_prefix: Option<String>,
270 #[serde(skip_serializing_if = "Option::is_none")]
271 pub limit: Option<i32>,
272 pub log_group_name: String,
273 #[serde(skip_serializing_if = "Option::is_none")]
274 pub next_token: Option<String>,
275}
276
277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
279#[serde(rename_all = "camelCase")]
280pub struct DisassociateKmsKeyInput {
281 #[serde(skip_serializing_if = "Option::is_none")]
282 pub log_group_name: Option<String>,
283 #[serde(skip_serializing_if = "Option::is_none")]
284 pub resource_identifier: Option<String>,
285}
286
287#[derive(Debug, Clone, Default, Serialize, Deserialize)]
289#[serde(rename_all = "camelCase")]
290pub struct FilterLogEventsInput {
291 #[serde(skip_serializing_if = "Option::is_none")]
292 pub end_time: Option<i64>,
293 #[serde(skip_serializing_if = "Option::is_none")]
294 pub filter_pattern: Option<String>,
295 #[serde(skip_serializing_if = "Option::is_none")]
296 pub interleaved: Option<bool>,
297 #[serde(skip_serializing_if = "Option::is_none")]
298 pub limit: Option<i32>,
299 #[serde(skip_serializing_if = "Option::is_none")]
300 pub log_group_identifier: Option<String>,
301 #[serde(skip_serializing_if = "Option::is_none")]
302 pub log_group_name: Option<String>,
303 #[serde(skip_serializing_if = "Option::is_none")]
304 pub log_stream_name_prefix: Option<String>,
305 #[serde(default, skip_serializing_if = "Vec::is_empty")]
306 pub log_stream_names: Vec<String>,
307 #[serde(skip_serializing_if = "Option::is_none")]
308 pub next_token: Option<String>,
309 #[serde(skip_serializing_if = "Option::is_none")]
310 pub start_time: Option<i64>,
311 #[serde(skip_serializing_if = "Option::is_none")]
312 pub unmask: Option<bool>,
313}
314
315#[derive(Debug, Clone, Default, Serialize, Deserialize)]
317#[serde(rename_all = "camelCase")]
318pub struct GetLogEventsInput {
319 #[serde(skip_serializing_if = "Option::is_none")]
320 pub end_time: Option<i64>,
321 #[serde(skip_serializing_if = "Option::is_none")]
322 pub limit: Option<i32>,
323 #[serde(skip_serializing_if = "Option::is_none")]
324 pub log_group_identifier: Option<String>,
325 #[serde(skip_serializing_if = "Option::is_none")]
326 pub log_group_name: Option<String>,
327 pub log_stream_name: String,
328 #[serde(skip_serializing_if = "Option::is_none")]
329 pub next_token: Option<String>,
330 #[serde(skip_serializing_if = "Option::is_none")]
331 pub start_from_head: Option<bool>,
332 #[serde(skip_serializing_if = "Option::is_none")]
333 pub start_time: Option<i64>,
334 #[serde(skip_serializing_if = "Option::is_none")]
335 pub unmask: Option<bool>,
336}
337
338#[derive(Debug, Clone, Default, Serialize, Deserialize)]
340#[serde(rename_all = "camelCase")]
341pub struct GetQueryResultsInput {
342 pub query_id: String,
343}
344
345#[derive(Debug, Clone, Default, Serialize, Deserialize)]
347#[serde(rename_all = "camelCase")]
348pub struct ListTagsForResourceInput {
349 pub resource_arn: String,
350}
351
352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
354#[serde(rename_all = "camelCase")]
355pub struct ListTagsLogGroupInput {
356 pub log_group_name: String,
357}
358
359#[derive(Debug, Clone, Default, Serialize, Deserialize)]
361#[serde(rename_all = "camelCase")]
362pub struct PutDestinationInput {
363 pub destination_name: String,
364 pub role_arn: String,
365 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
366 pub tags: HashMap<String, String>,
367 pub target_arn: String,
368}
369
370#[derive(Debug, Clone, Default, Serialize, Deserialize)]
372#[serde(rename_all = "camelCase")]
373pub struct PutDestinationPolicyInput {
374 pub access_policy: String,
375 pub destination_name: String,
376 #[serde(skip_serializing_if = "Option::is_none")]
377 pub force_update: Option<bool>,
378}
379
380#[derive(Debug, Clone, Default, Serialize, Deserialize)]
382#[serde(rename_all = "camelCase")]
383pub struct PutLogEventsInput {
384 #[serde(skip_serializing_if = "Option::is_none")]
385 pub entity: Option<Entity>,
386 #[serde(default, skip_serializing_if = "Vec::is_empty")]
387 pub log_events: Vec<InputLogEvent>,
388 pub log_group_name: String,
389 pub log_stream_name: String,
390 #[serde(skip_serializing_if = "Option::is_none")]
391 pub sequence_token: Option<String>,
392}
393
394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
396#[serde(rename_all = "camelCase")]
397pub struct PutMetricFilterInput {
398 #[serde(skip_serializing_if = "Option::is_none")]
399 pub apply_on_transformed_logs: Option<bool>,
400 #[serde(default, skip_serializing_if = "Vec::is_empty")]
401 pub emit_system_field_dimensions: Vec<String>,
402 #[serde(skip_serializing_if = "Option::is_none")]
403 pub field_selection_criteria: Option<String>,
404 pub filter_name: String,
405 pub filter_pattern: String,
406 pub log_group_name: String,
407 #[serde(default, skip_serializing_if = "Vec::is_empty")]
408 pub metric_transformations: Vec<MetricTransformation>,
409}
410
411#[derive(Debug, Clone, Default, Serialize, Deserialize)]
413#[serde(rename_all = "camelCase")]
414pub struct PutQueryDefinitionInput {
415 #[serde(skip_serializing_if = "Option::is_none")]
416 pub client_token: Option<String>,
417 #[serde(default, skip_serializing_if = "Vec::is_empty")]
418 pub log_group_names: Vec<String>,
419 pub name: String,
420 #[serde(skip_serializing_if = "Option::is_none")]
421 pub query_definition_id: Option<String>,
422 #[serde(skip_serializing_if = "Option::is_none")]
423 pub query_language: Option<QueryLanguage>,
424 pub query_string: String,
425}
426
427#[derive(Debug, Clone, Default, Serialize, Deserialize)]
429#[serde(rename_all = "camelCase")]
430pub struct PutResourcePolicyInput {
431 #[serde(skip_serializing_if = "Option::is_none")]
432 pub expected_revision_id: Option<String>,
433 #[serde(skip_serializing_if = "Option::is_none")]
434 pub policy_document: Option<String>,
435 #[serde(skip_serializing_if = "Option::is_none")]
436 pub policy_name: Option<String>,
437 #[serde(skip_serializing_if = "Option::is_none")]
438 pub resource_arn: Option<String>,
439}
440
441#[derive(Debug, Clone, Default, Serialize, Deserialize)]
443#[serde(rename_all = "camelCase")]
444pub struct PutRetentionPolicyInput {
445 pub log_group_name: String,
446 pub retention_in_days: i32,
447}
448
449#[derive(Debug, Clone, Default, Serialize, Deserialize)]
451#[serde(rename_all = "camelCase")]
452pub struct PutSubscriptionFilterInput {
453 #[serde(skip_serializing_if = "Option::is_none")]
454 pub apply_on_transformed_logs: Option<bool>,
455 pub destination_arn: String,
456 #[serde(skip_serializing_if = "Option::is_none")]
457 pub distribution: Option<Distribution>,
458 #[serde(default, skip_serializing_if = "Vec::is_empty")]
459 pub emit_system_fields: Vec<String>,
460 #[serde(skip_serializing_if = "Option::is_none")]
461 pub field_selection_criteria: Option<String>,
462 pub filter_name: String,
463 pub filter_pattern: String,
464 pub log_group_name: String,
465 #[serde(skip_serializing_if = "Option::is_none")]
466 pub role_arn: Option<String>,
467}
468
469#[derive(Debug, Clone, Default, Serialize, Deserialize)]
471#[serde(rename_all = "camelCase")]
472pub struct StartQueryInput {
473 pub end_time: i64,
474 #[serde(skip_serializing_if = "Option::is_none")]
475 pub limit: Option<i32>,
476 #[serde(default, skip_serializing_if = "Vec::is_empty")]
477 pub log_group_identifiers: Vec<String>,
478 #[serde(skip_serializing_if = "Option::is_none")]
479 pub log_group_name: Option<String>,
480 #[serde(default, skip_serializing_if = "Vec::is_empty")]
481 pub log_group_names: Vec<String>,
482 #[serde(skip_serializing_if = "Option::is_none")]
483 pub query_language: Option<QueryLanguage>,
484 pub query_string: String,
485 pub start_time: i64,
486}
487
488#[derive(Debug, Clone, Default, Serialize, Deserialize)]
490#[serde(rename_all = "camelCase")]
491pub struct StopQueryInput {
492 pub query_id: String,
493}
494
495#[derive(Debug, Clone, Default, Serialize, Deserialize)]
497#[serde(rename_all = "camelCase")]
498pub struct TagLogGroupInput {
499 pub log_group_name: String,
500 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
501 pub tags: HashMap<String, String>,
502}
503
504#[derive(Debug, Clone, Default, Serialize, Deserialize)]
506#[serde(rename_all = "camelCase")]
507pub struct TagResourceInput {
508 pub resource_arn: String,
509 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
510 pub tags: HashMap<String, String>,
511}
512
513#[derive(Debug, Clone, Default, Serialize, Deserialize)]
515#[serde(rename_all = "camelCase")]
516pub struct TestMetricFilterInput {
517 pub filter_pattern: String,
518 #[serde(default, skip_serializing_if = "Vec::is_empty")]
519 pub log_event_messages: Vec<String>,
520}
521
522#[derive(Debug, Clone, Default, Serialize, Deserialize)]
524#[serde(rename_all = "camelCase")]
525pub struct UntagLogGroupInput {
526 pub log_group_name: String,
527 #[serde(default, skip_serializing_if = "Vec::is_empty")]
528 pub tags: Vec<String>,
529}
530
531#[derive(Debug, Clone, Default, Serialize, Deserialize)]
533#[serde(rename_all = "camelCase")]
534pub struct UntagResourceInput {
535 pub resource_arn: String,
536 #[serde(default, skip_serializing_if = "Vec::is_empty")]
537 pub tag_keys: Vec<String>,
538}