Skip to main content

ghl_models/v3/
forms.rs

1//! `forms` data models for GoHighLevel API V3 (9 types).
2//!
3//! Generated from HighLevel's official OpenAPI spec for the
4//! **Forms** module. Every endpoint that uses these types, with its
5//! parameters, required scopes and enum values, is documented in the
6//! [`forms` API reference](https://github.com/Shahroz/ghl-rs/blob/main/docs/api/forms.md).
7//!
8//! Enable with `features = ["forms"]`.
9// @generated by xtask/generate_models.py — do not edit by hand.
10// Source: https://github.com/GoHighLevel/highlevel-api-docs
11// Doc comments are HighLevel's own field descriptions, reflowed verbatim, so
12// they aren't held to rustdoc's markdown conventions.
13#![allow(
14    missing_docs,
15    clippy::doc_lazy_continuation,
16    clippy::doc_overindented_list_items
17)]
18
19use serde::{Deserialize, Serialize};
20
21/// `ContactSessionIds` from the GoHighLevel OpenAPI spec.
22#[derive(Debug, Clone, Default, Serialize, Deserialize)]
23pub struct ContactSessionIds {
24    #[serde(default, skip_serializing_if = "Vec::is_empty")]
25    pub ids: Vec<String>,
26}
27
28/// `EventDataSchema` from the GoHighLevel OpenAPI spec.
29#[derive(Debug, Clone, Default, Serialize, Deserialize)]
30pub struct EventDataSchema {
31    #[serde(default, skip_serializing_if = "Option::is_none")]
32    pub fbc: Option<String>,
33    #[serde(default, skip_serializing_if = "Option::is_none")]
34    pub fbp: Option<String>,
35    #[serde(default, skip_serializing_if = "Option::is_none")]
36    pub page: Option<PageDetailsSchema>,
37    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
38    pub type_: Option<String>,
39    #[serde(default, skip_serializing_if = "Option::is_none")]
40    pub domain: Option<String>,
41    #[serde(default, skip_serializing_if = "Option::is_none")]
42    pub medium: Option<String>,
43    #[serde(default, skip_serializing_if = "Option::is_none")]
44    pub source: Option<String>,
45    #[serde(default, skip_serializing_if = "Option::is_none")]
46    pub version: Option<String>,
47    #[serde(rename = "adSource", default, skip_serializing_if = "Option::is_none")]
48    pub ad_source: Option<String>,
49    #[serde(rename = "mediumId", default, skip_serializing_if = "Option::is_none")]
50    pub medium_id: Option<String>,
51    #[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
52    pub parent_id: Option<String>,
53    #[serde(default, skip_serializing_if = "Option::is_none")]
54    pub referrer: Option<String>,
55    #[serde(rename = "fbEventId", default, skip_serializing_if = "Option::is_none")]
56    pub fb_event_id: Option<String>,
57    #[serde(default, skip_serializing_if = "Option::is_none")]
58    pub timestamp: Option<f64>,
59    #[serde(
60        rename = "parentName",
61        default,
62        skip_serializing_if = "Option::is_none"
63    )]
64    pub parent_name: Option<String>,
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub fingerprint: Option<String>,
67    #[serde(
68        rename = "pageVisitType",
69        default,
70        skip_serializing_if = "Option::is_none"
71    )]
72    pub page_visit_type: Option<String>,
73    #[serde(
74        rename = "contactSessionIds",
75        default,
76        skip_serializing_if = "Option::is_none"
77    )]
78    pub contact_session_ids: Option<ContactSessionIds>,
79}
80
81/// `FormsParams` from the GoHighLevel OpenAPI spec.
82#[derive(Debug, Clone, Default, Serialize, Deserialize)]
83pub struct FormsParams {
84    #[serde(default, skip_serializing_if = "Option::is_none")]
85    pub id: Option<String>,
86    #[serde(default, skip_serializing_if = "Option::is_none")]
87    pub name: Option<String>,
88    #[serde(
89        rename = "locationId",
90        default,
91        skip_serializing_if = "Option::is_none"
92    )]
93    pub location_id: Option<String>,
94}
95
96/// `FormsSubmissionsSubmissionsSchema` from the GoHighLevel OpenAPI spec.
97#[derive(Debug, Clone, Default, Serialize, Deserialize)]
98pub struct FormsSubmissionsSubmissionsSchema {
99    #[serde(default, skip_serializing_if = "Option::is_none")]
100    pub id: Option<String>,
101    #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
102    pub contact_id: Option<String>,
103    #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
104    pub created_at: Option<String>,
105    #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
106    pub form_id: Option<String>,
107    #[serde(default, skip_serializing_if = "Option::is_none")]
108    pub name: Option<String>,
109    #[serde(default, skip_serializing_if = "Option::is_none")]
110    pub email: Option<String>,
111    #[serde(default, skip_serializing_if = "Option::is_none")]
112    pub others: Option<OthersSchema>,
113}
114
115/// `FormsSubmissionsSuccessfulResponseDto` from the GoHighLevel OpenAPI spec.
116#[derive(Debug, Clone, Default, Serialize, Deserialize)]
117pub struct FormsSubmissionsSuccessfulResponseDto {
118    #[serde(default, skip_serializing_if = "Vec::is_empty")]
119    pub submissions: Vec<FormsSubmissionsSubmissionsSchema>,
120    #[serde(default, skip_serializing_if = "Option::is_none")]
121    pub meta: Option<MetaSchema>,
122}
123
124/// `FormsSuccessfulResponseDto` from the GoHighLevel OpenAPI spec.
125#[derive(Debug, Clone, Default, Serialize, Deserialize)]
126pub struct FormsSuccessfulResponseDto {
127    #[serde(default, skip_serializing_if = "Vec::is_empty")]
128    pub forms: Vec<FormsParams>,
129    /// Total number of forms
130    #[serde(default, skip_serializing_if = "Option::is_none")]
131    pub total: Option<f64>,
132}
133
134/// `PageDetailsSchema` from the GoHighLevel OpenAPI spec.
135#[derive(Debug, Clone, Default, Serialize, Deserialize)]
136pub struct PageDetailsSchema {
137    #[serde(default, skip_serializing_if = "Option::is_none")]
138    pub url: Option<String>,
139    #[serde(default, skip_serializing_if = "Option::is_none")]
140    pub title: Option<String>,
141}
142
143/// `metaSchema` from the GoHighLevel OpenAPI spec.
144#[derive(Debug, Clone, Default, Serialize, Deserialize)]
145pub struct MetaSchema {
146    #[serde(default, skip_serializing_if = "Option::is_none")]
147    pub total: Option<f64>,
148    #[serde(
149        rename = "currentPage",
150        default,
151        skip_serializing_if = "Option::is_none"
152    )]
153    pub current_page: Option<f64>,
154    #[serde(rename = "nextPage", default, skip_serializing_if = "Option::is_none")]
155    pub next_page: Option<f64>,
156    #[serde(rename = "prevPage", default, skip_serializing_if = "Option::is_none")]
157    pub prev_page: Option<f64>,
158}
159
160/// `othersSchema` from the GoHighLevel OpenAPI spec.
161#[derive(Debug, Clone, Default, Serialize, Deserialize)]
162pub struct OthersSchema {
163    #[serde(
164        rename = "__submissions_other_field__",
165        default,
166        skip_serializing_if = "Option::is_none"
167    )]
168    pub submissions_other_field: Option<String>,
169    #[serde(
170        rename = "__custom_field_id__",
171        default,
172        skip_serializing_if = "Option::is_none"
173    )]
174    pub custom_field_id: Option<String>,
175    #[serde(rename = "eventData", default, skip_serializing_if = "Option::is_none")]
176    pub event_data: Option<EventDataSchema>,
177    #[serde(
178        rename = "fieldsOriSequance",
179        default,
180        skip_serializing_if = "Vec::is_empty"
181    )]
182    pub fields_ori_sequance: Vec<String>,
183}