Skip to main content

ghl_models/v3/
knowledge_base.rs

1// @generated by xtask/generate_models.py — do not edit by hand.
2// Source: https://github.com/GoHighLevel/highlevel-api-docs
3// Doc comments are HighLevel's own field descriptions, reflowed verbatim, so
4// they aren't held to rustdoc's markdown conventions.
5#![allow(
6    missing_docs,
7    clippy::doc_lazy_continuation,
8    clippy::doc_overindented_list_items
9)]
10
11use serde::{Deserialize, Serialize};
12
13/// `AddFaqDTO` from the GoHighLevel OpenAPI spec.
14#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15pub struct AddFaqDTO {
16    /// location ID as string
17    /// Required by the API.
18    #[serde(rename = "locationId")]
19    pub location_id: String,
20    /// faq question as a string
21    /// Required by the API.
22    pub question: String,
23    /// faq answer as a string
24    /// Required by the API.
25    pub answer: String,
26    /// knowledge base ID as string
27    /// Required by the API.
28    #[serde(rename = "knowledgeBaseId")]
29    pub knowledge_base_id: String,
30}
31
32/// `BadRequestDTO` from the GoHighLevel OpenAPI spec.
33#[derive(Debug, Clone, Default, Serialize, Deserialize)]
34pub struct BadRequestDTO {
35    #[serde(
36        rename = "statusCode",
37        default,
38        skip_serializing_if = "Option::is_none"
39    )]
40    pub status_code: Option<f64>,
41    #[serde(default, skip_serializing_if = "Option::is_none")]
42    pub message: Option<String>,
43}
44
45/// `CrawledUrlDTO` from the GoHighLevel OpenAPI spec.
46#[derive(Debug, Clone, Default, Serialize, Deserialize)]
47pub struct CrawledUrlDTO {
48    /// Unique identifier for the URL
49    /// Required by the API.
50    pub id: String,
51    /// The actual URL that was crawled
52    /// Required by the API.
53    pub url: String,
54    /// Title of the webpage
55    /// Required by the API.
56    pub title: String,
57    /// Current processing status of the URL
58    /// Allowed values: `Pending`, `Processing`, `Successful`, `Failed`, `Existing`,
59    /// `Restricted`, `Cancelled`, `Aborted`, `Training`.
60    /// Required by the API.
61    pub status: String,
62    /// Location ID associated with this URL
63    /// Required by the API.
64    #[serde(rename = "locationId")]
65    pub location_id: String,
66    /// Knowledge base ID this URL belongs to
67    /// Required by the API.
68    #[serde(rename = "knowledgeBaseId")]
69    pub knowledge_base_id: String,
70    /// URL to the stored content file
71    /// Required by the API.
72    pub content: String,
73    /// Whether the content was edited by user
74    /// Required by the API.
75    #[serde(rename = "contentEditedByUser")]
76    pub content_edited_by_user: bool,
77    /// Last updated timestamp
78    /// Required by the API.
79    #[serde(rename = "updatedAt")]
80    pub updated_at: String,
81}
82
83/// `CrawlingAggregateDTO` from the GoHighLevel OpenAPI spec.
84#[derive(Debug, Clone, Default, Serialize, Deserialize)]
85pub struct CrawlingAggregateDTO {
86    /// Status grouping identifier
87    /// Allowed values: `Pending`, `Processing`, `Successful`, `Failed`, `Existing`,
88    /// `Restricted`, `Cancelled`, `Aborted`, `Training`.
89    /// Required by the API.
90    #[serde(rename = "_id")]
91    pub id: String,
92    /// Array of records for this status
93    /// Required by the API.
94    #[serde(default, skip_serializing_if = "Vec::is_empty")]
95    pub records: Vec<CrawlingRecordDTO>,
96}
97
98/// `CrawlingRecordDTO` from the GoHighLevel OpenAPI spec.
99#[derive(Debug, Clone, Default, Serialize, Deserialize)]
100pub struct CrawlingRecordDTO {
101    /// URL being crawled
102    /// Required by the API.
103    pub url: String,
104    /// Unique record identifier
105    /// Required by the API.
106    pub id: String,
107    /// Page title (for successful/pending records)
108    #[serde(default, skip_serializing_if = "Option::is_none")]
109    pub title: Option<String>,
110    /// Error details (for failed records)
111    #[serde(default, skip_serializing_if = "Option::is_none")]
112    pub error: Option<ErrorDetailsDTO>,
113}
114
115/// `CrawlingStatusDataDTO` from the GoHighLevel OpenAPI spec.
116#[derive(Debug, Clone, Default, Serialize, Deserialize)]
117pub struct CrawlingStatusDataDTO {
118    /// Aggregated crawling results by status
119    /// Required by the API.
120    #[serde(default, skip_serializing_if = "Vec::is_empty")]
121    pub aggregate: Vec<CrawlingAggregateDTO>,
122    /// Detailed operation information
123    /// Required by the API.
124    #[serde(rename = "operationDetails")]
125    pub operation_details: OperationDetailsDTO,
126}
127
128/// `CrawlingStatusResponseDTO` from the GoHighLevel OpenAPI spec.
129#[derive(Debug, Clone, Default, Serialize, Deserialize)]
130pub struct CrawlingStatusResponseDTO {
131    /// Indicates if the operation was successful
132    /// Required by the API.
133    pub success: bool,
134    /// Detailed crawling status data
135    /// Required by the API.
136    pub data: CrawlingStatusDataDTO,
137}
138
139/// `CreateFaqResponseDTO` from the GoHighLevel OpenAPI spec.
140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
141pub struct CreateFaqResponseDTO {
142    /// Success status of the operation
143    /// Required by the API.
144    pub success: bool,
145    /// Created FAQ details
146    /// Required by the API.
147    pub faq: FaqResponseDTO,
148}
149
150/// `CreateKnowledgeBaseDTO` from the GoHighLevel OpenAPI spec.
151#[derive(Debug, Clone, Default, Serialize, Deserialize)]
152pub struct CreateKnowledgeBaseDTO {
153    /// Required by the API.
154    pub name: String,
155    #[serde(default, skip_serializing_if = "Option::is_none")]
156    pub description: Option<String>,
157    /// Required by the API.
158    #[serde(rename = "locationId")]
159    pub location_id: String,
160}
161
162/// `CreateKnowledgeBaseResponseDTO` from the GoHighLevel OpenAPI spec.
163#[derive(Debug, Clone, Default, Serialize, Deserialize)]
164pub struct CreateKnowledgeBaseResponseDTO {
165    /// Success status of the operation
166    /// Required by the API.
167    pub success: bool,
168    /// Created knowledge base details
169    /// Required by the API.
170    pub data: KnowledgeBaseDataDTO,
171}
172
173/// `DeleteFaqResponseDTO` from the GoHighLevel OpenAPI spec.
174#[derive(Debug, Clone, Default, Serialize, Deserialize)]
175pub struct DeleteFaqResponseDTO {
176    /// Success status of the delete operation
177    /// Required by the API.
178    pub success: bool,
179}
180
181/// `DeleteKnowledgeBaseResponseDTO` from the GoHighLevel OpenAPI spec.
182#[derive(Debug, Clone, Default, Serialize, Deserialize)]
183pub struct DeleteKnowledgeBaseResponseDTO {
184    /// Required by the API.
185    pub success: bool,
186}
187
188/// `DeleteWebsiteUrlRequestDTO` from the GoHighLevel OpenAPI spec.
189#[derive(Debug, Clone, Default, Serialize, Deserialize)]
190pub struct DeleteWebsiteUrlRequestDTO {
191    /// knowledge base ID as string
192    /// Required by the API.
193    #[serde(rename = "knowledgeBaseId")]
194    pub knowledge_base_id: String,
195    /// location ID as string
196    /// Required by the API.
197    #[serde(rename = "locationId")]
198    pub location_id: String,
199    /// List of trained urls ids ( fetched from the Get all trained page links by knowledge base
200    /// endpoint)
201    /// Required by the API.
202    #[serde(rename = "urlIds", default, skip_serializing_if = "Vec::is_empty")]
203    pub url_ids: Vec<String>,
204}
205
206/// `DeleteWebsiteUrlResponseDTO` from the GoHighLevel OpenAPI spec.
207#[derive(Debug, Clone, Default, Serialize, Deserialize)]
208pub struct DeleteWebsiteUrlResponseDTO {
209    /// Indicates if the operation was successful
210    /// Required by the API.
211    pub success: bool,
212}
213
214/// `DiscoverWebsiteDataDTO` from the GoHighLevel OpenAPI spec.
215#[derive(Debug, Clone, Default, Serialize, Deserialize)]
216pub struct DiscoverWebsiteDataDTO {
217    /// Operation ID for tracking the discovery process
218    /// Required by the API.
219    #[serde(rename = "operationId")]
220    pub operation_id: String,
221    /// Current status of the website discovery operation
222    /// Allowed values: `Pending`, `Processing`, `Successful`, `Failed`, `Existing`,
223    /// `Restricted`, `Cancelled`, `Aborted`, `Training`.
224    /// Required by the API.
225    pub status: String,
226    /// The URL being discovered/crawled
227    /// Required by the API.
228    pub url: String,
229}
230
231/// `DiscoverWebsiteRequestDTO` from the GoHighLevel OpenAPI spec.
232#[derive(Debug, Clone, Default, Serialize, Deserialize)]
233pub struct DiscoverWebsiteRequestDTO {
234    /// Location ID as string
235    /// Required by the API.
236    #[serde(rename = "locationId")]
237    pub location_id: String,
238    /// Website URL as string
239    /// Required by the API.
240    pub url: String,
241    /// Mode as string
242    /// Allowed values: `Exact`, `Path`, `Domain`.
243    /// Required by the API.
244    pub option: String,
245    /// knowledge base ID as string
246    /// Required by the API.
247    #[serde(rename = "knowledgeBaseId")]
248    pub knowledge_base_id: String,
249}
250
251/// `DiscoverWebsiteResponseDTO` from the GoHighLevel OpenAPI spec.
252#[derive(Debug, Clone, Default, Serialize, Deserialize)]
253pub struct DiscoverWebsiteResponseDTO {
254    /// Indicates if the operation was successful
255    /// Required by the API.
256    pub success: bool,
257    /// Data containing operation details
258    /// Required by the API.
259    pub data: DiscoverWebsiteDataDTO,
260}
261
262/// `ErrorDetailsDTO` from the GoHighLevel OpenAPI spec.
263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
264pub struct ErrorDetailsDTO {
265    /// Error stack trace
266    /// Required by the API.
267    pub stack: String,
268    /// Error response message
269    /// Required by the API.
270    pub response: String,
271    /// HTTP status code
272    /// Required by the API.
273    pub status: f64,
274    /// Additional options (nullable)
275    #[serde(default, skip_serializing_if = "Option::is_none")]
276    pub options: Option<serde_json::Value>,
277    /// Error message
278    /// Required by the API.
279    pub message: String,
280    /// Error name/type
281    /// Required by the API.
282    pub name: String,
283}
284
285/// `FaqResponseDTO` from the GoHighLevel OpenAPI spec.
286#[derive(Debug, Clone, Default, Serialize, Deserialize)]
287pub struct FaqResponseDTO {
288    /// FAQ ID as string
289    /// Required by the API.
290    pub id: String,
291    /// FAQ question
292    /// Required by the API.
293    pub question: String,
294    /// FAQ question in lowercase
295    /// Required by the API.
296    #[serde(rename = "questionLowerCase")]
297    pub question_lower_case: String,
298    /// FAQ answer
299    /// Required by the API.
300    pub answer: String,
301    /// Knowledge base ID
302    /// Required by the API.
303    #[serde(rename = "knowledgeBaseId")]
304    pub knowledge_base_id: String,
305    /// Location ID
306    /// Required by the API.
307    #[serde(rename = "locationId")]
308    pub location_id: String,
309    /// Trained URL ID
310    /// Required by the API.
311    #[serde(rename = "trainedUrlId")]
312    pub trained_url_id: String,
313    /// Whether the FAQ is deleted
314    /// Required by the API.
315    pub deleted: bool,
316    /// Date when FAQ was created
317    /// Required by the API.
318    #[serde(rename = "createdAt")]
319    pub created_at: String,
320    /// Date when FAQ was last updated
321    /// Required by the API.
322    #[serde(rename = "updatedAt")]
323    pub updated_at: String,
324}
325
326/// `GetAllKnowledgeBasesPaginatedDataDTO` from the GoHighLevel OpenAPI spec.
327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
328pub struct GetAllKnowledgeBasesPaginatedDataDTO {
329    /// Array of knowledge bases
330    /// Required by the API.
331    #[serde(
332        rename = "knowledgeBases",
333        default,
334        skip_serializing_if = "Vec::is_empty"
335    )]
336    pub knowledge_bases: Vec<KnowledgeBaseListItemDTO>,
337    /// Total count of all active knowledge bases
338    /// Required by the API.
339    #[serde(rename = "activeCount")]
340    pub active_count: f64,
341    /// Whether there are more knowledge bases available
342    /// Required by the API.
343    #[serde(rename = "hasMore")]
344    pub has_more: bool,
345    /// ID of the last knowledge base in this page (use for next page request)
346    #[serde(
347        rename = "lastKnowledgeBaseId",
348        default,
349        skip_serializing_if = "Option::is_none"
350    )]
351    pub last_knowledge_base_id: Option<String>,
352}
353
354/// `GetAllKnowledgeBasesPaginatedResponseDTO` from the GoHighLevel OpenAPI spec.
355#[derive(Debug, Clone, Default, Serialize, Deserialize)]
356pub struct GetAllKnowledgeBasesPaginatedResponseDTO {
357    /// Success status of the operation
358    /// Required by the API.
359    pub success: bool,
360    /// Paginated knowledge bases data
361    /// Required by the API.
362    pub data: GetAllKnowledgeBasesPaginatedDataDTO,
363}
364
365/// `GetAllUrlsByKnowledgeBaseResponseDTO` from the GoHighLevel OpenAPI spec.
366#[derive(Debug, Clone, Default, Serialize, Deserialize)]
367pub struct GetAllUrlsByKnowledgeBaseResponseDTO {
368    /// Total count of URLs in the knowledge base
369    /// Required by the API.
370    pub count: f64,
371    /// Array of crawled URLs with their details
372    /// Required by the API.
373    #[serde(default, skip_serializing_if = "Vec::is_empty")]
374    pub urls: Vec<CrawledUrlDTO>,
375}
376
377/// `GetKnowledgeBaseByIdDataDTO` from the GoHighLevel OpenAPI spec.
378#[derive(Debug, Clone, Default, Serialize, Deserialize)]
379pub struct GetKnowledgeBaseByIdDataDTO {
380    /// Knowledge base ID
381    /// Required by the API.
382    pub id: String,
383    /// Knowledge base name
384    /// Required by the API.
385    pub name: String,
386    /// Knowledge base name in lowercase
387    /// Required by the API.
388    #[serde(rename = "nameLowerCase")]
389    pub name_lower_case: String,
390    /// Location ID
391    /// Required by the API.
392    #[serde(rename = "locationId")]
393    pub location_id: String,
394    /// Whether the knowledge base is deleted
395    /// Required by the API.
396    pub deleted: bool,
397    /// Date when knowledge base was created
398    /// Required by the API.
399    #[serde(rename = "createdAt")]
400    pub created_at: String,
401    /// Date when knowledge base was last updated
402    /// Required by the API.
403    #[serde(rename = "updatedAt")]
404    pub updated_at: String,
405    /// Knowledge base metadata with content counts
406    /// Required by the API.
407    #[serde(rename = "kbMetadata")]
408    pub kb_metadata: KnowledgeBaseMetadataDTO,
409    /// Whether the knowledge base is default or not
410    #[serde(rename = "isDefault", default, skip_serializing_if = "Option::is_none")]
411    pub is_default: Option<bool>,
412}
413
414/// `GetKnowledgeBaseByIdResponseDTO` from the GoHighLevel OpenAPI spec.
415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
416pub struct GetKnowledgeBaseByIdResponseDTO {
417    /// Success status of the operation
418    /// Required by the API.
419    pub success: bool,
420    /// Knowledge base details
421    /// Required by the API.
422    pub data: GetKnowledgeBaseByIdDataDTO,
423}
424
425/// `InternalServerErrorDTO` from the GoHighLevel OpenAPI spec.
426#[derive(Debug, Clone, Default, Serialize, Deserialize)]
427pub struct InternalServerErrorDTO {
428    #[serde(
429        rename = "statusCode",
430        default,
431        skip_serializing_if = "Option::is_none"
432    )]
433    pub status_code: Option<f64>,
434    #[serde(default, skip_serializing_if = "Option::is_none")]
435    pub message: Option<String>,
436}
437
438/// `KnowledgeBaseDataDTO` from the GoHighLevel OpenAPI spec.
439#[derive(Debug, Clone, Default, Serialize, Deserialize)]
440pub struct KnowledgeBaseDataDTO {
441    /// Knowledge base ID
442    /// Required by the API.
443    pub id: String,
444    /// Knowledge base name
445    /// Required by the API.
446    pub name: String,
447    /// Knowledge base name in lowercase
448    /// Required by the API.
449    #[serde(rename = "nameLowerCase")]
450    pub name_lower_case: String,
451    /// Location ID
452    /// Required by the API.
453    #[serde(rename = "locationId")]
454    pub location_id: String,
455    /// Knowledge base metadata
456    /// Required by the API.
457    #[serde(rename = "kbMetadata")]
458    pub kb_metadata: serde_json::Value,
459    /// Whether the knowledge base is deleted
460    /// Required by the API.
461    pub deleted: bool,
462    /// Date when knowledge base was created
463    /// Required by the API.
464    #[serde(rename = "createdAt")]
465    pub created_at: String,
466    /// Date when knowledge base was last updated
467    /// Required by the API.
468    #[serde(rename = "updatedAt")]
469    pub updated_at: String,
470}
471
472/// `KnowledgeBaseListItemDTO` from the GoHighLevel OpenAPI spec.
473#[derive(Debug, Clone, Default, Serialize, Deserialize)]
474pub struct KnowledgeBaseListItemDTO {
475    /// Knowledge base ID
476    /// Required by the API.
477    pub id: String,
478    /// Knowledge base name
479    /// Required by the API.
480    pub name: String,
481    /// Date when knowledge base was created
482    /// Required by the API.
483    #[serde(rename = "createdAt")]
484    pub created_at: String,
485}
486
487/// `KnowledgeBaseMetadataDTO` from the GoHighLevel OpenAPI spec.
488#[derive(Debug, Clone, Default, Serialize, Deserialize)]
489pub struct KnowledgeBaseMetadataDTO {
490    /// Number of FAQs in the knowledge base
491    /// Required by the API.
492    pub faqs: f64,
493    /// Number of URLs in the knowledge base
494    /// Required by the API.
495    pub urls: f64,
496    /// Number of rich text documents in the knowledge base
497    /// Required by the API.
498    #[serde(rename = "richText")]
499    pub rich_text: f64,
500    /// Number of files in the knowledge base
501    /// Required by the API.
502    pub files: f64,
503    /// Number of web searche configs in the knowledge base
504    /// Required by the API.
505    #[serde(rename = "webSearches")]
506    pub web_searches: f64,
507    /// Number of tables in the knowledge base
508    /// Required by the API.
509    pub tables: f64,
510}
511
512/// `ListFaqsResponseDTO` from the GoHighLevel OpenAPI spec.
513#[derive(Debug, Clone, Default, Serialize, Deserialize)]
514pub struct ListFaqsResponseDTO {
515    /// Total count of all FAQs in the knowledge base
516    /// Required by the API.
517    pub count: f64,
518    /// Array of FAQ objects
519    /// Required by the API.
520    #[serde(default, skip_serializing_if = "Vec::is_empty")]
521    pub faqs: Vec<FaqResponseDTO>,
522    /// Last FAQ ID for pagination (use as lastFaqId in next request)
523    #[serde(rename = "lastFaqId", default, skip_serializing_if = "Option::is_none")]
524    pub last_faq_id: Option<String>,
525    /// Whether there are more FAQs available
526    #[serde(rename = "hasMore", default, skip_serializing_if = "Option::is_none")]
527    pub has_more: Option<bool>,
528}
529
530/// `OperationDetailsDTO` from the GoHighLevel OpenAPI spec.
531#[derive(Debug, Clone, Default, Serialize, Deserialize)]
532pub struct OperationDetailsDTO {
533    /// Number of URLs discovered
534    /// Required by the API.
535    #[serde(rename = "discoveredUrlsCount")]
536    pub discovered_urls_count: f64,
537    /// Number of URLs successfully trained
538    /// Required by the API.
539    #[serde(rename = "trainedUrlsCount")]
540    pub trained_urls_count: f64,
541    /// Operation unique identifier
542    /// Required by the API.
543    #[serde(rename = "_id")]
544    pub id: String,
545    /// Associated location ID
546    /// Required by the API.
547    #[serde(rename = "locationId")]
548    pub location_id: String,
549    /// Current operation status
550    /// Allowed values: `Pending`, `Processing`, `Successful`, `Failed`, `Existing`,
551    /// `Restricted`, `Cancelled`, `Aborted`, `Training`.
552    /// Required by the API.
553    pub status: String,
554    /// Base URL being crawled
555    /// Required by the API.
556    pub url: String,
557    /// Crawling mode used
558    /// Allowed values: `Exact`, `Path`, `Domain`.
559    /// Required by the API.
560    pub mode: String,
561    /// Knowledge base ID
562    /// Required by the API.
563    #[serde(rename = "knowledgeBaseId")]
564    pub knowledge_base_id: String,
565    /// Operation creation timestamp
566    /// Required by the API.
567    #[serde(rename = "createdAt")]
568    pub created_at: String,
569    /// Last update timestamp
570    /// Required by the API.
571    #[serde(rename = "updatedAt")]
572    pub updated_at: String,
573    /// Version field
574    /// Required by the API.
575    #[serde(rename = "__v")]
576    pub v: f64,
577    /// Robots.txt file content
578    #[serde(
579        rename = "robotsFileData",
580        default,
581        skip_serializing_if = "Option::is_none"
582    )]
583    pub robots_file_data: Option<String>,
584}
585
586/// `TrainDiscoveredUrlsDTO` from the GoHighLevel OpenAPI spec.
587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
588pub struct TrainDiscoveredUrlsDTO {
589    /// Location ID as string
590    /// Required by the API.
591    #[serde(rename = "locationId")]
592    pub location_id: String,
593    /// List of Object ids of the discovered urls
594    /// Required by the API.
595    #[serde(rename = "urlIds", default, skip_serializing_if = "Vec::is_empty")]
596    pub url_ids: Vec<String>,
597    /// knowledge base id
598    /// Required by the API.
599    #[serde(rename = "knowledgeBaseId")]
600    pub knowledge_base_id: String,
601    /// operation id as string
602    /// Required by the API.
603    #[serde(rename = "operationId")]
604    pub operation_id: String,
605}
606
607/// `TrainDiscoveredUrlsResponseDTO` from the GoHighLevel OpenAPI spec.
608#[derive(Debug, Clone, Default, Serialize, Deserialize)]
609pub struct TrainDiscoveredUrlsResponseDTO {
610    /// Indicates if the operation was successful
611    /// Required by the API.
612    pub success: bool,
613}
614
615/// `UnauthorizedDTO` from the GoHighLevel OpenAPI spec.
616#[derive(Debug, Clone, Default, Serialize, Deserialize)]
617pub struct UnauthorizedDTO {
618    #[serde(
619        rename = "statusCode",
620        default,
621        skip_serializing_if = "Option::is_none"
622    )]
623    pub status_code: Option<f64>,
624    #[serde(default, skip_serializing_if = "Option::is_none")]
625    pub message: Option<String>,
626    #[serde(default, skip_serializing_if = "Option::is_none")]
627    pub error: Option<String>,
628}
629
630/// `UnprocessableDTO` from the GoHighLevel OpenAPI spec.
631#[derive(Debug, Clone, Default, Serialize, Deserialize)]
632pub struct UnprocessableDTO {
633    #[serde(
634        rename = "statusCode",
635        default,
636        skip_serializing_if = "Option::is_none"
637    )]
638    pub status_code: Option<f64>,
639    #[serde(default, skip_serializing_if = "Vec::is_empty")]
640    pub message: Vec<String>,
641    #[serde(default, skip_serializing_if = "Option::is_none")]
642    pub error: Option<String>,
643}
644
645/// `UpdateFaqBodyDTO` from the GoHighLevel OpenAPI spec.
646#[derive(Debug, Clone, Default, Serialize, Deserialize)]
647pub struct UpdateFaqBodyDTO {
648    /// faq question as a string
649    /// Required by the API.
650    pub question: String,
651    /// faq answer as a string
652    /// Required by the API.
653    pub answer: String,
654}
655
656/// `UpdateFaqResponseDTO` from the GoHighLevel OpenAPI spec.
657#[derive(Debug, Clone, Default, Serialize, Deserialize)]
658pub struct UpdateFaqResponseDTO {
659    /// Success status of the update operation
660    /// Required by the API.
661    pub success: bool,
662}
663
664/// `UpdateKnowledgeBaseDTO` from the GoHighLevel OpenAPI spec.
665#[derive(Debug, Clone, Default, Serialize, Deserialize)]
666pub struct UpdateKnowledgeBaseDTO {
667    /// field to update the name of the knowledge base
668    #[serde(default, skip_serializing_if = "Option::is_none")]
669    pub name: Option<String>,
670    /// field to update the description of the knowledge base
671    #[serde(default, skip_serializing_if = "Option::is_none")]
672    pub description: Option<String>,
673}
674
675/// `UpdateKnowledgeBaseResponseDTO` from the GoHighLevel OpenAPI spec.
676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
677pub struct UpdateKnowledgeBaseResponseDTO {
678    /// Required by the API.
679    pub success: bool,
680}