1use std::collections::HashMap;
4
5use serde::{Deserialize, Serialize};
6
7use crate::types::{
8 Destination, ExportTask, FilteredLogEvent, LogGroup, LogStream, MetricFilter,
9 MetricFilterMatchRecord, OutputLogEvent, QueryDefinition, QueryInfo, QueryLanguage,
10 QueryStatistics, QueryStatus, RejectedEntityInfo, RejectedLogEventsInfo, ResourcePolicy,
11 ResultField, SearchedLogStream, SubscriptionFilter,
12};
13
14#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16#[serde(rename_all = "camelCase")]
17pub struct CreateExportTaskResponse {
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub task_id: Option<String>,
20}
21
22#[derive(Debug, Clone, Default, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct DeleteQueryDefinitionResponse {
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub success: Option<bool>,
28}
29
30#[derive(Debug, Clone, Default, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct DescribeDestinationsResponse {
34 #[serde(default, skip_serializing_if = "Vec::is_empty")]
35 pub destinations: Vec<Destination>,
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub next_token: Option<String>,
38}
39
40#[derive(Debug, Clone, Default, Serialize, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct DescribeExportTasksResponse {
44 #[serde(default, skip_serializing_if = "Vec::is_empty")]
45 pub export_tasks: Vec<ExportTask>,
46 #[serde(skip_serializing_if = "Option::is_none")]
47 pub next_token: Option<String>,
48}
49
50#[derive(Debug, Clone, Default, Serialize, Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct DescribeLogGroupsResponse {
54 #[serde(default, skip_serializing_if = "Vec::is_empty")]
55 pub log_groups: Vec<LogGroup>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub next_token: Option<String>,
58}
59
60#[derive(Debug, Clone, Default, Serialize, Deserialize)]
62#[serde(rename_all = "camelCase")]
63pub struct DescribeLogStreamsResponse {
64 #[serde(default, skip_serializing_if = "Vec::is_empty")]
65 pub log_streams: Vec<LogStream>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub next_token: Option<String>,
68}
69
70#[derive(Debug, Clone, Default, Serialize, Deserialize)]
72#[serde(rename_all = "camelCase")]
73pub struct DescribeMetricFiltersResponse {
74 #[serde(default, skip_serializing_if = "Vec::is_empty")]
75 pub metric_filters: Vec<MetricFilter>,
76 #[serde(skip_serializing_if = "Option::is_none")]
77 pub next_token: Option<String>,
78}
79
80#[derive(Debug, Clone, Default, Serialize, Deserialize)]
82#[serde(rename_all = "camelCase")]
83pub struct DescribeQueriesResponse {
84 #[serde(skip_serializing_if = "Option::is_none")]
85 pub next_token: Option<String>,
86 #[serde(default, skip_serializing_if = "Vec::is_empty")]
87 pub queries: Vec<QueryInfo>,
88}
89
90#[derive(Debug, Clone, Default, Serialize, Deserialize)]
92#[serde(rename_all = "camelCase")]
93pub struct DescribeQueryDefinitionsResponse {
94 #[serde(skip_serializing_if = "Option::is_none")]
95 pub next_token: Option<String>,
96 #[serde(default, skip_serializing_if = "Vec::is_empty")]
97 pub query_definitions: Vec<QueryDefinition>,
98}
99
100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
102#[serde(rename_all = "camelCase")]
103pub struct DescribeResourcePoliciesResponse {
104 #[serde(skip_serializing_if = "Option::is_none")]
105 pub next_token: Option<String>,
106 #[serde(default, skip_serializing_if = "Vec::is_empty")]
107 pub resource_policies: Vec<ResourcePolicy>,
108}
109
110#[derive(Debug, Clone, Default, Serialize, Deserialize)]
112#[serde(rename_all = "camelCase")]
113pub struct DescribeSubscriptionFiltersResponse {
114 #[serde(skip_serializing_if = "Option::is_none")]
115 pub next_token: Option<String>,
116 #[serde(default, skip_serializing_if = "Vec::is_empty")]
117 pub subscription_filters: Vec<SubscriptionFilter>,
118}
119
120#[derive(Debug, Clone, Default, Serialize, Deserialize)]
122#[serde(rename_all = "camelCase")]
123pub struct FilterLogEventsResponse {
124 #[serde(default, skip_serializing_if = "Vec::is_empty")]
125 pub events: Vec<FilteredLogEvent>,
126 #[serde(skip_serializing_if = "Option::is_none")]
127 pub next_token: Option<String>,
128 #[serde(default, skip_serializing_if = "Vec::is_empty")]
129 pub searched_log_streams: Vec<SearchedLogStream>,
130}
131
132#[derive(Debug, Clone, Default, Serialize, Deserialize)]
134#[serde(rename_all = "camelCase")]
135pub struct GetLogEventsResponse {
136 #[serde(default, skip_serializing_if = "Vec::is_empty")]
137 pub events: Vec<OutputLogEvent>,
138 #[serde(skip_serializing_if = "Option::is_none")]
139 pub next_backward_token: Option<String>,
140 #[serde(skip_serializing_if = "Option::is_none")]
141 pub next_forward_token: Option<String>,
142}
143
144#[derive(Debug, Clone, Default, Serialize, Deserialize)]
146#[serde(rename_all = "camelCase")]
147pub struct GetQueryResultsResponse {
148 #[serde(skip_serializing_if = "Option::is_none")]
149 pub encryption_key: Option<String>,
150 #[serde(skip_serializing_if = "Option::is_none")]
151 pub query_language: Option<QueryLanguage>,
152 #[serde(default, skip_serializing_if = "Vec::is_empty")]
153 pub results: Vec<Vec<ResultField>>,
154 #[serde(skip_serializing_if = "Option::is_none")]
155 pub statistics: Option<QueryStatistics>,
156 #[serde(skip_serializing_if = "Option::is_none")]
157 pub status: Option<QueryStatus>,
158}
159
160#[derive(Debug, Clone, Default, Serialize, Deserialize)]
162#[serde(rename_all = "camelCase")]
163pub struct ListTagsForResourceResponse {
164 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
165 pub tags: HashMap<String, String>,
166}
167
168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
170#[serde(rename_all = "camelCase")]
171pub struct ListTagsLogGroupResponse {
172 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
173 pub tags: HashMap<String, String>,
174}
175
176#[derive(Debug, Clone, Default, Serialize, Deserialize)]
178#[serde(rename_all = "camelCase")]
179pub struct PutDestinationResponse {
180 #[serde(skip_serializing_if = "Option::is_none")]
181 pub destination: Option<Destination>,
182}
183
184#[derive(Debug, Clone, Default, Serialize, Deserialize)]
186#[serde(rename_all = "camelCase")]
187pub struct PutLogEventsResponse {
188 #[serde(skip_serializing_if = "Option::is_none")]
189 pub next_sequence_token: Option<String>,
190 #[serde(skip_serializing_if = "Option::is_none")]
191 pub rejected_entity_info: Option<RejectedEntityInfo>,
192 #[serde(skip_serializing_if = "Option::is_none")]
193 pub rejected_log_events_info: Option<RejectedLogEventsInfo>,
194}
195
196#[derive(Debug, Clone, Default, Serialize, Deserialize)]
198#[serde(rename_all = "camelCase")]
199pub struct PutQueryDefinitionResponse {
200 #[serde(skip_serializing_if = "Option::is_none")]
201 pub query_definition_id: Option<String>,
202}
203
204#[derive(Debug, Clone, Default, Serialize, Deserialize)]
206#[serde(rename_all = "camelCase")]
207pub struct PutResourcePolicyResponse {
208 #[serde(skip_serializing_if = "Option::is_none")]
209 pub resource_policy: Option<ResourcePolicy>,
210 #[serde(skip_serializing_if = "Option::is_none")]
211 pub revision_id: Option<String>,
212}
213
214#[derive(Debug, Clone, Default, Serialize, Deserialize)]
216#[serde(rename_all = "camelCase")]
217pub struct StartQueryResponse {
218 #[serde(skip_serializing_if = "Option::is_none")]
219 pub query_id: Option<String>,
220}
221
222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
224#[serde(rename_all = "camelCase")]
225pub struct StopQueryResponse {
226 #[serde(skip_serializing_if = "Option::is_none")]
227 pub success: Option<bool>,
228}
229
230#[derive(Debug, Clone, Default, Serialize, Deserialize)]
232#[serde(rename_all = "camelCase")]
233pub struct TestMetricFilterResponse {
234 #[serde(default, skip_serializing_if = "Vec::is_empty")]
235 pub matches: Vec<MetricFilterMatchRecord>,
236}