Skip to main content

lineark_sdk/generated/
inputs.rs

1//! GraphQL input types.
2//!
3//! Generated by lineark-codegen — do not edit.
4use super::enums::*;
5use crate::field_update::MaybeUndefined;
6use serde::{Deserialize, Serialize};
7/// Activity collection filtering options.
8#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct ActivityCollectionFilter {
11    /// Comparator for the identifier.
12    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
13    pub id: MaybeUndefined<IDComparator>,
14    /// Comparator for the created at date.
15    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
16    pub created_at: MaybeUndefined<DateComparator>,
17    /// Comparator for the updated at date.
18    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
19    pub updated_at: MaybeUndefined<DateComparator>,
20    /// Filters that the activity's user must satisfy.
21    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
22    pub user: MaybeUndefined<Box<UserFilter>>,
23    /// Compound filters, all of which need to be matched by the activity.
24    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
25    pub and: MaybeUndefined<Vec<ActivityCollectionFilter>>,
26    /// Compound filters, one of which need to be matched by the activity.
27    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
28    pub or: MaybeUndefined<Vec<ActivityCollectionFilter>>,
29    /// Filters that needs to be matched by some activities.
30    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
31    pub some: MaybeUndefined<Box<ActivityFilter>>,
32    /// Filters that needs to be matched by all activities.
33    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
34    pub every: MaybeUndefined<Box<ActivityFilter>>,
35    /// Comparator for the collection length.
36    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
37    pub length: MaybeUndefined<NumberComparator>,
38}
39/// Activity filtering options.
40#[derive(Debug, Clone, Default, Serialize, Deserialize)]
41#[serde(rename_all = "camelCase")]
42pub struct ActivityFilter {
43    /// Comparator for the identifier.
44    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
45    pub id: MaybeUndefined<IDComparator>,
46    /// Comparator for the created at date.
47    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
48    pub created_at: MaybeUndefined<DateComparator>,
49    /// Comparator for the updated at date.
50    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
51    pub updated_at: MaybeUndefined<DateComparator>,
52    /// Filters that the activity's user must satisfy.
53    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
54    pub user: MaybeUndefined<Box<UserFilter>>,
55    /// Compound filters, all of which need to be matched by the activity.
56    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
57    pub and: MaybeUndefined<Vec<ActivityFilter>>,
58    /// Compound filters, one of which need to be matched by the activity.
59    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
60    pub or: MaybeUndefined<Vec<ActivityFilter>>,
61}
62/// Input for creating an agent activity.
63#[derive(Debug, Clone, Default, Serialize, Deserialize)]
64#[serde(rename_all = "camelCase")]
65pub struct AgentActivityCreateInput {
66    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
67    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
68    pub id: MaybeUndefined<String>,
69    /// The agent session this activity belongs to.
70    pub agent_session_id: String,
71    /// An optional modifier that provides additional instructions on how the activity should be interpreted.
72    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
73    pub signal: MaybeUndefined<AgentActivitySignal>,
74    /// Metadata about this agent activity's signal.
75    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
76    pub signal_metadata: MaybeUndefined<serde_json::Value>,
77    /// `Internal` Metadata about user-provided contextual information for this agent activity.
78    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
79    pub contextual_metadata: MaybeUndefined<serde_json::Value>,
80    /// The content payload of the agent activity. This object is not strictly typed.
81    /// See <https://linear.app/developers/agent-interaction#activity-content-payload> for typing details.
82    pub content: serde_json::Value,
83    /// Whether the activity is ephemeral, and should disappear after the next activity. Defaults to false.
84    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
85    pub ephemeral: MaybeUndefined<bool>,
86}
87/// `Internal` Input for creating prompt-type agent activities (created by users).
88#[derive(Debug, Clone, Serialize, Deserialize)]
89#[serde(rename_all = "camelCase")]
90pub struct AgentActivityCreatePromptInput {
91    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
92    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
93    pub id: MaybeUndefined<String>,
94    /// The agent session this activity belongs to.
95    pub agent_session_id: String,
96    /// An optional modifier that provides additional instructions on how the activity should be interpreted.
97    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
98    pub signal: MaybeUndefined<AgentActivitySignal>,
99    /// Metadata about this agent activity's signal.
100    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
101    pub signal_metadata: MaybeUndefined<serde_json::Value>,
102    /// `Internal` Metadata about user-provided contextual information for this agent activity.
103    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
104    pub contextual_metadata: MaybeUndefined<serde_json::Value>,
105    /// The content payload of the prompt agent activity.
106    pub content: AgentActivityPromptCreateInputContent,
107    /// The comment that contains the content of this activity.
108    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
109    pub source_comment_id: MaybeUndefined<String>,
110}
111/// Agent activity filtering options.
112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
113#[serde(rename_all = "camelCase")]
114pub struct AgentActivityFilter {
115    /// Comparator for the identifier.
116    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
117    pub id: MaybeUndefined<IDComparator>,
118    /// Comparator for the created at date.
119    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
120    pub created_at: MaybeUndefined<DateComparator>,
121    /// Comparator for the updated at date.
122    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
123    pub updated_at: MaybeUndefined<DateComparator>,
124    /// Comparator for the agent session ID.
125    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
126    pub agent_session_id: MaybeUndefined<StringComparator>,
127    /// Comparator for the agent activity's content type.
128    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
129    pub r#type: MaybeUndefined<StringComparator>,
130    /// Filters that the source comment must satisfy.
131    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
132    pub source_comment: MaybeUndefined<NullableCommentFilter>,
133    /// Compound filters, all of which need to be matched by the agent activity.
134    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
135    pub and: MaybeUndefined<Vec<AgentActivityFilter>>,
136    /// Compound filters, one of which need to be matched by the agent activity.
137    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
138    pub or: MaybeUndefined<Vec<AgentActivityFilter>>,
139}
140/// `Internal` Input for creating prompt-type agent activities (created by users).
141#[derive(Debug, Clone, Serialize, Deserialize)]
142#[serde(rename_all = "camelCase")]
143pub struct AgentActivityPromptCreateInputContent {
144    /// The type of activity.
145    pub r#type: AgentActivityType,
146    /// A message requesting additional information or action from user in markdown format.
147    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
148    pub body: MaybeUndefined<String>,
149    /// `Internal` The prompt content as a ProseMirror document.
150    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
151    pub body_data: MaybeUndefined<serde_json::Value>,
152}
153/// `Internal` Input for creating an agent session on behalf of the current user.
154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
155#[serde(rename_all = "camelCase")]
156pub struct AgentSessionCreateInput {
157    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
158    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
159    pub id: MaybeUndefined<String>,
160    /// The issue that this session will be associated with. Can be a UUID or issue identifier (e.g., 'LIN-123').
161    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
162    pub issue_id: MaybeUndefined<String>,
163    /// The app user (agent) to create a session for.
164    pub app_user_id: String,
165    /// `Internal` Serialized JSON representing the page contexts this session is related to. Used for direct chat sessions to provide context about the current page (e.g., Issue, Project).
166    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
167    pub context: MaybeUndefined<serde_json::Value>,
168}
169/// Input for creating an agent session on a root comment.
170#[derive(Debug, Clone, Default, Serialize, Deserialize)]
171#[serde(rename_all = "camelCase")]
172pub struct AgentSessionCreateOnComment {
173    /// The root comment that this session will be associated with.
174    pub comment_id: String,
175    /// The URL of an external agent-hosted page associated with this session.
176    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
177    pub external_link: MaybeUndefined<String>,
178    /// URLs of external resources associated with this session.
179    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
180    pub external_urls: MaybeUndefined<Vec<AgentSessionExternalUrlInput>>,
181}
182/// Input for creating an agent session on an issue.
183#[derive(Debug, Clone, Default, Serialize, Deserialize)]
184#[serde(rename_all = "camelCase")]
185pub struct AgentSessionCreateOnIssue {
186    /// The issue that this session will be associated with. Can be a UUID or issue identifier (e.g., 'LIN-123').
187    pub issue_id: String,
188    /// The URL of an external agent-hosted page associated with this session.
189    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
190    pub external_link: MaybeUndefined<String>,
191    /// URLs of external resources associated with this session.
192    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
193    pub external_urls: MaybeUndefined<Vec<AgentSessionExternalUrlInput>>,
194}
195/// Input for an external URL associated with an agent session.
196#[derive(Debug, Clone, Default, Serialize, Deserialize)]
197#[serde(rename_all = "camelCase")]
198pub struct AgentSessionExternalUrlInput {
199    /// The URL of the external resource.
200    pub url: String,
201    /// Label for the URL.
202    pub label: String,
203}
204/// Input for updating the external URLs of an agent session.
205#[derive(Debug, Clone, Default, Serialize, Deserialize)]
206#[serde(rename_all = "camelCase")]
207pub struct AgentSessionUpdateExternalUrlInput {
208    /// The URL of an external agent-hosted page associated with this session.
209    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
210    pub external_link: MaybeUndefined<String>,
211    /// URLs of external resources associated with this session. Replaces existing URLs.
212    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
213    pub external_urls: MaybeUndefined<Vec<AgentSessionExternalUrlInput>>,
214    /// URLs of external resources to be added to this session.
215    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
216    pub added_external_urls: MaybeUndefined<Vec<AgentSessionExternalUrlInput>>,
217    /// URLs to be removed from this session.
218    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
219    pub removed_external_urls: MaybeUndefined<Vec<String>>,
220}
221/// Input for updating an agent session.
222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
223#[serde(rename_all = "camelCase")]
224pub struct AgentSessionUpdateInput {
225    /// The URL of an external agent-hosted page associated with this session. Only updatable by the OAuth application that owns the session.
226    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
227    pub external_link: MaybeUndefined<String>,
228    /// URLs of external resources associated with this session. Replaces existing URLs. Only updatable by the OAuth application that owns the session. If supplied, addedExternalUrls and removedExternalUrls are ignored.
229    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
230    pub external_urls: MaybeUndefined<Vec<AgentSessionExternalUrlInput>>,
231    /// URLs of external resources to be added to this session. Only updatable by the OAuth application that owns the session.
232    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
233    pub added_external_urls: MaybeUndefined<Vec<AgentSessionExternalUrlInput>>,
234    /// URLs to be removed from this session. Only updatable by the OAuth application that owns the session.
235    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
236    pub removed_external_urls: MaybeUndefined<Vec<String>>,
237    /// A dynamically updated list of the agent's execution strategy. Only updatable by the OAuth application that owns the session.
238    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
239    pub plan: MaybeUndefined<serde_json::Value>,
240    /// `Internal` The time at which the agent session was dismissed. Set to null to un-dismiss. Only updatable by internal clients.
241    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
242    pub dismissed_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
243    /// `Internal` User-specific state for the agent session. Only updatable by internal clients.
244    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
245    pub user_state: MaybeUndefined<Vec<AgentSessionUserStateInput>>,
246}
247#[derive(Debug, Clone, Default, Serialize, Deserialize)]
248#[serde(rename_all = "camelCase")]
249pub struct AgentSessionUserStateInput {
250    /// The ID of the user this state belongs to.
251    pub user_id: String,
252    /// The time at which the user most recently viewed the session.
253    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
254    pub last_read_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
255}
256/// `Internal` AI prompt progress filtering options.
257#[derive(Debug, Clone, Default, Serialize, Deserialize)]
258#[serde(rename_all = "camelCase")]
259pub struct AiPromptProgressFilter {
260    /// Comparator for the identifier.
261    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
262    pub id: MaybeUndefined<IDComparator>,
263    /// Comparator for the created at date.
264    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
265    pub created_at: MaybeUndefined<DateComparator>,
266    /// Comparator for the updated at date.
267    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
268    pub updated_at: MaybeUndefined<DateComparator>,
269    /// `Internal` Comparator for the AI prompt workflow type.
270    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
271    pub r#type: MaybeUndefined<AiPromptTypeComparator>,
272    /// `Internal` Comparator for the AI prompt workflow status.
273    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
274    pub status: MaybeUndefined<AiPromptProgressStatusComparator>,
275    /// `Internal` Compound filters, all of which need to be matched by the AI prompt progress.
276    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
277    pub and: MaybeUndefined<Vec<AiPromptProgressFilter>>,
278    /// `Internal` Compound filters, one of which need to be matched by the AI prompt progress.
279    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
280    pub or: MaybeUndefined<Vec<AiPromptProgressFilter>>,
281}
282/// `Internal` Comparator for the AI prompt workflow status.
283#[derive(Debug, Clone, Default, Serialize, Deserialize)]
284#[serde(rename_all = "camelCase")]
285pub struct AiPromptProgressStatusComparator {
286    /// Equals constraint.
287    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
288    pub eq: MaybeUndefined<AiPromptProgressStatus>,
289    /// Not-equals constraint.
290    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
291    pub neq: MaybeUndefined<AiPromptProgressStatus>,
292    /// In-array constraint.
293    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
294    pub r#in: MaybeUndefined<Vec<AiPromptProgressStatus>>,
295    /// Not-in-array constraint.
296    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
297    pub nin: MaybeUndefined<Vec<AiPromptProgressStatus>>,
298    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
299    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
300    pub null: MaybeUndefined<bool>,
301}
302/// `Internal` Filter for AI prompt progress subscription events.
303#[derive(Debug, Clone, Default, Serialize, Deserialize)]
304#[serde(rename_all = "camelCase")]
305pub struct AiPromptProgressSubscriptionFilter {
306    /// `Internal` Filter by issue ID.
307    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
308    pub issue_id: MaybeUndefined<IDComparator>,
309    /// `Internal` Filter by comment ID.
310    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
311    pub comment_id: MaybeUndefined<IDComparator>,
312    /// `Internal` Filter by pull request comment ID.
313    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
314    pub pull_request_comment_id: MaybeUndefined<IDComparator>,
315    /// `Internal` Filter by prompt workflow type.
316    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
317    pub r#type: MaybeUndefined<AiPromptTypeComparator>,
318    /// `Internal` Filter by prompt workflow status.
319    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
320    pub status: MaybeUndefined<AiPromptProgressStatusComparator>,
321}
322/// `Internal` Comparator for the AI prompt workflow type.
323#[derive(Debug, Clone, Default, Serialize, Deserialize)]
324#[serde(rename_all = "camelCase")]
325pub struct AiPromptTypeComparator {
326    /// Equals constraint.
327    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
328    pub eq: MaybeUndefined<AiPromptType>,
329    /// Not-equals constraint.
330    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
331    pub neq: MaybeUndefined<AiPromptType>,
332    /// In-array constraint.
333    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
334    pub r#in: MaybeUndefined<Vec<AiPromptType>>,
335    /// Not-in-array constraint.
336    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
337    pub nin: MaybeUndefined<Vec<AiPromptType>>,
338    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
339    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
340    pub null: MaybeUndefined<bool>,
341}
342#[derive(Debug, Clone, Default, Serialize, Deserialize)]
343#[serde(rename_all = "camelCase")]
344pub struct AirbyteConfigurationInput {
345    /// Linear export API key.
346    pub api_key: String,
347}
348/// Customer approximate need count sorting options.
349#[derive(Debug, Clone, Default, Serialize, Deserialize)]
350#[serde(rename_all = "camelCase")]
351pub struct ApproximateNeedCountSort {
352    /// Whether nulls should be sorted first or last
353    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
354    pub nulls: MaybeUndefined<PaginationNulls>,
355    /// The order for the individual sort
356    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
357    pub order: MaybeUndefined<PaginationSortOrder>,
358}
359/// Issue assignee sorting options.
360#[derive(Debug, Clone, Default, Serialize, Deserialize)]
361#[serde(rename_all = "camelCase")]
362pub struct AssigneeSort {
363    /// Whether nulls should be sorted first or last
364    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
365    pub nulls: MaybeUndefined<PaginationNulls>,
366    /// The order for the individual sort
367    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
368    pub order: MaybeUndefined<PaginationSortOrder>,
369}
370/// Attachment collection filtering options.
371#[derive(Debug, Clone, Default, Serialize, Deserialize)]
372#[serde(rename_all = "camelCase")]
373pub struct AttachmentCollectionFilter {
374    /// Comparator for the identifier.
375    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
376    pub id: MaybeUndefined<IDComparator>,
377    /// Comparator for the created at date.
378    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
379    pub created_at: MaybeUndefined<DateComparator>,
380    /// Comparator for the updated at date.
381    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
382    pub updated_at: MaybeUndefined<DateComparator>,
383    /// Comparator for the title.
384    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
385    pub title: MaybeUndefined<StringComparator>,
386    /// Comparator for the subtitle.
387    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
388    pub subtitle: MaybeUndefined<NullableStringComparator>,
389    /// Comparator for the url.
390    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
391    pub url: MaybeUndefined<StringComparator>,
392    /// Filters that the attachments creator must satisfy.
393    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
394    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
395    /// Comparator for the source type.
396    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
397    pub source_type: MaybeUndefined<SourceTypeComparator>,
398    /// Compound filters, all of which need to be matched by the attachment.
399    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
400    pub and: MaybeUndefined<Vec<AttachmentCollectionFilter>>,
401    /// Compound filters, one of which need to be matched by the attachment.
402    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
403    pub or: MaybeUndefined<Vec<AttachmentCollectionFilter>>,
404    /// Filters that needs to be matched by some attachments.
405    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
406    pub some: MaybeUndefined<Box<AttachmentFilter>>,
407    /// Filters that needs to be matched by all attachments.
408    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
409    pub every: MaybeUndefined<Box<AttachmentFilter>>,
410    /// Comparator for the collection length.
411    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
412    pub length: MaybeUndefined<NumberComparator>,
413}
414/// Input for creating a new issue attachment.
415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
416#[serde(rename_all = "camelCase")]
417pub struct AttachmentCreateInput {
418    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
419    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
420    pub id: MaybeUndefined<String>,
421    /// The attachment title.
422    pub title: String,
423    /// The attachment subtitle.
424    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
425    pub subtitle: MaybeUndefined<String>,
426    /// Attachment location which is also used as an unique identifier for the attachment. If another attachment is created with the same `url` value, existing record is updated instead.
427    pub url: String,
428    /// The issue to associate the attachment with. Can be a UUID or issue identifier (e.g., 'LIN-123').
429    pub issue_id: String,
430    /// An icon url to display with the attachment. Should be of jpg or png format. Maximum of 1MB in size. Dimensions should be 20x20px for optimal display quality.
431    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
432    pub icon_url: MaybeUndefined<String>,
433    /// Attachment metadata object with string and number values.
434    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
435    pub metadata: MaybeUndefined<serde_json::Value>,
436    /// Indicates if attachments for the same source application should be grouped in the Linear UI.
437    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
438    pub group_by_source: MaybeUndefined<bool>,
439    /// Create a linked comment with markdown body.
440    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
441    pub comment_body: MaybeUndefined<String>,
442    /// `Internal` Create a linked comment with Prosemirror body. Please use `commentBody` instead.
443    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
444    pub comment_body_data: MaybeUndefined<serde_json::Value>,
445    /// Create attachment as a user with the provided name. This option is only available to OAuth applications creating attachments in `actor=application` mode.
446    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
447    pub create_as_user: MaybeUndefined<String>,
448}
449/// Attachment filtering options.
450#[derive(Debug, Clone, Default, Serialize, Deserialize)]
451#[serde(rename_all = "camelCase")]
452pub struct AttachmentFilter {
453    /// Comparator for the identifier.
454    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
455    pub id: MaybeUndefined<IDComparator>,
456    /// Comparator for the created at date.
457    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
458    pub created_at: MaybeUndefined<DateComparator>,
459    /// Comparator for the updated at date.
460    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
461    pub updated_at: MaybeUndefined<DateComparator>,
462    /// Comparator for the title.
463    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
464    pub title: MaybeUndefined<StringComparator>,
465    /// Comparator for the subtitle.
466    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
467    pub subtitle: MaybeUndefined<NullableStringComparator>,
468    /// Comparator for the url.
469    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
470    pub url: MaybeUndefined<StringComparator>,
471    /// Filters that the attachments creator must satisfy.
472    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
473    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
474    /// Comparator for the source type.
475    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
476    pub source_type: MaybeUndefined<SourceTypeComparator>,
477    /// Compound filters, all of which need to be matched by the attachment.
478    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
479    pub and: MaybeUndefined<Vec<AttachmentFilter>>,
480    /// Compound filters, one of which need to be matched by the attachment.
481    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
482    pub or: MaybeUndefined<Vec<AttachmentFilter>>,
483}
484/// Input for updating an existing issue attachment.
485#[derive(Debug, Clone, Default, Serialize, Deserialize)]
486#[serde(rename_all = "camelCase")]
487pub struct AttachmentUpdateInput {
488    /// The attachment title.
489    pub title: String,
490    /// The attachment subtitle.
491    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
492    pub subtitle: MaybeUndefined<String>,
493    /// Attachment metadata object with string and number values.
494    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
495    pub metadata: MaybeUndefined<serde_json::Value>,
496    /// An icon url to display with the attachment. Should be of jpg or png format. Maximum of 1MB in size. Dimensions should be 20x20px for optimal display quality.
497    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
498    pub icon_url: MaybeUndefined<String>,
499}
500/// Audit entry filtering options.
501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
502#[serde(rename_all = "camelCase")]
503pub struct AuditEntryFilter {
504    /// Comparator for the identifier.
505    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
506    pub id: MaybeUndefined<IDComparator>,
507    /// Comparator for the created at date.
508    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
509    pub created_at: MaybeUndefined<DateComparator>,
510    /// Comparator for the updated at date.
511    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
512    pub updated_at: MaybeUndefined<DateComparator>,
513    /// Comparator for the type.
514    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
515    pub r#type: MaybeUndefined<StringComparator>,
516    /// Comparator for the IP address.
517    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
518    pub ip: MaybeUndefined<StringComparator>,
519    /// Comparator for the country code.
520    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
521    pub country_code: MaybeUndefined<StringComparator>,
522    /// Filters that the audit entry actor must satisfy.
523    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
524    pub actor: MaybeUndefined<NullableUserFilter>,
525    /// Compound filters, all of which need to be matched by the issue.
526    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
527    pub and: MaybeUndefined<Vec<AuditEntryFilter>>,
528    /// Compound filters, one of which need to be matched by the issue.
529    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
530    pub or: MaybeUndefined<Vec<AuditEntryFilter>>,
531}
532/// Comparator for booleans.
533#[derive(Debug, Clone, Default, Serialize, Deserialize)]
534#[serde(rename_all = "camelCase")]
535pub struct BooleanComparator {
536    /// Equals constraint.
537    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
538    pub eq: MaybeUndefined<bool>,
539    /// Not equals constraint.
540    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
541    pub neq: MaybeUndefined<bool>,
542}
543/// A candidate code repository to consider when generating repository suggestions for an issue.
544#[derive(Debug, Clone, Default, Serialize, Deserialize)]
545#[serde(rename_all = "camelCase")]
546pub struct CandidateRepository {
547    /// The full name of the repository in owner/name format (e.g., 'acme/backend').
548    pub repository_full_name: String,
549    /// Hostname of the Git service (e.g., 'github.com', 'github.company.com').
550    pub hostname: String,
551}
552/// Comment filtering options.
553#[derive(Debug, Clone, Default, Serialize, Deserialize)]
554#[serde(rename_all = "camelCase")]
555pub struct CommentCollectionFilter {
556    /// Comparator for the identifier.
557    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
558    pub id: MaybeUndefined<IDComparator>,
559    /// Comparator for the created at date.
560    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
561    pub created_at: MaybeUndefined<DateComparator>,
562    /// Comparator for the updated at date.
563    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
564    pub updated_at: MaybeUndefined<DateComparator>,
565    /// Comparator for the comment's body.
566    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
567    pub body: MaybeUndefined<StringComparator>,
568    /// Filters that the comment's creator must satisfy.
569    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
570    pub user: MaybeUndefined<Box<UserFilter>>,
571    /// Filters that the comment's issue must satisfy.
572    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
573    pub issue: MaybeUndefined<Box<NullableIssueFilter>>,
574    /// Filters that the comment's project update must satisfy.
575    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
576    pub project_update: MaybeUndefined<Box<NullableProjectUpdateFilter>>,
577    /// Filters that the comment parent must satisfy.
578    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
579    pub parent: MaybeUndefined<Box<NullableCommentFilter>>,
580    /// Filters that the comment's document content must satisfy.
581    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
582    pub document_content: MaybeUndefined<Box<NullableDocumentContentFilter>>,
583    /// `Internal` Filters that the comment's project must satisfy.
584    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
585    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
586    /// `Internal` Filters that the comment's initiative must satisfy.
587    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
588    pub initiative: MaybeUndefined<Box<NullableInitiativeFilter>>,
589    /// Filters that the comment's reactions must satisfy.
590    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
591    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
592    /// Filters that the comment's customer needs must satisfy.
593    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
594    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
595    /// Compound filters, all of which need to be matched by the comment.
596    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
597    pub and: MaybeUndefined<Vec<CommentCollectionFilter>>,
598    /// Compound filters, one of which need to be matched by the comment.
599    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
600    pub or: MaybeUndefined<Vec<CommentCollectionFilter>>,
601    /// Filters that needs to be matched by some comments.
602    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
603    pub some: MaybeUndefined<Box<CommentFilter>>,
604    /// Filters that needs to be matched by all comments.
605    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
606    pub every: MaybeUndefined<Box<CommentFilter>>,
607    /// Comparator for the collection length.
608    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
609    pub length: MaybeUndefined<NumberComparator>,
610}
611/// Input for creating a new comment.
612#[derive(Debug, Clone, Default, Serialize, Deserialize)]
613#[serde(rename_all = "camelCase")]
614pub struct CommentCreateInput {
615    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
616    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
617    pub id: MaybeUndefined<String>,
618    /// The comment content in markdown format.
619    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
620    pub body: MaybeUndefined<String>,
621    /// `Internal` The comment content as a Prosemirror document.
622    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
623    pub body_data: MaybeUndefined<serde_json::Value>,
624    /// The issue to associate the comment with. Can be a UUID or issue identifier (e.g., 'LIN-123').
625    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
626    pub issue_id: MaybeUndefined<String>,
627    /// The project update to associate the comment with.
628    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
629    pub project_update_id: MaybeUndefined<String>,
630    /// The initiative update to associate the comment with.
631    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
632    pub initiative_update_id: MaybeUndefined<String>,
633    /// The post to associate the comment with.
634    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
635    pub post_id: MaybeUndefined<String>,
636    /// The document content to associate the comment with.
637    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
638    pub document_content_id: MaybeUndefined<String>,
639    /// `Internal` The project to associate the comment with.
640    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
641    pub project_id: MaybeUndefined<String>,
642    /// `Internal` The initiative to associate the comment with.
643    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
644    pub initiative_id: MaybeUndefined<String>,
645    /// The parent comment under which to nest a current comment.
646    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
647    pub parent_id: MaybeUndefined<String>,
648    /// Create comment as a user with the provided name. This option is only available to OAuth applications creating comments in `actor=app` mode.
649    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
650    pub create_as_user: MaybeUndefined<String>,
651    /// Provide an external user avatar URL. Can only be used in conjunction with the `createAsUser` options. This option is only available to OAuth applications creating comments in `actor=app` mode.
652    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
653    pub display_icon_url: MaybeUndefined<String>,
654    /// The time at which the comment was created (e.g. if importing from another system). Must be a time in the past. If none is provided, the backend will generate the time as now.
655    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
656    pub created_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
657    /// Flag to prevent auto subscription to the issue the comment is created on.
658    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
659    pub do_not_subscribe_to_issue: MaybeUndefined<bool>,
660    /// Flag to indicate this comment should be created on the issue's synced Slack comment thread. If no synced Slack comment thread exists, the mutation will fail. If there are multiple synced Slack threads on the issue, the oldest one will be targeted.
661    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
662    pub create_on_synced_slack_thread: MaybeUndefined<bool>,
663    /// The text that this comment references. Only defined for inline comments.
664    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
665    pub quoted_text: MaybeUndefined<String>,
666    /// `INTERNAL` The identifiers of the users subscribing to this comment thread.
667    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
668    pub subscriber_ids: MaybeUndefined<Vec<String>>,
669}
670/// Comment filtering options.
671#[derive(Debug, Clone, Default, Serialize, Deserialize)]
672#[serde(rename_all = "camelCase")]
673pub struct CommentFilter {
674    /// Comparator for the identifier.
675    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
676    pub id: MaybeUndefined<IDComparator>,
677    /// Comparator for the created at date.
678    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
679    pub created_at: MaybeUndefined<DateComparator>,
680    /// Comparator for the updated at date.
681    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
682    pub updated_at: MaybeUndefined<DateComparator>,
683    /// Comparator for the comment's body.
684    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
685    pub body: MaybeUndefined<StringComparator>,
686    /// Filters that the comment's creator must satisfy.
687    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
688    pub user: MaybeUndefined<Box<UserFilter>>,
689    /// Filters that the comment's issue must satisfy.
690    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
691    pub issue: MaybeUndefined<Box<NullableIssueFilter>>,
692    /// Filters that the comment's project update must satisfy.
693    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
694    pub project_update: MaybeUndefined<Box<NullableProjectUpdateFilter>>,
695    /// Filters that the comment parent must satisfy.
696    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
697    pub parent: MaybeUndefined<Box<NullableCommentFilter>>,
698    /// Filters that the comment's document content must satisfy.
699    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
700    pub document_content: MaybeUndefined<Box<NullableDocumentContentFilter>>,
701    /// `Internal` Filters that the comment's project must satisfy.
702    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
703    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
704    /// `Internal` Filters that the comment's initiative must satisfy.
705    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
706    pub initiative: MaybeUndefined<Box<NullableInitiativeFilter>>,
707    /// Filters that the comment's reactions must satisfy.
708    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
709    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
710    /// Filters that the comment's customer needs must satisfy.
711    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
712    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
713    /// Compound filters, all of which need to be matched by the comment.
714    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
715    pub and: MaybeUndefined<Vec<CommentFilter>>,
716    /// Compound filters, one of which need to be matched by the comment.
717    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
718    pub or: MaybeUndefined<Vec<CommentFilter>>,
719}
720/// Input for updating an existing comment.
721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
722#[serde(rename_all = "camelCase")]
723pub struct CommentUpdateInput {
724    /// The comment content.
725    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
726    pub body: MaybeUndefined<String>,
727    /// `Internal` The comment content as a Prosemirror document.
728    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
729    pub body_data: MaybeUndefined<serde_json::Value>,
730    /// `INTERNAL` The user who resolved this thread.
731    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
732    pub resolving_user_id: MaybeUndefined<String>,
733    /// `INTERNAL` The child comment that resolves this thread.
734    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
735    pub resolving_comment_id: MaybeUndefined<String>,
736    /// The text that this comment references. Only defined for inline comments.
737    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
738    pub quoted_text: MaybeUndefined<String>,
739    /// `INTERNAL` The identifiers of the users subscribing to this comment.
740    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
741    pub subscriber_ids: MaybeUndefined<Vec<String>>,
742    /// `INTERNAL` Flag to prevent auto subscription to the issue the comment is updated on.
743    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
744    pub do_not_subscribe_to_issue: MaybeUndefined<bool>,
745}
746/// Issue completion date sorting options.
747#[derive(Debug, Clone, Default, Serialize, Deserialize)]
748#[serde(rename_all = "camelCase")]
749pub struct CompletedAtSort {
750    /// Whether nulls should be sorted first or last
751    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
752    pub nulls: MaybeUndefined<PaginationNulls>,
753    /// The order for the individual sort
754    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
755    pub order: MaybeUndefined<PaginationSortOrder>,
756}
757/// Input for submitting a support contact message from an authenticated user.
758#[derive(Debug, Clone, Default, Serialize, Deserialize)]
759#[serde(rename_all = "camelCase")]
760pub struct ContactCreateInput {
761    /// The type of support contact (e.g., bug report, feature request, general feedback).
762    pub r#type: String,
763    /// The feedback or support message submitted by the user.
764    pub message: String,
765    /// The user's operating system name and version (e.g., 'macOS 14.0').
766    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
767    pub operating_system: MaybeUndefined<String>,
768    /// The user's browser name and version (e.g., 'Chrome 120').
769    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
770    pub browser: MaybeUndefined<String>,
771    /// The user's device type or model information.
772    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
773    pub device: MaybeUndefined<String>,
774    /// The version of the Linear client application the user is running.
775    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
776    pub client_version: MaybeUndefined<String>,
777    /// How disappointed the user would be if they could no longer use Linear. Scale: 0 = not disappointed, 1 = somewhat disappointed, 2 = very disappointed, 3 = extremely disappointed.
778    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
779    pub disappointment_rating: MaybeUndefined<i64>,
780}
781/// `INTERNAL` Input for submitting a sales or pricing inquiry to the Linear sales team. Small companies are routed to Intercom support, while larger companies are routed to HubSpot.
782#[derive(Debug, Clone, Default, Serialize, Deserialize)]
783#[serde(rename_all = "camelCase")]
784pub struct ContactSalesCreateInput {
785    /// Full name of the person submitting the sales inquiry.
786    pub name: String,
787    /// Work email address of the person submitting the sales inquiry.
788    pub email: String,
789    /// The size of the inquiring company (e.g., '1-19', '20-99', '100-499'). Used to route the inquiry to the appropriate sales channel.
790    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
791    pub company_size: MaybeUndefined<String>,
792    /// An optional message from the user describing their needs or questions.
793    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
794    pub message: MaybeUndefined<String>,
795    /// The page URL from which the sales inquiry was submitted, for attribution tracking.
796    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
797    pub url: MaybeUndefined<String>,
798    /// PostHog distinct ID for correlating this inquiry with anonymous analytics events.
799    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
800    pub distinct_id: MaybeUndefined<String>,
801    /// PostHog session ID for correlating this inquiry with the user's browsing session.
802    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
803    pub session_id: MaybeUndefined<String>,
804}
805/// `Internal` Comparator for content.
806#[derive(Debug, Clone, Default, Serialize, Deserialize)]
807#[serde(rename_all = "camelCase")]
808pub struct ContentComparator {
809    /// `Internal` Contains constraint.
810    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
811    pub contains: MaybeUndefined<String>,
812    /// `Internal` Not-contains constraint.
813    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
814    pub not_contains: MaybeUndefined<String>,
815}
816#[derive(Debug, Clone, Default, Serialize, Deserialize)]
817#[serde(rename_all = "camelCase")]
818pub struct CreateOrganizationInput {
819    /// The name of the organization.
820    pub name: String,
821    /// The URL key of the organization.
822    pub url_key: String,
823    /// Whether the organization should allow email domain access.
824    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
825    pub domain_access: MaybeUndefined<bool>,
826    /// The timezone of the organization, passed in by client.
827    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
828    pub timezone: MaybeUndefined<String>,
829    /// JSON serialized UTM parameters associated with the creation of the workspace.
830    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
831    pub utm: MaybeUndefined<String>,
832}
833/// Issue creation date sorting options.
834#[derive(Debug, Clone, Default, Serialize, Deserialize)]
835#[serde(rename_all = "camelCase")]
836pub struct CreatedAtSort {
837    /// Whether nulls should be sorted first or last
838    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
839    pub nulls: MaybeUndefined<PaginationNulls>,
840    /// The order for the individual sort
841    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
842    pub order: MaybeUndefined<PaginationSortOrder>,
843}
844/// Input for creating a new custom view. A name is required. Optionally scope the view to a team, project, or initiative.
845#[derive(Debug, Clone, Default, Serialize, Deserialize)]
846#[serde(rename_all = "camelCase")]
847pub struct CustomViewCreateInput {
848    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
849    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
850    pub id: MaybeUndefined<String>,
851    /// The name of the custom view.
852    pub name: String,
853    /// The description of the custom view.
854    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
855    pub description: MaybeUndefined<String>,
856    /// The icon of the custom view.
857    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
858    pub icon: MaybeUndefined<String>,
859    /// The color of the icon of the custom view.
860    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
861    pub color: MaybeUndefined<String>,
862    /// The id of the team associated with the custom view.
863    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
864    pub team_id: MaybeUndefined<String>,
865    /// The id of the project associated with the custom view.
866    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
867    pub project_id: MaybeUndefined<String>,
868    /// The id of the initiative associated with the custom view.
869    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
870    pub initiative_id: MaybeUndefined<String>,
871    /// The owner of the custom view.
872    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
873    pub owner_id: MaybeUndefined<String>,
874    /// The filter applied to issues in the custom view.
875    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
876    pub filter_data: MaybeUndefined<IssueFilter>,
877    /// The project filter applied to issues in the custom view.
878    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
879    pub project_filter_data: MaybeUndefined<ProjectFilter>,
880    /// `ALPHA` The initiative filter applied to issues in the custom view.
881    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
882    pub initiative_filter_data: MaybeUndefined<InitiativeFilter>,
883    /// The feed item filter applied to issues in the custom view.
884    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
885    pub feed_item_filter_data: MaybeUndefined<FeedItemFilter>,
886    /// Whether the custom view is shared with everyone in the workspace.
887    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
888    pub shared: MaybeUndefined<bool>,
889}
890/// Custom view creation date sorting options.
891#[derive(Debug, Clone, Default, Serialize, Deserialize)]
892#[serde(rename_all = "camelCase")]
893pub struct CustomViewCreatedAtSort {
894    /// Whether nulls should be sorted first or last
895    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
896    pub nulls: MaybeUndefined<PaginationNulls>,
897    /// The order for the individual sort
898    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
899    pub order: MaybeUndefined<PaginationSortOrder>,
900}
901/// Custom view filtering options.
902#[derive(Debug, Clone, Default, Serialize, Deserialize)]
903#[serde(rename_all = "camelCase")]
904pub struct CustomViewFilter {
905    /// Comparator for the identifier.
906    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
907    pub id: MaybeUndefined<IDComparator>,
908    /// Comparator for the created at date.
909    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
910    pub created_at: MaybeUndefined<DateComparator>,
911    /// Comparator for the updated at date.
912    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
913    pub updated_at: MaybeUndefined<DateComparator>,
914    /// Comparator for the custom view name.
915    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
916    pub name: MaybeUndefined<StringComparator>,
917    /// Comparator for the custom view model name.
918    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
919    pub model_name: MaybeUndefined<StringComparator>,
920    /// Filters that the custom view's team must satisfy.
921    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
922    pub team: MaybeUndefined<NullableTeamFilter>,
923    /// Filters that the custom view creator must satisfy.
924    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
925    pub creator: MaybeUndefined<UserFilter>,
926    /// Comparator for whether the custom view is shared.
927    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
928    pub shared: MaybeUndefined<BooleanComparator>,
929    /// `INTERNAL` Filter based on whether the custom view has a facet.
930    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
931    pub has_facet: MaybeUndefined<bool>,
932    /// Compound filters, all of which need to be matched by the custom view.
933    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
934    pub and: MaybeUndefined<Vec<CustomViewFilter>>,
935    /// Compound filters, one of which need to be matched by the custom view.
936    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
937    pub or: MaybeUndefined<Vec<CustomViewFilter>>,
938}
939/// Custom view name sorting options.
940#[derive(Debug, Clone, Default, Serialize, Deserialize)]
941#[serde(rename_all = "camelCase")]
942pub struct CustomViewNameSort {
943    /// Whether nulls should be sorted first or last
944    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
945    pub nulls: MaybeUndefined<PaginationNulls>,
946    /// The order for the individual sort
947    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
948    pub order: MaybeUndefined<PaginationSortOrder>,
949}
950/// Custom view shared status sorting options. Ascending order puts shared views last.
951#[derive(Debug, Clone, Default, Serialize, Deserialize)]
952#[serde(rename_all = "camelCase")]
953pub struct CustomViewSharedSort {
954    /// Whether nulls should be sorted first or last
955    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
956    pub nulls: MaybeUndefined<PaginationNulls>,
957    /// The order for the individual sort
958    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
959    pub order: MaybeUndefined<PaginationSortOrder>,
960}
961#[derive(Debug, Clone, Default, Serialize, Deserialize)]
962#[serde(rename_all = "camelCase")]
963pub struct CustomViewSortInput {
964    /// Sort by custom view name.
965    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
966    pub name: MaybeUndefined<CustomViewNameSort>,
967    /// Sort by custom view creation date.
968    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
969    pub created_at: MaybeUndefined<CustomViewCreatedAtSort>,
970    /// Sort by custom view shared status.
971    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
972    pub shared: MaybeUndefined<CustomViewSharedSort>,
973    /// Sort by custom view update date.
974    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
975    pub updated_at: MaybeUndefined<CustomViewUpdatedAtSort>,
976}
977/// Input for updating an existing custom view. All fields are optional; only provided fields will be updated.
978#[derive(Debug, Clone, Default, Serialize, Deserialize)]
979#[serde(rename_all = "camelCase")]
980pub struct CustomViewUpdateInput {
981    /// The name of the custom view.
982    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
983    pub name: MaybeUndefined<String>,
984    /// The description of the custom view.
985    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
986    pub description: MaybeUndefined<String>,
987    /// The icon of the custom view.
988    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
989    pub icon: MaybeUndefined<String>,
990    /// The color of the icon of the custom view.
991    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
992    pub color: MaybeUndefined<String>,
993    /// The id of the team associated with the custom view.
994    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
995    pub team_id: MaybeUndefined<String>,
996    /// `Internal` The id of the project associated with the custom view.
997    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
998    pub project_id: MaybeUndefined<String>,
999    /// `Internal` The id of the initiative associated with the custom view.
1000    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1001    pub initiative_id: MaybeUndefined<String>,
1002    /// The owner of the custom view.
1003    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1004    pub owner_id: MaybeUndefined<String>,
1005    /// The filter applied to issues in the custom view.
1006    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1007    pub filter_data: MaybeUndefined<IssueFilter>,
1008    /// The project filter applied to issues in the custom view.
1009    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1010    pub project_filter_data: MaybeUndefined<ProjectFilter>,
1011    /// `ALPHA` The initiative filter applied to issues in the custom view.
1012    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1013    pub initiative_filter_data: MaybeUndefined<InitiativeFilter>,
1014    /// The feed item filter applied to issues in the custom view.
1015    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1016    pub feed_item_filter_data: MaybeUndefined<FeedItemFilter>,
1017    /// Whether the custom view is shared with everyone in the workspace.
1018    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1019    pub shared: MaybeUndefined<bool>,
1020}
1021/// Custom view update date sorting options.
1022#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1023#[serde(rename_all = "camelCase")]
1024pub struct CustomViewUpdatedAtSort {
1025    /// Whether nulls should be sorted first or last
1026    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1027    pub nulls: MaybeUndefined<PaginationNulls>,
1028    /// The order for the individual sort
1029    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1030    pub order: MaybeUndefined<PaginationSortOrder>,
1031}
1032/// Issue customer count sorting options.
1033#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1034#[serde(rename_all = "camelCase")]
1035pub struct CustomerCountSort {
1036    /// Whether nulls should be sorted first or last
1037    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1038    pub nulls: MaybeUndefined<PaginationNulls>,
1039    /// The order for the individual sort
1040    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1041    pub order: MaybeUndefined<PaginationSortOrder>,
1042}
1043/// Input for creating a new customer in the workspace.
1044#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1045#[serde(rename_all = "camelCase")]
1046pub struct CustomerCreateInput {
1047    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1048    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1049    pub id: MaybeUndefined<String>,
1050    /// The display name of the customer organization.
1051    pub name: String,
1052    /// The email domains associated with this customer (e.g., 'acme.com'). Public email domains are not allowed. Defaults to an empty array.
1053    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1054    pub domains: MaybeUndefined<Vec<String>>,
1055    /// Identifiers for this customer in external systems (e.g., CRM IDs). Defaults to an empty array.
1056    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1057    pub external_ids: MaybeUndefined<Vec<String>>,
1058    /// The ID of the Slack channel to link to this customer.
1059    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1060    pub slack_channel_id: MaybeUndefined<String>,
1061    /// The identifier of the user to assign as the owner of the customer.
1062    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1063    pub owner_id: MaybeUndefined<String>,
1064    /// The identifier of the customer status to set.
1065    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1066    pub status_id: MaybeUndefined<String>,
1067    /// The annual revenue generated by the customer, in dollars.
1068    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1069    pub revenue: MaybeUndefined<i64>,
1070    /// The size of the customer organization (e.g., number of employees).
1071    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1072    pub size: MaybeUndefined<i64>,
1073    /// The identifier of the customer tier to assign.
1074    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1075    pub tier_id: MaybeUndefined<String>,
1076    /// The URL of the customer's logo image.
1077    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1078    pub logo_url: MaybeUndefined<String>,
1079    /// The primary external source ID for customers with multiple sources. Must be one of the values provided in externalIds.
1080    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1081    pub main_source_id: MaybeUndefined<String>,
1082}
1083/// Customer creation date sorting options.
1084#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1085#[serde(rename_all = "camelCase")]
1086pub struct CustomerCreatedAtSort {
1087    /// Whether nulls should be sorted first or last
1088    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1089    pub nulls: MaybeUndefined<PaginationNulls>,
1090    /// The order for the individual sort
1091    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1092    pub order: MaybeUndefined<PaginationSortOrder>,
1093}
1094/// Customer filtering options.
1095#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1096#[serde(rename_all = "camelCase")]
1097pub struct CustomerFilter {
1098    /// Comparator for the identifier.
1099    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1100    pub id: MaybeUndefined<IDComparator>,
1101    /// Comparator for the created at date.
1102    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1103    pub created_at: MaybeUndefined<DateComparator>,
1104    /// Comparator for the updated at date.
1105    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1106    pub updated_at: MaybeUndefined<DateComparator>,
1107    /// Comparator for the customer name.
1108    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1109    pub name: MaybeUndefined<StringComparator>,
1110    /// Comparator for the customer slack channel ID.
1111    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1112    pub slack_channel_id: MaybeUndefined<StringComparator>,
1113    /// Comparator for the customer's domains.
1114    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1115    pub domains: MaybeUndefined<StringArrayComparator>,
1116    /// Comparator for the customer's external IDs.
1117    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1118    pub external_ids: MaybeUndefined<StringArrayComparator>,
1119    /// Filters that the customer owner must satisfy.
1120    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1121    pub owner: MaybeUndefined<NullableUserFilter>,
1122    /// Filters that the customer's needs must satisfy.
1123    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1124    pub needs: MaybeUndefined<CustomerNeedCollectionFilter>,
1125    /// Comparator for the customer generated revenue.
1126    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1127    pub revenue: MaybeUndefined<NumberComparator>,
1128    /// Comparator for the customer size.
1129    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1130    pub size: MaybeUndefined<NumberComparator>,
1131    /// Filters that the customer's status must satisfy.
1132    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1133    pub status: MaybeUndefined<CustomerStatusFilter>,
1134    /// Filters that the customer's tier must satisfy.
1135    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1136    pub tier: MaybeUndefined<CustomerTierFilter>,
1137    /// Compound filters, all of which need to be matched by the customer.
1138    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1139    pub and: MaybeUndefined<Vec<CustomerFilter>>,
1140    /// Compound filters, one of which need to be matched by the customer.
1141    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1142    pub or: MaybeUndefined<Vec<CustomerFilter>>,
1143}
1144/// Issue customer important count sorting options.
1145#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1146#[serde(rename_all = "camelCase")]
1147pub struct CustomerImportantCountSort {
1148    /// Whether nulls should be sorted first or last
1149    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1150    pub nulls: MaybeUndefined<PaginationNulls>,
1151    /// The order for the individual sort
1152    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1153    pub order: MaybeUndefined<PaginationSortOrder>,
1154}
1155/// Customer needs filtering options.
1156#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1157#[serde(rename_all = "camelCase")]
1158pub struct CustomerNeedCollectionFilter {
1159    /// Comparator for the identifier.
1160    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1161    pub id: MaybeUndefined<IDComparator>,
1162    /// Comparator for the created at date.
1163    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1164    pub created_at: MaybeUndefined<DateComparator>,
1165    /// Comparator for the updated at date.
1166    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1167    pub updated_at: MaybeUndefined<DateComparator>,
1168    /// Comparator for the customer need priority.
1169    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1170    pub priority: MaybeUndefined<NumberComparator>,
1171    /// Filters that the need's project must satisfy.
1172    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1173    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
1174    /// Filters that the need's issue must satisfy.
1175    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1176    pub issue: MaybeUndefined<Box<NullableIssueFilter>>,
1177    /// Filters that the need's comment must satisfy.
1178    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1179    pub comment: MaybeUndefined<Box<NullableCommentFilter>>,
1180    /// Filters that the need's customer must satisfy.
1181    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1182    pub customer: MaybeUndefined<Box<NullableCustomerFilter>>,
1183    /// Compound filters, all of which need to be matched by the customer needs.
1184    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1185    pub and: MaybeUndefined<Vec<CustomerNeedCollectionFilter>>,
1186    /// Compound filters, one of which need to be matched by the customer needs.
1187    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1188    pub or: MaybeUndefined<Vec<CustomerNeedCollectionFilter>>,
1189    /// Filters that needs to be matched by some customer needs.
1190    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1191    pub some: MaybeUndefined<Box<CustomerNeedFilter>>,
1192    /// Filters that needs to be matched by all customer needs.
1193    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1194    pub every: MaybeUndefined<Box<CustomerNeedFilter>>,
1195    /// Comparator for the collection length.
1196    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1197    pub length: MaybeUndefined<NumberComparator>,
1198}
1199/// Input for creating a customer need from an existing issue attachment. If the attachment already has an archived need, it will be unarchived instead.
1200#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1201#[serde(rename_all = "camelCase")]
1202pub struct CustomerNeedCreateFromAttachmentInput {
1203    /// The UUID of the existing issue attachment to create a customer need from.
1204    pub attachment_id: String,
1205}
1206/// Input for creating a customer need linked to an issue or project. Either issueId or projectId must be provided.
1207#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1208#[serde(rename_all = "camelCase")]
1209pub struct CustomerNeedCreateInput {
1210    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1211    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1212    pub id: MaybeUndefined<String>,
1213    /// The UUID of the customer this need belongs to. Cannot be used together with customerExternalId.
1214    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1215    pub customer_id: MaybeUndefined<String>,
1216    /// The external system ID of the customer this need belongs to. Cannot be used together with customerId.
1217    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1218    pub customer_external_id: MaybeUndefined<String>,
1219    /// The issue to link this need to. Accepts a UUID or issue identifier (e.g., 'LIN-123'). Either issueId or projectId must be provided.
1220    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1221    pub issue_id: MaybeUndefined<String>,
1222    /// `INTERNAL` The project to link this need to. Either issueId or projectId must be provided.
1223    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1224    pub project_id: MaybeUndefined<String>,
1225    /// The UUID of an existing comment to associate with this need for additional context.
1226    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1227    pub comment_id: MaybeUndefined<String>,
1228    /// The UUID of an existing attachment to associate with this need as its source.
1229    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1230    pub attachment_id: MaybeUndefined<String>,
1231    /// Whether the customer need is important or not. 0 = Not important, 1 = Important.
1232    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1233    pub priority: MaybeUndefined<f64>,
1234    /// The body content of the need in Markdown format. Cannot be used together with bodyData.
1235    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1236    pub body: MaybeUndefined<String>,
1237    /// `Internal` The body content of the need as a Prosemirror document JSON string. Cannot be used together with body.
1238    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1239    pub body_data: MaybeUndefined<serde_json::Value>,
1240    /// A URL to create an attachment from and associate with this customer need as its source.
1241    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1242    pub attachment_url: MaybeUndefined<String>,
1243    /// Create the need attributed to an external user with the provided name. This option is only available to OAuth applications creating needs in `actor=app` mode.
1244    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1245    pub create_as_user: MaybeUndefined<String>,
1246    /// Avatar URL for the external user specified in `createAsUser`. Can only be used in conjunction with `createAsUser`. This option is only available to OAuth applications creating needs in `actor=app` mode.
1247    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1248    pub display_icon_url: MaybeUndefined<String>,
1249}
1250/// Customer filtering options.
1251#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1252#[serde(rename_all = "camelCase")]
1253pub struct CustomerNeedFilter {
1254    /// Comparator for the identifier.
1255    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1256    pub id: MaybeUndefined<IDComparator>,
1257    /// Comparator for the created at date.
1258    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1259    pub created_at: MaybeUndefined<DateComparator>,
1260    /// Comparator for the updated at date.
1261    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1262    pub updated_at: MaybeUndefined<DateComparator>,
1263    /// Comparator for the customer need priority.
1264    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1265    pub priority: MaybeUndefined<NumberComparator>,
1266    /// Filters that the need's project must satisfy.
1267    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1268    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
1269    /// Filters that the need's issue must satisfy.
1270    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1271    pub issue: MaybeUndefined<Box<NullableIssueFilter>>,
1272    /// Filters that the need's comment must satisfy.
1273    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1274    pub comment: MaybeUndefined<Box<NullableCommentFilter>>,
1275    /// Filters that the need's customer must satisfy.
1276    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1277    pub customer: MaybeUndefined<Box<NullableCustomerFilter>>,
1278    /// Compound filters, all of which need to be matched by the customer need.
1279    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1280    pub and: MaybeUndefined<Vec<CustomerNeedFilter>>,
1281    /// Compound filters, one of which need to be matched by the customer need.
1282    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1283    pub or: MaybeUndefined<Vec<CustomerNeedFilter>>,
1284}
1285/// Input for updating a customer need. Supports reassigning the customer, moving to a different issue or project, changing priority, and updating body content.
1286#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1287#[serde(rename_all = "camelCase")]
1288pub struct CustomerNeedUpdateInput {
1289    /// An optional identifier in UUID v4 format. If provided, will be set as the customer need's ID.
1290    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1291    pub id: MaybeUndefined<String>,
1292    /// The UUID of the customer to reassign this need to. Cannot be used together with customerExternalId.
1293    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1294    pub customer_id: MaybeUndefined<String>,
1295    /// The external system ID of the customer to reassign this need to. Cannot be used together with customerId.
1296    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1297    pub customer_external_id: MaybeUndefined<String>,
1298    /// The issue to move this need to. Accepts a UUID or issue identifier (e.g., 'LIN-123'). The need's attachment will also be moved to the target issue.
1299    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1300    pub issue_id: MaybeUndefined<String>,
1301    /// `INTERNAL` The project to move this need to.
1302    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1303    pub project_id: MaybeUndefined<String>,
1304    /// Whether the customer need is important or not. 0 = Not important, 1 = Important.
1305    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1306    pub priority: MaybeUndefined<f64>,
1307    /// When true and priority is also set, applies the same priority update to all other needs from the same customer on the same issue or project.
1308    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1309    pub apply_priority_to_related_needs: MaybeUndefined<bool>,
1310    /// The updated body content of the need in Markdown format. Set to null to clear the body. Cannot be used together with bodyData.
1311    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1312    pub body: MaybeUndefined<String>,
1313    /// `Internal` The updated body content of the need as a Prosemirror document JSON string. Set to null to clear the body. Cannot be used together with body.
1314    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1315    pub body_data: MaybeUndefined<serde_json::Value>,
1316    /// A URL to create a new attachment from and set as the source for this customer need. Replaces any existing manually-added attachment.
1317    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1318    pub attachment_url: MaybeUndefined<String>,
1319}
1320/// Issue customer revenue sorting options.
1321#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1322#[serde(rename_all = "camelCase")]
1323pub struct CustomerRevenueSort {
1324    /// Whether nulls should be sorted first or last
1325    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1326    pub nulls: MaybeUndefined<PaginationNulls>,
1327    /// The order for the individual sort
1328    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1329    pub order: MaybeUndefined<PaginationSortOrder>,
1330}
1331/// Issue customer sorting options.
1332#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1333#[serde(rename_all = "camelCase")]
1334pub struct CustomerSort {
1335    /// Whether nulls should be sorted first or last
1336    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1337    pub nulls: MaybeUndefined<PaginationNulls>,
1338    /// The order for the individual sort
1339    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1340    pub order: MaybeUndefined<PaginationSortOrder>,
1341}
1342/// Customer sorting options.
1343#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1344#[serde(rename_all = "camelCase")]
1345pub struct CustomerSortInput {
1346    /// Sort by name
1347    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1348    pub name: MaybeUndefined<NameSort>,
1349    /// Sort by customer creation date
1350    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1351    pub created_at: MaybeUndefined<CustomerCreatedAtSort>,
1352    /// Sort by owner name
1353    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1354    pub owner: MaybeUndefined<OwnerSort>,
1355    /// Sort by customer status
1356    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1357    pub status: MaybeUndefined<CustomerStatusSort>,
1358    /// Sort by customer generated revenue
1359    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1360    pub revenue: MaybeUndefined<RevenueSort>,
1361    /// Sort by customer size
1362    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1363    pub size: MaybeUndefined<SizeSort>,
1364    /// Sort by customer tier
1365    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1366    pub tier: MaybeUndefined<TierSort>,
1367    /// Sort by approximate customer need count
1368    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1369    pub approximate_need_count: MaybeUndefined<ApproximateNeedCountSort>,
1370}
1371/// Input for creating a customer status in the workspace's customer lifecycle flow.
1372#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1373#[serde(rename_all = "camelCase")]
1374pub struct CustomerStatusCreateInput {
1375    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1376    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1377    pub id: MaybeUndefined<String>,
1378    /// The internal name of the status. At least one of name or displayName must be provided.
1379    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1380    pub name: MaybeUndefined<String>,
1381    /// The color of the status indicator in the UI, as a HEX string (e.g., '#ff0000').
1382    pub color: String,
1383    /// An optional description explaining what this status represents.
1384    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1385    pub description: MaybeUndefined<String>,
1386    /// The sort position of the status in the workspace's customer lifecycle flow. If omitted or colliding, a position is automatically assigned at the end.
1387    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1388    pub position: MaybeUndefined<f64>,
1389    /// The user-facing display name of the status. At least one of name or displayName must be provided.
1390    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1391    pub display_name: MaybeUndefined<String>,
1392}
1393/// Customer status filtering options.
1394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1395#[serde(rename_all = "camelCase")]
1396pub struct CustomerStatusFilter {
1397    /// Comparator for the identifier.
1398    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1399    pub id: MaybeUndefined<IDComparator>,
1400    /// Comparator for the created at date.
1401    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1402    pub created_at: MaybeUndefined<DateComparator>,
1403    /// Comparator for the updated at date.
1404    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1405    pub updated_at: MaybeUndefined<DateComparator>,
1406    /// Comparator for the customer status name.
1407    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1408    pub name: MaybeUndefined<StringComparator>,
1409    /// Comparator for the customer status description.
1410    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1411    pub description: MaybeUndefined<StringComparator>,
1412    /// Comparator for the customer status position.
1413    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1414    pub position: MaybeUndefined<NumberComparator>,
1415    /// Comparator for the customer status type.
1416    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1417    pub r#type: MaybeUndefined<StringComparator>,
1418    /// Comparator for the customer status color.
1419    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1420    pub color: MaybeUndefined<StringComparator>,
1421    /// Compound filters, all of which need to be matched by the customer status.
1422    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1423    pub and: MaybeUndefined<Vec<CustomerStatusFilter>>,
1424    /// Compound filters, one of which needs to be matched by the customer status.
1425    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1426    pub or: MaybeUndefined<Vec<CustomerStatusFilter>>,
1427}
1428/// Customer status sorting options.
1429#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1430#[serde(rename_all = "camelCase")]
1431pub struct CustomerStatusSort {
1432    /// Whether nulls should be sorted first or last
1433    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1434    pub nulls: MaybeUndefined<PaginationNulls>,
1435    /// The order for the individual sort
1436    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1437    pub order: MaybeUndefined<PaginationSortOrder>,
1438}
1439/// Input for updating an existing customer status.
1440#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1441#[serde(rename_all = "camelCase")]
1442pub struct CustomerStatusUpdateInput {
1443    /// The updated internal name of the status.
1444    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1445    pub name: MaybeUndefined<String>,
1446    /// The updated color of the status indicator in the UI, as a HEX string.
1447    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1448    pub color: MaybeUndefined<String>,
1449    /// The updated description of the status.
1450    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1451    pub description: MaybeUndefined<String>,
1452    /// The updated sort position of the status in the workspace's customer lifecycle flow.
1453    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1454    pub position: MaybeUndefined<f64>,
1455    /// The updated user-facing display name of the status.
1456    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1457    pub display_name: MaybeUndefined<String>,
1458}
1459/// Input for creating a customer tier in the workspace's customer tier ordering.
1460#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1461#[serde(rename_all = "camelCase")]
1462pub struct CustomerTierCreateInput {
1463    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1464    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1465    pub id: MaybeUndefined<String>,
1466    /// The internal name of the tier. Must be unique within the workspace. At least one of name or displayName must be provided.
1467    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1468    pub name: MaybeUndefined<String>,
1469    /// The color of the tier indicator in the UI, as a HEX string (e.g., '#ff0000').
1470    pub color: String,
1471    /// An optional description explaining what this tier represents.
1472    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1473    pub description: MaybeUndefined<String>,
1474    /// The sort position of the tier in the workspace's customer tier ordering. If omitted or colliding, a position is automatically assigned at the end.
1475    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1476    pub position: MaybeUndefined<f64>,
1477    /// The user-facing display name of the tier. At least one of name or displayName must be provided.
1478    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1479    pub display_name: MaybeUndefined<String>,
1480}
1481/// Customer tier filtering options.
1482#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1483#[serde(rename_all = "camelCase")]
1484pub struct CustomerTierFilter {
1485    /// Comparator for the identifier.
1486    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1487    pub id: MaybeUndefined<IDComparator>,
1488    /// Comparator for the created at date.
1489    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1490    pub created_at: MaybeUndefined<DateComparator>,
1491    /// Comparator for the updated at date.
1492    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1493    pub updated_at: MaybeUndefined<DateComparator>,
1494    /// Comparator for the customer tier display name.
1495    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1496    pub display_name: MaybeUndefined<StringComparator>,
1497    /// Comparator for the customer tier description.
1498    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1499    pub description: MaybeUndefined<StringComparator>,
1500    /// Comparator for the customer tier position.
1501    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1502    pub position: MaybeUndefined<NumberComparator>,
1503    /// Comparator for the customer tier color.
1504    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1505    pub color: MaybeUndefined<StringComparator>,
1506    /// Compound filters, all of which need to be matched by the customer tier.
1507    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1508    pub and: MaybeUndefined<Vec<CustomerTierFilter>>,
1509    /// Compound filters, one of which needs to be matched by the customer tier.
1510    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1511    pub or: MaybeUndefined<Vec<CustomerTierFilter>>,
1512}
1513/// Input for updating an existing customer tier.
1514#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1515#[serde(rename_all = "camelCase")]
1516pub struct CustomerTierUpdateInput {
1517    /// The updated internal name of the tier.
1518    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1519    pub name: MaybeUndefined<String>,
1520    /// The updated color of the tier indicator in the UI, as a HEX string.
1521    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1522    pub color: MaybeUndefined<String>,
1523    /// The updated description of the tier.
1524    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1525    pub description: MaybeUndefined<String>,
1526    /// The updated sort position of the tier in the workspace's customer tier ordering.
1527    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1528    pub position: MaybeUndefined<f64>,
1529    /// The updated user-facing display name of the tier.
1530    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1531    pub display_name: MaybeUndefined<String>,
1532}
1533/// Input for updating an existing customer.
1534#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1535#[serde(rename_all = "camelCase")]
1536pub struct CustomerUpdateInput {
1537    /// The updated name of the customer.
1538    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1539    pub name: MaybeUndefined<String>,
1540    /// The updated list of email domains associated with this customer. Replaces the existing domains.
1541    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1542    pub domains: MaybeUndefined<Vec<String>>,
1543    /// The updated list of external system identifiers for this customer. New IDs will be appended with source metadata.
1544    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1545    pub external_ids: MaybeUndefined<Vec<String>>,
1546    /// The ID of the Slack channel to link to this customer. Set to null to unlink the current channel.
1547    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1548    pub slack_channel_id: MaybeUndefined<String>,
1549    /// The identifier of the user to assign as the owner of the customer.
1550    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1551    pub owner_id: MaybeUndefined<String>,
1552    /// The identifier of the customer status to set.
1553    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1554    pub status_id: MaybeUndefined<String>,
1555    /// The annual revenue generated by the customer, in dollars.
1556    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1557    pub revenue: MaybeUndefined<i64>,
1558    /// The size of the customer organization (e.g., number of employees).
1559    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1560    pub size: MaybeUndefined<i64>,
1561    /// The identifier of the customer tier to assign.
1562    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1563    pub tier_id: MaybeUndefined<String>,
1564    /// The URL of the customer's logo image.
1565    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1566    pub logo_url: MaybeUndefined<String>,
1567    /// The primary external source ID for customers with multiple sources. Must be one of the values in externalIds.
1568    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1569    pub main_source_id: MaybeUndefined<String>,
1570}
1571/// Input for upserting a customer. Matches against existing customers using id, externalId, slackChannelId, or domains. Creates a new customer if no match is found.
1572#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1573#[serde(rename_all = "camelCase")]
1574pub struct CustomerUpsertInput {
1575    /// The identifier in UUID v4 format. Used to match an existing customer for upsert.
1576    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1577    pub id: MaybeUndefined<String>,
1578    /// The name of the customer. Required when creating a new customer.
1579    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1580    pub name: MaybeUndefined<String>,
1581    /// The email domains associated with this customer.
1582    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1583    pub domains: MaybeUndefined<Vec<String>>,
1584    /// An external system identifier for this customer. Used for matching existing customers during upsert.
1585    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1586    pub external_id: MaybeUndefined<String>,
1587    /// The ID of the Slack channel to link to this customer.
1588    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1589    pub slack_channel_id: MaybeUndefined<String>,
1590    /// The identifier of the user to assign as the owner of the customer.
1591    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1592    pub owner_id: MaybeUndefined<String>,
1593    /// The identifier of the customer status to set.
1594    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1595    pub status_id: MaybeUndefined<String>,
1596    /// The annual revenue generated by the customer, in dollars.
1597    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1598    pub revenue: MaybeUndefined<i64>,
1599    /// The size of the customer organization (e.g., number of employees).
1600    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1601    pub size: MaybeUndefined<i64>,
1602    /// The identifier of the customer tier to assign. Cannot be used together with tierName.
1603    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1604    pub tier_id: MaybeUndefined<String>,
1605    /// The URL of the customer's logo image.
1606    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1607    pub logo_url: MaybeUndefined<String>,
1608    /// The name of the customer tier to assign. A new tier will be created if one with this name does not exist. Cannot be used together with tierId.
1609    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1610    pub tier_name: MaybeUndefined<String>,
1611}
1612/// Input for creating a new cycle.
1613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1614#[serde(rename_all = "camelCase")]
1615pub struct CycleCreateInput {
1616    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1617    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1618    pub id: MaybeUndefined<String>,
1619    /// The custom name of the cycle.
1620    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1621    pub name: MaybeUndefined<String>,
1622    /// The description of the cycle.
1623    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1624    pub description: MaybeUndefined<String>,
1625    /// The team to associate the cycle with.
1626    pub team_id: String,
1627    /// The start time of the cycle.
1628    pub starts_at: chrono::DateTime<chrono::Utc>,
1629    /// The end time of the cycle.
1630    pub ends_at: chrono::DateTime<chrono::Utc>,
1631    /// The completion time of the cycle. If null, the cycle hasn't been completed.
1632    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1633    pub completed_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
1634}
1635/// Cycle filtering options.
1636#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1637#[serde(rename_all = "camelCase")]
1638pub struct CycleFilter {
1639    /// Comparator for the identifier.
1640    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1641    pub id: MaybeUndefined<IDComparator>,
1642    /// Comparator for the created at date.
1643    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1644    pub created_at: MaybeUndefined<DateComparator>,
1645    /// Comparator for the updated at date.
1646    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1647    pub updated_at: MaybeUndefined<DateComparator>,
1648    /// Comparator for the cycle number.
1649    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1650    pub number: MaybeUndefined<NumberComparator>,
1651    /// Comparator for the cycle name.
1652    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1653    pub name: MaybeUndefined<StringComparator>,
1654    /// Comparator for the cycle start date.
1655    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1656    pub starts_at: MaybeUndefined<DateComparator>,
1657    /// Comparator for the cycle ends at date.
1658    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1659    pub ends_at: MaybeUndefined<DateComparator>,
1660    /// Comparator for the cycle completed at date.
1661    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1662    pub completed_at: MaybeUndefined<DateComparator>,
1663    /// Comparator for the filtering active cycle.
1664    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1665    pub is_active: MaybeUndefined<BooleanComparator>,
1666    /// Comparator for filtering for whether the cycle is currently in cooldown.
1667    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1668    pub is_in_cooldown: MaybeUndefined<BooleanComparator>,
1669    /// Comparator for the filtering next cycle.
1670    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1671    pub is_next: MaybeUndefined<BooleanComparator>,
1672    /// Comparator for the filtering previous cycle.
1673    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1674    pub is_previous: MaybeUndefined<BooleanComparator>,
1675    /// Comparator for the filtering future cycles.
1676    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1677    pub is_future: MaybeUndefined<BooleanComparator>,
1678    /// Comparator for the filtering past cycles.
1679    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1680    pub is_past: MaybeUndefined<BooleanComparator>,
1681    /// Filters that the cycles team must satisfy.
1682    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1683    pub team: MaybeUndefined<Box<TeamFilter>>,
1684    /// Filters that the cycles issues must satisfy.
1685    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1686    pub issues: MaybeUndefined<Box<IssueCollectionFilter>>,
1687    /// Comparator for the inherited cycle ID.
1688    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1689    pub inherited_from_id: MaybeUndefined<IDComparator>,
1690    /// Compound filters, all of which need to be matched by the cycle.
1691    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1692    pub and: MaybeUndefined<Vec<CycleFilter>>,
1693    /// Compound filters, one of which need to be matched by the cycle.
1694    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1695    pub or: MaybeUndefined<Vec<CycleFilter>>,
1696}
1697/// Comparator for period when issue was added to a cycle.
1698#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1699#[serde(rename_all = "camelCase")]
1700pub struct CyclePeriodComparator {
1701    /// Equals constraint.
1702    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1703    pub eq: MaybeUndefined<CyclePeriod>,
1704    /// Not-equals constraint.
1705    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1706    pub neq: MaybeUndefined<CyclePeriod>,
1707    /// In-array constraint.
1708    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1709    pub r#in: MaybeUndefined<Vec<CyclePeriod>>,
1710    /// Not-in-array constraint.
1711    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1712    pub nin: MaybeUndefined<Vec<CyclePeriod>>,
1713    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
1714    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1715    pub null: MaybeUndefined<bool>,
1716}
1717/// Input for shifting all cycles from a certain cycle onwards by a certain number of days.
1718#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1719#[serde(rename_all = "camelCase")]
1720pub struct CycleShiftAllInput {
1721    /// The cycle ID at which to start the shift.
1722    pub id: String,
1723    /// The number of days to shift the cycles by.
1724    pub days_to_shift: f64,
1725}
1726/// Issue cycle sorting options.
1727#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1728#[serde(rename_all = "camelCase")]
1729pub struct CycleSort {
1730    /// Whether nulls should be sorted first or last
1731    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1732    pub nulls: MaybeUndefined<PaginationNulls>,
1733    /// The order for the individual sort
1734    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1735    pub order: MaybeUndefined<PaginationSortOrder>,
1736    /// When set to true, cycles will be ordered with a custom order. Current cycle comes first, followed by upcoming cycles in ASC order, followed by previous cycles in DESC order.
1737    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1738    pub current_cycle_first: MaybeUndefined<bool>,
1739}
1740/// Input for updating an existing cycle.
1741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1742#[serde(rename_all = "camelCase")]
1743pub struct CycleUpdateInput {
1744    /// The custom name of the cycle.
1745    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1746    pub name: MaybeUndefined<String>,
1747    /// The description of the cycle.
1748    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1749    pub description: MaybeUndefined<String>,
1750    /// The start time of the cycle.
1751    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1752    pub starts_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
1753    /// The end time of the cycle.
1754    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1755    pub ends_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
1756    /// The completion time of the cycle. If null, the cycle hasn't been completed.
1757    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1758    pub completed_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
1759}
1760/// Comparator for dates.
1761#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1762#[serde(rename_all = "camelCase")]
1763pub struct DateComparator {
1764    /// Equals constraint.
1765    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1766    pub eq: MaybeUndefined<serde_json::Value>,
1767    /// Not-equals constraint.
1768    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1769    pub neq: MaybeUndefined<serde_json::Value>,
1770    /// In-array constraint.
1771    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1772    pub r#in: MaybeUndefined<Vec<serde_json::Value>>,
1773    /// Not-in-array constraint.
1774    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1775    pub nin: MaybeUndefined<Vec<serde_json::Value>>,
1776    /// Less-than constraint. Matches any values that are less than the given value.
1777    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1778    pub lt: MaybeUndefined<serde_json::Value>,
1779    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
1780    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1781    pub lte: MaybeUndefined<serde_json::Value>,
1782    /// Greater-than constraint. Matches any values that are greater than the given value.
1783    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1784    pub gt: MaybeUndefined<serde_json::Value>,
1785    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
1786    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1787    pub gte: MaybeUndefined<serde_json::Value>,
1788}
1789/// Issue delegate sorting options.
1790#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1791#[serde(rename_all = "camelCase")]
1792pub struct DelegateSort {
1793    /// Whether nulls should be sorted first or last
1794    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1795    pub nulls: MaybeUndefined<PaginationNulls>,
1796    /// The order for the individual sort
1797    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1798    pub order: MaybeUndefined<PaginationSortOrder>,
1799}
1800/// Input for confirming workspace deletion with a verification code.
1801#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1802#[serde(rename_all = "camelCase")]
1803pub struct DeleteOrganizationInput {
1804    /// The deletion code to confirm operation.
1805    pub deletion_code: String,
1806}
1807/// Input for creating a new document.
1808#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1809#[serde(rename_all = "camelCase")]
1810pub struct DocumentCreateInput {
1811    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1812    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1813    pub id: MaybeUndefined<String>,
1814    /// The title of the document.
1815    pub title: String,
1816    /// The icon of the document.
1817    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1818    pub icon: MaybeUndefined<String>,
1819    /// The color of the icon.
1820    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1821    pub color: MaybeUndefined<String>,
1822    /// The document content as markdown.
1823    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1824    pub content: MaybeUndefined<String>,
1825    /// Related project for the document.
1826    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1827    pub project_id: MaybeUndefined<String>,
1828    /// `Internal` Related initiative for the document.
1829    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1830    pub initiative_id: MaybeUndefined<String>,
1831    /// `Internal` Related team for the document.
1832    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1833    pub team_id: MaybeUndefined<String>,
1834    /// Related issue for the document. Can be a UUID or issue identifier (e.g., 'LIN-123').
1835    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1836    pub issue_id: MaybeUndefined<String>,
1837    /// `Internal` Related release for the document.
1838    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1839    pub release_id: MaybeUndefined<String>,
1840    /// `Internal` Related cycle for the document.
1841    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1842    pub cycle_id: MaybeUndefined<String>,
1843    /// `Internal` The resource folder containing the document.
1844    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1845    pub resource_folder_id: MaybeUndefined<String>,
1846    /// The ID of the last template applied to the document.
1847    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1848    pub last_applied_template_id: MaybeUndefined<String>,
1849    /// The order of the item in the resources list.
1850    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1851    pub sort_order: MaybeUndefined<f64>,
1852    /// `INTERNAL` The identifiers of the users subscribing to this document.
1853    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1854    pub subscriber_ids: MaybeUndefined<Vec<String>>,
1855}
1856/// Document filtering options.
1857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1858#[serde(rename_all = "camelCase")]
1859pub struct DocumentFilter {
1860    /// Comparator for the identifier.
1861    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1862    pub id: MaybeUndefined<IDComparator>,
1863    /// Comparator for the created at date.
1864    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1865    pub created_at: MaybeUndefined<DateComparator>,
1866    /// Comparator for the updated at date.
1867    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1868    pub updated_at: MaybeUndefined<DateComparator>,
1869    /// Comparator for the document title.
1870    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1871    pub title: MaybeUndefined<StringComparator>,
1872    /// Comparator for the document slug ID.
1873    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1874    pub slug_id: MaybeUndefined<StringComparator>,
1875    /// Filters that the document's creator must satisfy.
1876    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1877    pub creator: MaybeUndefined<Box<UserFilter>>,
1878    /// Filters that the document's project must satisfy.
1879    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1880    pub project: MaybeUndefined<Box<ProjectFilter>>,
1881    /// Filters that the document's issue must satisfy.
1882    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1883    pub issue: MaybeUndefined<Box<IssueFilter>>,
1884    /// Filters that the document's initiative must satisfy.
1885    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1886    pub initiative: MaybeUndefined<Box<InitiativeFilter>>,
1887    /// Filters that the document's cycle must satisfy.
1888    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1889    pub cycle: MaybeUndefined<Box<CycleFilter>>,
1890    /// Filters that the document's release must satisfy.
1891    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1892    pub release: MaybeUndefined<Box<ReleaseFilter>>,
1893    /// Compound filters, all of which need to be matched by the document.
1894    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1895    pub and: MaybeUndefined<Vec<DocumentFilter>>,
1896    /// Compound filters, one of which need to be matched by the document.
1897    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1898    pub or: MaybeUndefined<Vec<DocumentFilter>>,
1899}
1900/// Input for updating an existing document.
1901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1902#[serde(rename_all = "camelCase")]
1903pub struct DocumentUpdateInput {
1904    /// The title of the document.
1905    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1906    pub title: MaybeUndefined<String>,
1907    /// The icon of the document.
1908    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1909    pub icon: MaybeUndefined<String>,
1910    /// The color of the icon.
1911    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1912    pub color: MaybeUndefined<String>,
1913    /// The document content as markdown.
1914    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1915    pub content: MaybeUndefined<String>,
1916    /// Related project for the document.
1917    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1918    pub project_id: MaybeUndefined<String>,
1919    /// `Internal` Related initiative for the document.
1920    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1921    pub initiative_id: MaybeUndefined<String>,
1922    /// `Internal` Related team for the document.
1923    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1924    pub team_id: MaybeUndefined<String>,
1925    /// Related issue for the document. Can be a UUID or issue identifier (e.g., 'LIN-123').
1926    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1927    pub issue_id: MaybeUndefined<String>,
1928    /// `Internal` Related release for the document.
1929    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1930    pub release_id: MaybeUndefined<String>,
1931    /// `Internal` Related cycle for the document.
1932    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1933    pub cycle_id: MaybeUndefined<String>,
1934    /// `Internal` The resource folder containing the document.
1935    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1936    pub resource_folder_id: MaybeUndefined<String>,
1937    /// The ID of the last template applied to the document.
1938    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1939    pub last_applied_template_id: MaybeUndefined<String>,
1940    /// The time at which the document was hidden. Set to null to unhide.
1941    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1942    pub hidden_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
1943    /// The order of the item in the resources list.
1944    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1945    pub sort_order: MaybeUndefined<f64>,
1946    /// Whether the document has been trashed. Set to true to trash, or null to restore from trash.
1947    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1948    pub trashed: MaybeUndefined<bool>,
1949    /// `INTERNAL` The identifiers of the users subscribing to this document.
1950    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1951    pub subscriber_ids: MaybeUndefined<Vec<String>>,
1952}
1953/// Issue due date sorting options.
1954#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1955#[serde(rename_all = "camelCase")]
1956pub struct DueDateSort {
1957    /// Whether nulls should be sorted first or last
1958    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1959    pub nulls: MaybeUndefined<PaginationNulls>,
1960    /// The order for the individual sort
1961    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1962    pub order: MaybeUndefined<PaginationSortOrder>,
1963}
1964/// Input for creating a new email intake address.
1965#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1966#[serde(rename_all = "camelCase")]
1967pub struct EmailIntakeAddressCreateInput {
1968    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1969    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1970    pub id: MaybeUndefined<String>,
1971    /// The type of the email address. If not provided, the backend will default to team or template.
1972    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1973    pub r#type: MaybeUndefined<EmailIntakeAddressType>,
1974    /// The email address used to forward emails to the intake address.
1975    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1976    pub forwarding_email_address: MaybeUndefined<String>,
1977    /// The name to be used for outgoing emails.
1978    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1979    pub sender_name: MaybeUndefined<String>,
1980    /// The identifier or key of the team this email address will intake issues for.
1981    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1982    pub team_id: MaybeUndefined<String>,
1983    /// The identifier of the template this email address will intake issues for.
1984    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1985    pub template_id: MaybeUndefined<String>,
1986    /// Whether email replies are enabled.
1987    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1988    pub replies_enabled: MaybeUndefined<bool>,
1989    /// Whether the commenter's name is included in the email replies.
1990    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1991    pub use_user_names_in_replies: MaybeUndefined<bool>,
1992    /// Whether the issue created auto-reply is enabled.
1993    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1994    pub issue_created_auto_reply_enabled: MaybeUndefined<bool>,
1995    /// The auto-reply message for issue created.
1996    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
1997    pub issue_created_auto_reply: MaybeUndefined<String>,
1998    /// Whether the issue completed auto-reply is enabled.
1999    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2000    pub issue_completed_auto_reply_enabled: MaybeUndefined<bool>,
2001    /// The auto-reply message for issue completed.
2002    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2003    pub issue_completed_auto_reply: MaybeUndefined<String>,
2004    /// Whether the issue canceled auto-reply is enabled.
2005    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2006    pub issue_canceled_auto_reply_enabled: MaybeUndefined<bool>,
2007    /// The auto-reply message for issue canceled.
2008    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2009    pub issue_canceled_auto_reply: MaybeUndefined<String>,
2010    /// Whether customer requests are enabled.
2011    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2012    pub customer_requests_enabled: MaybeUndefined<bool>,
2013    /// Whether to reopen completed or canceled issues when a substantive email reply is received.
2014    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2015    pub reopen_on_reply: MaybeUndefined<bool>,
2016}
2017/// Input for updating an existing email intake address.
2018#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2019#[serde(rename_all = "camelCase")]
2020pub struct EmailIntakeAddressUpdateInput {
2021    /// Whether the email address is currently enabled. If set to false, the email address will be disabled and no longer accept incoming emails.
2022    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2023    pub enabled: MaybeUndefined<bool>,
2024    /// The email address used to forward emails to the intake address.
2025    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2026    pub forwarding_email_address: MaybeUndefined<String>,
2027    /// The name to be used for outgoing emails.
2028    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2029    pub sender_name: MaybeUndefined<String>,
2030    /// The identifier or key of the team this email address will intake issues for.
2031    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2032    pub team_id: MaybeUndefined<String>,
2033    /// The identifier of the template this email address will intake issues for.
2034    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2035    pub template_id: MaybeUndefined<String>,
2036    /// Whether email replies are enabled.
2037    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2038    pub replies_enabled: MaybeUndefined<bool>,
2039    /// Whether the commenter's name is included in the email replies.
2040    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2041    pub use_user_names_in_replies: MaybeUndefined<bool>,
2042    /// Whether the issue created auto-reply is enabled.
2043    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2044    pub issue_created_auto_reply_enabled: MaybeUndefined<bool>,
2045    /// The auto-reply message for issue created.
2046    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2047    pub issue_created_auto_reply: MaybeUndefined<String>,
2048    /// Whether the issue completed auto-reply is enabled.
2049    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2050    pub issue_completed_auto_reply_enabled: MaybeUndefined<bool>,
2051    /// Custom auto-reply message for issue completed.
2052    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2053    pub issue_completed_auto_reply: MaybeUndefined<String>,
2054    /// Whether the issue canceled auto-reply is enabled.
2055    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2056    pub issue_canceled_auto_reply_enabled: MaybeUndefined<bool>,
2057    /// Custom auto-reply message for issue canceled.
2058    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2059    pub issue_canceled_auto_reply: MaybeUndefined<String>,
2060    /// Whether customer requests are enabled.
2061    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2062    pub customer_requests_enabled: MaybeUndefined<bool>,
2063    /// Whether to reopen completed or canceled issues when a substantive email reply is received.
2064    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2065    pub reopen_on_reply: MaybeUndefined<bool>,
2066}
2067/// Input for unsubscribing a user from a specific email notification type.
2068#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2069#[serde(rename_all = "camelCase")]
2070pub struct EmailUnsubscribeInput {
2071    /// Email type to unsubscribe from.
2072    pub r#type: String,
2073    /// The user's email validation token.
2074    pub token: String,
2075    /// The identifier of the user.
2076    pub user_id: String,
2077}
2078#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2079#[serde(rename_all = "camelCase")]
2080pub struct EmailUserAccountAuthChallengeInput {
2081    /// The email for which to generate the magic login code.
2082    pub email: String,
2083    /// Whether the login was requested from the desktop app.
2084    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2085    pub is_desktop: MaybeUndefined<bool>,
2086    /// Auth code for the client initiating the sequence.
2087    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2088    pub client_auth_code: MaybeUndefined<String>,
2089    /// The workspace invite link to associate with this authentication.
2090    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2091    pub invite_link: MaybeUndefined<String>,
2092    /// Whether to only return the login code. This is used by mobile apps to skip showing the login link.
2093    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2094    pub login_code_only: MaybeUndefined<bool>,
2095    /// Response from the login challenge.
2096    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2097    pub challenge_response: MaybeUndefined<String>,
2098    /// PostHog session ID for attribution tracking.
2099    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2100    pub session_id: MaybeUndefined<String>,
2101}
2102/// Input for creating a new custom emoji.
2103#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2104#[serde(rename_all = "camelCase")]
2105pub struct EmojiCreateInput {
2106    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2107    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2108    pub id: MaybeUndefined<String>,
2109    /// The name of the custom emoji.
2110    pub name: String,
2111    /// The URL for the emoji.
2112    pub url: String,
2113}
2114/// Input for creating a new external link on an entity. A URL, label, and exactly one parent entity (initiative, project, team, release, or cycle) are required.
2115#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2116#[serde(rename_all = "camelCase")]
2117pub struct EntityExternalLinkCreateInput {
2118    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2119    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2120    pub id: MaybeUndefined<String>,
2121    /// The URL of the link.
2122    pub url: String,
2123    /// The label for the link.
2124    pub label: String,
2125    /// The initiative associated with the link.
2126    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2127    pub initiative_id: MaybeUndefined<String>,
2128    /// The project associated with the link.
2129    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2130    pub project_id: MaybeUndefined<String>,
2131    /// `Internal` The team associated with the link.
2132    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2133    pub team_id: MaybeUndefined<String>,
2134    /// `Internal` The release associated with the link.
2135    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2136    pub release_id: MaybeUndefined<String>,
2137    /// `Internal` The cycle associated with the link.
2138    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2139    pub cycle_id: MaybeUndefined<String>,
2140    /// `Internal` The resource folder containing the link.
2141    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2142    pub resource_folder_id: MaybeUndefined<String>,
2143    /// The order of the item in the entities resources list.
2144    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2145    pub sort_order: MaybeUndefined<f64>,
2146}
2147/// Input for updating an existing external link. All fields are optional; only provided fields will be updated.
2148#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2149#[serde(rename_all = "camelCase")]
2150pub struct EntityExternalLinkUpdateInput {
2151    /// The URL of the link.
2152    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2153    pub url: MaybeUndefined<String>,
2154    /// The label for the link.
2155    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2156    pub label: MaybeUndefined<String>,
2157    /// The order of the item in the entities resources list.
2158    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2159    pub sort_order: MaybeUndefined<f64>,
2160    /// `Internal` The resource folder containing the link.
2161    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2162    pub resource_folder_id: MaybeUndefined<String>,
2163}
2164/// Comparator for estimates.
2165#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2166#[serde(rename_all = "camelCase")]
2167pub struct EstimateComparator {
2168    /// Equals constraint.
2169    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2170    pub eq: MaybeUndefined<f64>,
2171    /// Not-equals constraint.
2172    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2173    pub neq: MaybeUndefined<f64>,
2174    /// In-array constraint.
2175    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2176    pub r#in: MaybeUndefined<Vec<f64>>,
2177    /// Not-in-array constraint.
2178    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2179    pub nin: MaybeUndefined<Vec<f64>>,
2180    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
2181    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2182    pub null: MaybeUndefined<bool>,
2183    /// Less-than constraint. Matches any values that are less than the given value.
2184    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2185    pub lt: MaybeUndefined<f64>,
2186    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
2187    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2188    pub lte: MaybeUndefined<f64>,
2189    /// Greater-than constraint. Matches any values that are greater than the given value.
2190    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2191    pub gt: MaybeUndefined<f64>,
2192    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
2193    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2194    pub gte: MaybeUndefined<f64>,
2195    /// Compound filters, all of which need to be matched by the estimate.
2196    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2197    pub or: MaybeUndefined<Vec<NullableNumberComparator>>,
2198    /// Compound filters, one of which need to be matched by the estimate.
2199    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2200    pub and: MaybeUndefined<Vec<NullableNumberComparator>>,
2201}
2202/// Issue estimate sorting options.
2203#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2204#[serde(rename_all = "camelCase")]
2205pub struct EstimateSort {
2206    /// Whether nulls should be sorted first or last
2207    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2208    pub nulls: MaybeUndefined<PaginationNulls>,
2209    /// The order for the individual sort
2210    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2211    pub order: MaybeUndefined<PaginationSortOrder>,
2212}
2213/// Input for tracking an anonymous analytics event.
2214#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2215#[serde(rename_all = "camelCase")]
2216pub struct EventTrackingInput {
2217    /// The event name to track.
2218    pub event: String,
2219    /// Optional properties for the event.
2220    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2221    pub properties: MaybeUndefined<serde_json::Value>,
2222    /// Client session ID for PostHog session correlation.
2223    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2224    pub session_id: MaybeUndefined<String>,
2225}
2226/// Input for creating a favorite. Exactly one target entity must be specified (e.g., issueId, projectId, customViewId, folderName, etc.).
2227#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2228#[serde(rename_all = "camelCase")]
2229pub struct FavoriteCreateInput {
2230    /// The identifier. If none is provided, the backend will generate one.
2231    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2232    pub id: MaybeUndefined<String>,
2233    /// The name of the favorite folder.
2234    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2235    pub folder_name: MaybeUndefined<String>,
2236    /// The parent folder of the favorite.
2237    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2238    pub parent_id: MaybeUndefined<String>,
2239    /// The identifier of the issue to favorite. Can be a UUID or issue identifier (e.g., 'LIN-123').
2240    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2241    pub issue_id: MaybeUndefined<String>,
2242    /// The identifier of the facet to favorite.
2243    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2244    pub facet_id: MaybeUndefined<String>,
2245    /// The identifier of the project to favorite.
2246    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2247    pub project_id: MaybeUndefined<String>,
2248    /// The tab of the project to favorite.
2249    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2250    pub project_tab: MaybeUndefined<ProjectTab>,
2251    /// The type of the predefined view to favorite.
2252    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2253    pub predefined_view_type: MaybeUndefined<String>,
2254    /// The identifier of team for the predefined view to favorite.
2255    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2256    pub predefined_view_team_id: MaybeUndefined<String>,
2257    /// The identifier of the cycle to favorite.
2258    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2259    pub cycle_id: MaybeUndefined<String>,
2260    /// The identifier of the custom view to favorite.
2261    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2262    pub custom_view_id: MaybeUndefined<String>,
2263    /// The identifier of the document to favorite.
2264    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2265    pub document_id: MaybeUndefined<String>,
2266    /// `INTERNAL` The identifier of the initiative to favorite.
2267    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2268    pub initiative_id: MaybeUndefined<String>,
2269    /// The tab of the initiative to favorite.
2270    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2271    pub initiative_tab: MaybeUndefined<InitiativeTab>,
2272    /// The identifier of the label to favorite.
2273    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2274    pub label_id: MaybeUndefined<String>,
2275    /// The identifier of the project label to favorite.
2276    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2277    pub project_label_id: MaybeUndefined<String>,
2278    /// The identifier of the user to favorite.
2279    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2280    pub user_id: MaybeUndefined<String>,
2281    /// The position of the item in the favorites list.
2282    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2283    pub sort_order: MaybeUndefined<f64>,
2284    /// The identifier of the customer to favorite.
2285    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2286    pub customer_id: MaybeUndefined<String>,
2287    /// The identifier of the dashboard to favorite.
2288    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2289    pub dashboard_id: MaybeUndefined<String>,
2290    /// The identifier of the pull request to favorite.
2291    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2292    pub pull_request_id: MaybeUndefined<String>,
2293    /// `ALPHA` The identifier of the release to favorite.
2294    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2295    pub release_id: MaybeUndefined<String>,
2296    /// `ALPHA` The identifier of the release pipeline to favorite.
2297    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2298    pub release_pipeline_id: MaybeUndefined<String>,
2299}
2300/// Input for updating a favorite's position, parent folder, or folder name.
2301#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2302#[serde(rename_all = "camelCase")]
2303pub struct FavoriteUpdateInput {
2304    /// The position of the item in the favorites list.
2305    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2306    pub sort_order: MaybeUndefined<f64>,
2307    /// The identifier (in UUID v4 format) of the folder to move the favorite under.
2308    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2309    pub parent_id: MaybeUndefined<String>,
2310    /// The name of the favorite folder.
2311    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2312    pub folder_name: MaybeUndefined<String>,
2313}
2314/// Feed item filtering options
2315#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2316#[serde(rename_all = "camelCase")]
2317pub struct FeedItemFilter {
2318    /// Comparator for the identifier.
2319    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2320    pub id: MaybeUndefined<IDComparator>,
2321    /// Comparator for the created at date.
2322    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2323    pub created_at: MaybeUndefined<DateComparator>,
2324    /// Comparator for the updated at date.
2325    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2326    pub updated_at: MaybeUndefined<DateComparator>,
2327    /// Filters that the feed item author must satisfy.
2328    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2329    pub author: MaybeUndefined<UserFilter>,
2330    /// Comparator for the update type: initiative, project, team
2331    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2332    pub update_type: MaybeUndefined<StringComparator>,
2333    /// Comparator for the project or initiative update health: onTrack, atRisk, offTrack
2334    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2335    pub update_health: MaybeUndefined<StringComparator>,
2336    /// Filters that the feed item's project update must satisfy.
2337    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2338    pub project_update: MaybeUndefined<ProjectUpdateFilter>,
2339    /// Filters that the related feed item initiatives must satisfy.
2340    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2341    pub related_initiatives: MaybeUndefined<InitiativeCollectionFilter>,
2342    /// Filters that the related feed item team must satisfy.
2343    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2344    pub related_teams: MaybeUndefined<TeamCollectionFilter>,
2345    /// Compound filters, all of which need to be matched by the feed item.
2346    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2347    pub and: MaybeUndefined<Vec<FeedItemFilter>>,
2348    /// Compound filters, one of which need to be matched by the feed item.
2349    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2350    pub or: MaybeUndefined<Vec<FeedItemFilter>>,
2351}
2352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2353#[serde(rename_all = "camelCase")]
2354pub struct FrontSettingsInput {
2355    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
2356    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2357    pub send_note_on_status_change: MaybeUndefined<bool>,
2358    /// Whether an internal message should be added when someone comments on an issue.
2359    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2360    pub send_note_on_comment: MaybeUndefined<bool>,
2361    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
2362    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2363    pub automate_ticket_reopening_on_completion: MaybeUndefined<bool>,
2364    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
2365    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2366    pub automate_ticket_reopening_on_cancellation: MaybeUndefined<bool>,
2367    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
2368    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2369    pub automate_ticket_reopening_on_comment: MaybeUndefined<bool>,
2370    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
2371    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2372    pub disable_customer_requests_auto_creation: MaybeUndefined<bool>,
2373    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
2374    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2375    pub automate_ticket_reopening_on_project_completion: MaybeUndefined<bool>,
2376    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
2377    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2378    pub automate_ticket_reopening_on_project_cancellation: MaybeUndefined<bool>,
2379    /// Whether Linear Agent should be enabled for this integration.
2380    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2381    pub enable_ai_intake: MaybeUndefined<bool>,
2382}
2383/// Input for creating a new Git automation rule.
2384#[derive(Debug, Clone, Serialize, Deserialize)]
2385#[serde(rename_all = "camelCase")]
2386pub struct GitAutomationStateCreateInput {
2387    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2388    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2389    pub id: MaybeUndefined<String>,
2390    /// The team associated with the automation state.
2391    pub team_id: String,
2392    /// The associated workflow state. If null, will override default behaviour and take no action.
2393    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2394    pub state_id: MaybeUndefined<String>,
2395    /// The associated target branch. If null, all branches are targeted.
2396    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2397    pub target_branch_id: MaybeUndefined<String>,
2398    /// The event that triggers the automation.
2399    pub event: GitAutomationStates,
2400}
2401/// Input for updating an existing Git automation rule.
2402#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2403#[serde(rename_all = "camelCase")]
2404pub struct GitAutomationStateUpdateInput {
2405    /// The associated workflow state.
2406    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2407    pub state_id: MaybeUndefined<String>,
2408    /// The associated target branch. If null, all branches are targeted.
2409    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2410    pub target_branch_id: MaybeUndefined<String>,
2411    /// The event that triggers the automation.
2412    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2413    pub event: MaybeUndefined<GitAutomationStates>,
2414}
2415/// Input for creating a new Git target branch definition.
2416#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2417#[serde(rename_all = "camelCase")]
2418pub struct GitAutomationTargetBranchCreateInput {
2419    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2420    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2421    pub id: MaybeUndefined<String>,
2422    /// The team associated with the Git target branch automation.
2423    pub team_id: String,
2424    /// The target branch pattern.
2425    pub branch_pattern: String,
2426    /// Whether the branch pattern is a regular expression.
2427    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2428    pub is_regex: MaybeUndefined<bool>,
2429}
2430/// Input for updating an existing Git target branch definition.
2431#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2432#[serde(rename_all = "camelCase")]
2433pub struct GitAutomationTargetBranchUpdateInput {
2434    /// The target branch pattern.
2435    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2436    pub branch_pattern: MaybeUndefined<String>,
2437    /// Whether the branch pattern is a regular expression.
2438    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2439    pub is_regex: MaybeUndefined<bool>,
2440}
2441#[derive(Debug, Clone, Serialize, Deserialize)]
2442#[serde(rename_all = "camelCase")]
2443pub struct GitHubImportSettingsInput {
2444    /// The GitHub organization's name.
2445    pub org_login: String,
2446    /// The avatar URL for the GitHub organization.
2447    pub org_avatar_url: String,
2448    /// The names of the repositories connected for the GitHub integration.
2449    pub repositories: Vec<GitHubRepoInput>,
2450    /// A map storing all available issue labels per repository
2451    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2452    pub labels: MaybeUndefined<serde_json::Value>,
2453    /// The type of Github org
2454    pub org_type: GithubOrgType,
2455}
2456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2457#[serde(rename_all = "camelCase")]
2458pub struct GitHubPersonalSettingsInput {
2459    /// The GitHub user's name.
2460    pub login: String,
2461}
2462#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2463#[serde(rename_all = "camelCase")]
2464pub struct GitHubRepoInput {
2465    /// The GitHub repo id.
2466    pub id: f64,
2467    /// The full name of the repository.
2468    pub full_name: String,
2469    /// Whether the repository is archived.
2470    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2471    pub archived: MaybeUndefined<bool>,
2472    /// The external identifier (GitHub node ID) for the repository.
2473    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2474    pub external_id: MaybeUndefined<String>,
2475}
2476#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2477#[serde(rename_all = "camelCase")]
2478pub struct GitHubRepoMappingInput {
2479    /// The unique identifier for this mapping.
2480    pub id: String,
2481    /// The Linear team id to map to the given project.
2482    pub linear_team_id: String,
2483    /// The GitHub repo id.
2484    pub git_hub_repo_id: f64,
2485    /// Labels to filter incoming GitHub issue creation by.
2486    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2487    pub git_hub_labels: MaybeUndefined<Vec<String>>,
2488    /// Whether the sync for this mapping is bidirectional.
2489    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2490    pub bidirectional: MaybeUndefined<bool>,
2491    /// Whether this mapping is the default one for issue creation.
2492    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2493    pub default: MaybeUndefined<bool>,
2494}
2495#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2496#[serde(rename_all = "camelCase")]
2497pub struct GitHubSettingsInput {
2498    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2499    pub pull_request_review_tool: MaybeUndefined<PullRequestReviewTool>,
2500    /// The avatar URL for the GitHub organization.
2501    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2502    pub org_avatar_url: MaybeUndefined<String>,
2503    /// The GitHub organization's name.
2504    pub org_login: String,
2505    /// The stable external identifier (GitHub node ID) for the organization.
2506    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2507    pub external_org_id: MaybeUndefined<String>,
2508    /// The names of the repositories connected for the GitHub integration.
2509    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2510    pub repositories: MaybeUndefined<Vec<GitHubRepoInput>>,
2511    /// Mapping of team to repository for syncing.
2512    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2513    pub repositories_mapping: MaybeUndefined<Vec<GitHubRepoMappingInput>>,
2514    /// The type of Github org
2515    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2516    pub org_type: MaybeUndefined<GithubOrgType>,
2517    /// Whether the integration has code access
2518    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2519    pub code_access: MaybeUndefined<bool>,
2520    /// The enterprise URL if this is a GitHub Enterprise Cloud integration.
2521    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2522    pub enterprise_url: MaybeUndefined<String>,
2523}
2524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2525#[serde(rename_all = "camelCase")]
2526pub struct GitLabSettingsInput {
2527    /// The self-hosted URL of the GitLab instance.
2528    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2529    pub url: MaybeUndefined<String>,
2530    /// Whether the token is limited to a read-only scope.
2531    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2532    pub readonly: MaybeUndefined<bool>,
2533    /// The ISO timestamp the GitLab access token expires.
2534    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2535    pub expires_at: MaybeUndefined<String>,
2536}
2537#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2538#[serde(rename_all = "camelCase")]
2539pub struct GongRecordingImportConfigInput {
2540    /// The team ID to create issues in for imported recordings. Set to null to disable import.
2541    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2542    pub team_id: MaybeUndefined<String>,
2543}
2544#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2545#[serde(rename_all = "camelCase")]
2546pub struct GongSettingsInput {
2547    /// Configuration for recording import.
2548    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2549    pub import_config: MaybeUndefined<GongRecordingImportConfigInput>,
2550    /// Whether to tag matching internal Gong call participants as user mentions in created issues.
2551    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2552    pub tag_participants_in_issues: MaybeUndefined<bool>,
2553}
2554#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2555#[serde(rename_all = "camelCase")]
2556pub struct GoogleSheetsExportSettings {
2557    /// Whether the export is enabled.
2558    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2559    pub enabled: MaybeUndefined<bool>,
2560    /// The ID of the exported Google Sheet.
2561    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2562    pub spreadsheet_id: MaybeUndefined<String>,
2563    /// The URL of the exported Google Sheet.
2564    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2565    pub spreadsheet_url: MaybeUndefined<String>,
2566    /// The ID of the target sheet (tab) within the Google Sheet.
2567    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2568    pub sheet_id: MaybeUndefined<f64>,
2569    /// The date of the most recent export.
2570    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2571    pub updated_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
2572}
2573#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2574#[serde(rename_all = "camelCase")]
2575pub struct GoogleSheetsSettingsInput {
2576    /// `Deprecated` The ID of the exported Google Sheet.
2577    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2578    pub spreadsheet_id: MaybeUndefined<String>,
2579    /// `Deprecated` The URL of the exported Google Sheet.
2580    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2581    pub spreadsheet_url: MaybeUndefined<String>,
2582    /// `Deprecated` The ID of the target sheet (tab) within the Google Sheet.
2583    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2584    pub sheet_id: MaybeUndefined<f64>,
2585    /// `Deprecated` The date of the most recent export.
2586    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2587    pub updated_issues_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
2588    /// The export settings for issues.
2589    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2590    pub issue: MaybeUndefined<GoogleSheetsExportSettings>,
2591    /// The export settings for projects.
2592    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2593    pub project: MaybeUndefined<GoogleSheetsExportSettings>,
2594    /// The export settings for initiatives.
2595    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2596    pub initiative: MaybeUndefined<GoogleSheetsExportSettings>,
2597}
2598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2599#[serde(rename_all = "camelCase")]
2600pub struct GoogleUserAccountAuthInput {
2601    /// Code returned from Google's OAuth flow.
2602    pub code: String,
2603    /// The URI to redirect the user to.
2604    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2605    pub redirect_uri: MaybeUndefined<String>,
2606    /// The timezone of the user's browser.
2607    pub timezone: String,
2608    /// An optional invite link for a workspace used to populate available workspaces.
2609    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2610    pub invite_link: MaybeUndefined<String>,
2611    /// An optional parameter to disable new user signup and force login. Default: false.
2612    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2613    pub disallow_signup: MaybeUndefined<bool>,
2614    /// PostHog session ID for attribution tracking.
2615    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2616    pub session_id: MaybeUndefined<String>,
2617}
2618/// Comparator for identifiers.
2619#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2620#[serde(rename_all = "camelCase")]
2621pub struct IDComparator {
2622    /// Equals constraint.
2623    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2624    pub eq: MaybeUndefined<String>,
2625    /// Not-equals constraint.
2626    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2627    pub neq: MaybeUndefined<String>,
2628    /// In-array constraint.
2629    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2630    pub r#in: MaybeUndefined<Vec<String>>,
2631    /// Not-in-array constraint.
2632    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2633    pub nin: MaybeUndefined<Vec<String>>,
2634}
2635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2636#[serde(rename_all = "camelCase")]
2637pub struct InheritanceEntityMapping {
2638    /// Mapping of the WorkflowState ID to the new WorkflowState ID.
2639    pub workflow_states: serde_json::Value,
2640    /// Mapping of the IssueLabel ID to the new IssueLabel name.
2641    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2642    pub issue_labels: MaybeUndefined<serde_json::Value>,
2643}
2644/// Initiative collection filtering options.
2645#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2646#[serde(rename_all = "camelCase")]
2647pub struct InitiativeCollectionFilter {
2648    /// Comparator for the identifier.
2649    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2650    pub id: MaybeUndefined<IDComparator>,
2651    /// Comparator for the created at date.
2652    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2653    pub created_at: MaybeUndefined<DateComparator>,
2654    /// Comparator for the updated at date.
2655    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2656    pub updated_at: MaybeUndefined<DateComparator>,
2657    /// Comparator for the initiative name.
2658    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2659    pub name: MaybeUndefined<StringComparator>,
2660    /// Comparator for the initiative slug ID.
2661    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2662    pub slug_id: MaybeUndefined<StringComparator>,
2663    /// Filters that the initiative creator must satisfy.
2664    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2665    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
2666    /// Comparator for the initiative status: Planned, Active, Completed
2667    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2668    pub status: MaybeUndefined<StringComparator>,
2669    /// Filters that the initiative teams must satisfy.
2670    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2671    pub teams: MaybeUndefined<Box<TeamCollectionFilter>>,
2672    /// Filters that the initiative owner must satisfy.
2673    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2674    pub owner: MaybeUndefined<Box<NullableUserFilter>>,
2675    /// Comparator for the initiative target date.
2676    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2677    pub target_date: MaybeUndefined<NullableDateComparator>,
2678    /// Comparator for the initiative started at date.
2679    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2680    pub started_at: MaybeUndefined<NullableDateComparator>,
2681    /// Comparator for the initiative completed at date.
2682    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2683    pub completed_at: MaybeUndefined<NullableDateComparator>,
2684    /// Comparator for the initiative health: onTrack, atRisk, offTrack
2685    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2686    pub health: MaybeUndefined<StringComparator>,
2687    /// Comparator for the initiative health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
2688    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2689    pub health_with_age: MaybeUndefined<StringComparator>,
2690    /// Comparator for the initiative activity type.
2691    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2692    pub activity_type: MaybeUndefined<StringComparator>,
2693    /// Filters that the initiative must be an ancestor of.
2694    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2695    pub ancestors: MaybeUndefined<Box<InitiativeCollectionFilter>>,
2696    /// Filters that the initiative updates must satisfy.
2697    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2698    pub initiative_updates: MaybeUndefined<InitiativeUpdatesCollectionFilter>,
2699    /// Compound filters, all of which need to be matched by the initiative.
2700    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2701    pub and: MaybeUndefined<Vec<InitiativeCollectionFilter>>,
2702    /// Compound filters, one of which need to be matched by the initiative.
2703    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2704    pub or: MaybeUndefined<Vec<InitiativeCollectionFilter>>,
2705    /// Filters that needs to be matched by some initiatives.
2706    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2707    pub some: MaybeUndefined<Box<InitiativeFilter>>,
2708    /// Filters that needs to be matched by all initiatives.
2709    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2710    pub every: MaybeUndefined<Box<InitiativeFilter>>,
2711    /// Comparator for the collection length.
2712    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2713    pub length: MaybeUndefined<NumberComparator>,
2714}
2715/// The properties of the initiative to create.
2716#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2717#[serde(rename_all = "camelCase")]
2718pub struct InitiativeCreateInput {
2719    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2720    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2721    pub id: MaybeUndefined<String>,
2722    /// The name of the initiative.
2723    pub name: String,
2724    /// The description of the initiative.
2725    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2726    pub description: MaybeUndefined<String>,
2727    /// The owner of the initiative.
2728    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2729    pub owner_id: MaybeUndefined<String>,
2730    /// The sort order of the initiative within the workspace.
2731    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2732    pub sort_order: MaybeUndefined<f64>,
2733    /// The initiative's color.
2734    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2735    pub color: MaybeUndefined<String>,
2736    /// The initiative's icon.
2737    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2738    pub icon: MaybeUndefined<String>,
2739    /// The initiative's status.
2740    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2741    pub status: MaybeUndefined<InitiativeStatus>,
2742    /// The estimated completion date of the initiative.
2743    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2744    pub target_date: MaybeUndefined<chrono::NaiveDate>,
2745    /// The resolution of the initiative's estimated completion date.
2746    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2747    pub target_date_resolution: MaybeUndefined<DateResolutionType>,
2748    /// The initiative's content in markdown format.
2749    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2750    pub content: MaybeUndefined<String>,
2751}
2752/// Initiative creation date sorting options.
2753#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2754#[serde(rename_all = "camelCase")]
2755pub struct InitiativeCreatedAtSort {
2756    /// Whether nulls should be sorted first or last
2757    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2758    pub nulls: MaybeUndefined<PaginationNulls>,
2759    /// The order for the individual sort
2760    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2761    pub order: MaybeUndefined<PaginationSortOrder>,
2762}
2763/// Initiative filtering options.
2764#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2765#[serde(rename_all = "camelCase")]
2766pub struct InitiativeFilter {
2767    /// Comparator for the identifier.
2768    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2769    pub id: MaybeUndefined<IDComparator>,
2770    /// Comparator for the created at date.
2771    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2772    pub created_at: MaybeUndefined<DateComparator>,
2773    /// Comparator for the updated at date.
2774    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2775    pub updated_at: MaybeUndefined<DateComparator>,
2776    /// Comparator for the initiative name.
2777    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2778    pub name: MaybeUndefined<StringComparator>,
2779    /// Comparator for the initiative slug ID.
2780    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2781    pub slug_id: MaybeUndefined<StringComparator>,
2782    /// Filters that the initiative creator must satisfy.
2783    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2784    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
2785    /// Comparator for the initiative status: Planned, Active, Completed
2786    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2787    pub status: MaybeUndefined<StringComparator>,
2788    /// Filters that the initiative teams must satisfy.
2789    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2790    pub teams: MaybeUndefined<Box<TeamCollectionFilter>>,
2791    /// Filters that the initiative owner must satisfy.
2792    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2793    pub owner: MaybeUndefined<Box<NullableUserFilter>>,
2794    /// Comparator for the initiative target date.
2795    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2796    pub target_date: MaybeUndefined<NullableDateComparator>,
2797    /// Comparator for the initiative started at date.
2798    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2799    pub started_at: MaybeUndefined<NullableDateComparator>,
2800    /// Comparator for the initiative completed at date.
2801    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2802    pub completed_at: MaybeUndefined<NullableDateComparator>,
2803    /// Comparator for the initiative health: onTrack, atRisk, offTrack
2804    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2805    pub health: MaybeUndefined<StringComparator>,
2806    /// Comparator for the initiative health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
2807    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2808    pub health_with_age: MaybeUndefined<StringComparator>,
2809    /// Comparator for the initiative activity type.
2810    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2811    pub activity_type: MaybeUndefined<StringComparator>,
2812    /// Filters that the initiative must be an ancestor of.
2813    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2814    pub ancestors: MaybeUndefined<Box<InitiativeCollectionFilter>>,
2815    /// Filters that the initiative updates must satisfy.
2816    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2817    pub initiative_updates: MaybeUndefined<InitiativeUpdatesCollectionFilter>,
2818    /// Compound filters, all of which need to be matched by the initiative.
2819    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2820    pub and: MaybeUndefined<Vec<InitiativeFilter>>,
2821    /// Compound filters, one of which need to be matched by the initiative.
2822    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2823    pub or: MaybeUndefined<Vec<InitiativeFilter>>,
2824}
2825/// Initiative health sorting options.
2826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2827#[serde(rename_all = "camelCase")]
2828pub struct InitiativeHealthSort {
2829    /// Whether nulls should be sorted first or last
2830    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2831    pub nulls: MaybeUndefined<PaginationNulls>,
2832    /// The order for the individual sort
2833    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2834    pub order: MaybeUndefined<PaginationSortOrder>,
2835}
2836/// Initiative health update date sorting options.
2837#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2838#[serde(rename_all = "camelCase")]
2839pub struct InitiativeHealthUpdatedAtSort {
2840    /// Whether nulls should be sorted first or last
2841    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2842    pub nulls: MaybeUndefined<PaginationNulls>,
2843    /// The order for the individual sort
2844    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2845    pub order: MaybeUndefined<PaginationSortOrder>,
2846}
2847/// Initiative manual sorting options.
2848#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2849#[serde(rename_all = "camelCase")]
2850pub struct InitiativeManualSort {
2851    /// Whether nulls should be sorted first or last
2852    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2853    pub nulls: MaybeUndefined<PaginationNulls>,
2854    /// The order for the individual sort
2855    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2856    pub order: MaybeUndefined<PaginationSortOrder>,
2857}
2858/// Initiative name sorting options.
2859#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2860#[serde(rename_all = "camelCase")]
2861pub struct InitiativeNameSort {
2862    /// Whether nulls should be sorted first or last
2863    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2864    pub nulls: MaybeUndefined<PaginationNulls>,
2865    /// The order for the individual sort
2866    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2867    pub order: MaybeUndefined<PaginationSortOrder>,
2868}
2869/// Initiative owner sorting options.
2870#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2871#[serde(rename_all = "camelCase")]
2872pub struct InitiativeOwnerSort {
2873    /// Whether nulls should be sorted first or last
2874    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2875    pub nulls: MaybeUndefined<PaginationNulls>,
2876    /// The order for the individual sort
2877    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2878    pub order: MaybeUndefined<PaginationSortOrder>,
2879}
2880/// Input for creating a parent-child relationship between two initiatives. The initiativeId is the parent and the relatedInitiativeId is the child.
2881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2882#[serde(rename_all = "camelCase")]
2883pub struct InitiativeRelationCreateInput {
2884    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2885    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2886    pub id: MaybeUndefined<String>,
2887    /// The identifier of the parent initiative in the hierarchy.
2888    pub initiative_id: String,
2889    /// The identifier of the child initiative in the hierarchy.
2890    pub related_initiative_id: String,
2891    /// The sort order of the child initiative within its parent.
2892    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2893    pub sort_order: MaybeUndefined<f64>,
2894}
2895/// The properties of the initiative relation to update.
2896#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2897#[serde(rename_all = "camelCase")]
2898pub struct InitiativeRelationUpdateInput {
2899    /// The sort order of the child initiative within its parent.
2900    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2901    pub sort_order: MaybeUndefined<f64>,
2902}
2903/// Initiative sorting options.
2904#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2905#[serde(rename_all = "camelCase")]
2906pub struct InitiativeSortInput {
2907    /// Sort by initiative name.
2908    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2909    pub name: MaybeUndefined<InitiativeNameSort>,
2910    /// Sort by manual order.
2911    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2912    pub manual: MaybeUndefined<InitiativeManualSort>,
2913    /// Sort by initiative update date.
2914    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2915    pub updated_at: MaybeUndefined<InitiativeUpdatedAtSort>,
2916    /// Sort by initiative creation date.
2917    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2918    pub created_at: MaybeUndefined<InitiativeCreatedAtSort>,
2919    /// Sort by initiative target date.
2920    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2921    pub target_date: MaybeUndefined<InitiativeTargetDateSort>,
2922    /// Sort by initiative health status.
2923    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2924    pub health: MaybeUndefined<InitiativeHealthSort>,
2925    /// Sort by initiative health update date.
2926    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2927    pub health_updated_at: MaybeUndefined<InitiativeHealthUpdatedAtSort>,
2928    /// Sort by initiative owner name.
2929    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2930    pub owner: MaybeUndefined<InitiativeOwnerSort>,
2931}
2932/// Initiative target date sorting options.
2933#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2934#[serde(rename_all = "camelCase")]
2935pub struct InitiativeTargetDateSort {
2936    /// Whether nulls should be sorted first or last
2937    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2938    pub nulls: MaybeUndefined<PaginationNulls>,
2939    /// The order for the individual sort
2940    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2941    pub order: MaybeUndefined<PaginationSortOrder>,
2942}
2943/// The properties of the initiativeToProject to create.
2944#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2945#[serde(rename_all = "camelCase")]
2946pub struct InitiativeToProjectCreateInput {
2947    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2948    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2949    pub id: MaybeUndefined<String>,
2950    /// The identifier of the project.
2951    pub project_id: String,
2952    /// The identifier of the initiative.
2953    pub initiative_id: String,
2954    /// The sort order for the project within the initiative.
2955    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2956    pub sort_order: MaybeUndefined<f64>,
2957}
2958/// The properties of the initiative-to-project association to update.
2959#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2960#[serde(rename_all = "camelCase")]
2961pub struct InitiativeToProjectUpdateInput {
2962    /// The sort order for the project within the initiative.
2963    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2964    pub sort_order: MaybeUndefined<f64>,
2965}
2966/// Input for creating a new initiative update.
2967#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2968#[serde(rename_all = "camelCase")]
2969pub struct InitiativeUpdateCreateInput {
2970    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2971    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2972    pub id: MaybeUndefined<String>,
2973    /// The content of the update in markdown format.
2974    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2975    pub body: MaybeUndefined<String>,
2976    /// `Internal` The content of the update as a Prosemirror document.
2977    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2978    pub body_data: MaybeUndefined<serde_json::Value>,
2979    /// The health of the initiative at the time of the update.
2980    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2981    pub health: MaybeUndefined<InitiativeUpdateHealthType>,
2982    /// The initiative to associate the update with.
2983    pub initiative_id: String,
2984    /// Whether the diff between the current update and the previous one should be hidden.
2985    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2986    pub is_diff_hidden: MaybeUndefined<bool>,
2987}
2988/// Options for filtering initiative updates.
2989#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2990#[serde(rename_all = "camelCase")]
2991pub struct InitiativeUpdateFilter {
2992    /// Comparator for the identifier.
2993    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2994    pub id: MaybeUndefined<IDComparator>,
2995    /// Comparator for the created at date.
2996    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
2997    pub created_at: MaybeUndefined<DateComparator>,
2998    /// Comparator for the updated at date.
2999    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3000    pub updated_at: MaybeUndefined<DateComparator>,
3001    /// Filters that the initiative update creator must satisfy.
3002    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3003    pub user: MaybeUndefined<UserFilter>,
3004    /// Filters that the initiative update initiative must satisfy.
3005    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3006    pub initiative: MaybeUndefined<InitiativeFilter>,
3007    /// Filters that the initiative updates reactions must satisfy.
3008    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3009    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
3010    /// Compound filters, all of which need to be matched by the InitiativeUpdate.
3011    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3012    pub and: MaybeUndefined<Vec<InitiativeUpdateFilter>>,
3013    /// Compound filters, one of which need to be matched by the InitiativeUpdate.
3014    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3015    pub or: MaybeUndefined<Vec<InitiativeUpdateFilter>>,
3016}
3017/// The properties of the initiative to update.
3018#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3019#[serde(rename_all = "camelCase")]
3020pub struct InitiativeUpdateInput {
3021    /// The name of the initiative.
3022    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3023    pub name: MaybeUndefined<String>,
3024    /// The description of the initiative.
3025    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3026    pub description: MaybeUndefined<String>,
3027    /// The owner of the initiative.
3028    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3029    pub owner_id: MaybeUndefined<String>,
3030    /// The sort order of the initiative within the workspace.
3031    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3032    pub sort_order: MaybeUndefined<f64>,
3033    /// The initiative's color.
3034    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3035    pub color: MaybeUndefined<String>,
3036    /// The initiative's icon.
3037    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3038    pub icon: MaybeUndefined<String>,
3039    /// The estimated completion date of the initiative. Set to null to clear.
3040    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3041    pub target_date: MaybeUndefined<chrono::NaiveDate>,
3042    /// The initiative's status.
3043    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3044    pub status: MaybeUndefined<InitiativeStatus>,
3045    /// The resolution of the initiative's estimated completion date.
3046    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3047    pub target_date_resolution: MaybeUndefined<DateResolutionType>,
3048    /// Whether the initiative has been trashed. Set to true to trash, or null to restore.
3049    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3050    pub trashed: MaybeUndefined<bool>,
3051    /// The initiative's content in markdown format.
3052    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3053    pub content: MaybeUndefined<String>,
3054    /// The n-weekly frequency at which to prompt for initiative updates. When not set, reminders are inherited from workspace settings.
3055    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3056    pub update_reminder_frequency_in_weeks: MaybeUndefined<f64>,
3057    /// The frequency at which to prompt for initiative updates. When not set, reminders are inherited from workspace settings.
3058    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3059    pub update_reminder_frequency: MaybeUndefined<f64>,
3060    /// The resolution type for the update reminder frequency (e.g., weekly, biweekly).
3061    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3062    pub frequency_resolution: MaybeUndefined<FrequencyResolutionType>,
3063    /// The day of the week on which to prompt for initiative updates.
3064    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3065    pub update_reminders_day: MaybeUndefined<Day>,
3066    /// The hour of the day (0-23) at which to prompt for initiative updates.
3067    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3068    pub update_reminders_hour: MaybeUndefined<i64>,
3069}
3070/// Input for updating an existing initiative update.
3071#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3072#[serde(rename_all = "camelCase")]
3073pub struct InitiativeUpdateUpdateInput {
3074    /// The content of the update in markdown format.
3075    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3076    pub body: MaybeUndefined<String>,
3077    /// The content of the update as a Prosemirror document.
3078    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3079    pub body_data: MaybeUndefined<serde_json::Value>,
3080    /// The health of the initiative at the time of the update.
3081    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3082    pub health: MaybeUndefined<InitiativeUpdateHealthType>,
3083    /// Whether the diff between the current update and the previous one should be hidden.
3084    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3085    pub is_diff_hidden: MaybeUndefined<bool>,
3086}
3087/// Initiative update date sorting options.
3088#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3089#[serde(rename_all = "camelCase")]
3090pub struct InitiativeUpdatedAtSort {
3091    /// Whether nulls should be sorted first or last
3092    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3093    pub nulls: MaybeUndefined<PaginationNulls>,
3094    /// The order for the individual sort
3095    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3096    pub order: MaybeUndefined<PaginationSortOrder>,
3097}
3098/// Collection filtering options for filtering initiatives by initiative updates.
3099#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3100#[serde(rename_all = "camelCase")]
3101pub struct InitiativeUpdatesCollectionFilter {
3102    /// Comparator for the identifier.
3103    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3104    pub id: MaybeUndefined<IDComparator>,
3105    /// Comparator for the created at date.
3106    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3107    pub created_at: MaybeUndefined<DateComparator>,
3108    /// Comparator for the updated at date.
3109    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3110    pub updated_at: MaybeUndefined<DateComparator>,
3111    /// Compound filters, all of which need to be matched by the initiative update.
3112    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3113    pub and: MaybeUndefined<Vec<InitiativeUpdatesCollectionFilter>>,
3114    /// Compound filters, one of which need to be matched by the update.
3115    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3116    pub or: MaybeUndefined<Vec<InitiativeUpdatesCollectionFilter>>,
3117    /// Filters that needs to be matched by some initiative updates.
3118    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3119    pub some: MaybeUndefined<InitiativeUpdatesFilter>,
3120    /// Filters that needs to be matched by all initiative updates.
3121    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3122    pub every: MaybeUndefined<InitiativeUpdatesFilter>,
3123    /// Comparator for the collection length.
3124    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3125    pub length: MaybeUndefined<NumberComparator>,
3126}
3127/// Options for filtering initiatives by initiative updates.
3128#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3129#[serde(rename_all = "camelCase")]
3130pub struct InitiativeUpdatesFilter {
3131    /// Comparator for the identifier.
3132    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3133    pub id: MaybeUndefined<IDComparator>,
3134    /// Comparator for the created at date.
3135    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3136    pub created_at: MaybeUndefined<DateComparator>,
3137    /// Comparator for the updated at date.
3138    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3139    pub updated_at: MaybeUndefined<DateComparator>,
3140    /// Compound filters, all of which need to be matched by the initiative updates.
3141    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3142    pub and: MaybeUndefined<Vec<InitiativeUpdatesFilter>>,
3143    /// Compound filters, one of which need to be matched by the initiative updates.
3144    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3145    pub or: MaybeUndefined<Vec<InitiativeUpdatesFilter>>,
3146}
3147#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3148#[serde(rename_all = "camelCase")]
3149pub struct IntegrationCustomerDataAttributesRefreshInput {
3150    /// The integration service to refresh customer data attributes from.
3151    pub service: String,
3152}
3153/// Input for requesting a currently unavailable integration.
3154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3155#[serde(rename_all = "camelCase")]
3156pub struct IntegrationRequestInput {
3157    /// Email associated with the request.
3158    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3159    pub email: MaybeUndefined<String>,
3160    /// Name of the requested integration.
3161    pub name: String,
3162}
3163#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3164#[serde(rename_all = "camelCase")]
3165pub struct IntegrationSettingsInput {
3166    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3167    pub slack: MaybeUndefined<SlackSettingsInput>,
3168    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3169    pub slack_asks: MaybeUndefined<SlackAsksSettingsInput>,
3170    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3171    pub slack_post: MaybeUndefined<SlackPostSettingsInput>,
3172    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3173    pub slack_project_post: MaybeUndefined<SlackPostSettingsInput>,
3174    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3175    pub slack_initiative_post: MaybeUndefined<SlackPostSettingsInput>,
3176    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3177    pub slack_custom_view_notifications: MaybeUndefined<SlackPostSettingsInput>,
3178    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3179    pub slack_org_project_updates_post: MaybeUndefined<SlackPostSettingsInput>,
3180    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3181    pub slack_org_initiative_updates_post: MaybeUndefined<SlackPostSettingsInput>,
3182    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3183    pub google_sheets: MaybeUndefined<GoogleSheetsSettingsInput>,
3184    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3185    pub git_hub: MaybeUndefined<GitHubSettingsInput>,
3186    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3187    pub git_hub_import: MaybeUndefined<GitHubImportSettingsInput>,
3188    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3189    pub git_hub_personal: MaybeUndefined<GitHubPersonalSettingsInput>,
3190    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3191    pub git_lab: MaybeUndefined<GitLabSettingsInput>,
3192    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3193    pub sentry: MaybeUndefined<SentrySettingsInput>,
3194    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3195    pub zendesk: MaybeUndefined<ZendeskSettingsInput>,
3196    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3197    pub intercom: MaybeUndefined<IntercomSettingsInput>,
3198    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3199    pub front: MaybeUndefined<FrontSettingsInput>,
3200    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3201    pub gong: MaybeUndefined<GongSettingsInput>,
3202    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3203    pub microsoft_teams: MaybeUndefined<MicrosoftTeamsSettingsInput>,
3204    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3205    pub microsoft_teams_project_post: MaybeUndefined<MicrosoftTeamsPostSettingsInput>,
3206    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3207    pub jira: MaybeUndefined<JiraSettingsInput>,
3208    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3209    pub notion: MaybeUndefined<NotionSettingsInput>,
3210    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3211    pub opsgenie: MaybeUndefined<OpsgenieInput>,
3212    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3213    pub pager_duty: MaybeUndefined<PagerDutyInput>,
3214    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3215    pub launch_darkly: MaybeUndefined<LaunchDarklySettingsInput>,
3216    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3217    pub jira_personal: MaybeUndefined<JiraPersonalSettingsInput>,
3218    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3219    pub salesforce: MaybeUndefined<SalesforceSettingsInput>,
3220}
3221/// Input for creating a new integration template.
3222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3223#[serde(rename_all = "camelCase")]
3224pub struct IntegrationTemplateCreateInput {
3225    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3226    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3227    pub id: MaybeUndefined<String>,
3228    /// The identifier of the integration.
3229    pub integration_id: String,
3230    /// The identifier of the template.
3231    pub template_id: String,
3232    /// The foreign identifier in the other service.
3233    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3234    pub foreign_entity_id: MaybeUndefined<String>,
3235}
3236#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3237#[serde(rename_all = "camelCase")]
3238pub struct IntegrationUpdateInput {
3239    /// The settings to update.
3240    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3241    pub settings: MaybeUndefined<IntegrationSettingsInput>,
3242}
3243#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3244#[serde(rename_all = "camelCase")]
3245pub struct IntegrationsSettingsCreateInput {
3246    /// Whether to send a Slack message when a new issue is created for the project or the team.
3247    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3248    pub slack_issue_created: MaybeUndefined<bool>,
3249    /// Whether to send a Slack message when an issue is added to a view.
3250    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3251    pub slack_issue_added_to_view: MaybeUndefined<bool>,
3252    /// Whether to send a Slack message when a comment is created on any of the project or team's issues.
3253    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3254    pub slack_issue_new_comment: MaybeUndefined<bool>,
3255    /// Whether to send a Slack message when any of the project or team's issues change to completed or cancelled.
3256    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3257    pub slack_issue_status_changed_done: MaybeUndefined<bool>,
3258    /// Whether to send a Slack message when any of the project or team's issues has a change in status.
3259    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3260    pub slack_issue_status_changed_all: MaybeUndefined<bool>,
3261    /// Whether to send a Slack message when a project update is created.
3262    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3263    pub slack_project_update_created: MaybeUndefined<bool>,
3264    /// Whether to send a Microsoft Teams message when a project update is created.
3265    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3266    pub microsoft_teams_project_update_created: MaybeUndefined<bool>,
3267    /// Whether to send a Slack message when a project update is created to team channels.
3268    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3269    pub slack_project_update_created_to_team: MaybeUndefined<bool>,
3270    /// Whether to send a Slack message when a project update is created to workspace channel.
3271    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3272    pub slack_project_update_created_to_workspace: MaybeUndefined<bool>,
3273    /// Whether to send a Slack message when an initiative update is created.
3274    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3275    pub slack_initiative_update_created: MaybeUndefined<bool>,
3276    /// Whether to send a Slack message when a new issue is added to triage.
3277    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3278    pub slack_issue_added_to_triage: MaybeUndefined<bool>,
3279    /// Whether to send a Slack message when an SLA is at high risk.
3280    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3281    pub slack_issue_sla_high_risk: MaybeUndefined<bool>,
3282    /// Whether to receive notification when an SLA has breached on Slack.
3283    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3284    pub slack_issue_sla_breached: MaybeUndefined<bool>,
3285    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3286    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3287    pub id: MaybeUndefined<String>,
3288    /// The identifier of the team to create settings for.
3289    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3290    pub team_id: MaybeUndefined<String>,
3291    /// The identifier of the project to create settings for.
3292    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3293    pub project_id: MaybeUndefined<String>,
3294    /// The identifier of the initiative to create settings for.
3295    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3296    pub initiative_id: MaybeUndefined<String>,
3297    /// The identifier of the custom view to create settings for.
3298    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3299    pub custom_view_id: MaybeUndefined<String>,
3300    /// The type of view to which the integration settings context is associated with.
3301    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3302    pub context_view_type: MaybeUndefined<ContextViewType>,
3303}
3304#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3305#[serde(rename_all = "camelCase")]
3306pub struct IntegrationsSettingsUpdateInput {
3307    /// Whether to send a Slack message when a new issue is created for the project or the team.
3308    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3309    pub slack_issue_created: MaybeUndefined<bool>,
3310    /// Whether to send a Slack message when an issue is added to a view.
3311    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3312    pub slack_issue_added_to_view: MaybeUndefined<bool>,
3313    /// Whether to send a Slack message when a comment is created on any of the project or team's issues.
3314    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3315    pub slack_issue_new_comment: MaybeUndefined<bool>,
3316    /// Whether to send a Slack message when any of the project or team's issues change to completed or cancelled.
3317    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3318    pub slack_issue_status_changed_done: MaybeUndefined<bool>,
3319    /// Whether to send a Slack message when any of the project or team's issues has a change in status.
3320    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3321    pub slack_issue_status_changed_all: MaybeUndefined<bool>,
3322    /// Whether to send a Slack message when a project update is created.
3323    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3324    pub slack_project_update_created: MaybeUndefined<bool>,
3325    /// Whether to send a Microsoft Teams message when a project update is created.
3326    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3327    pub microsoft_teams_project_update_created: MaybeUndefined<bool>,
3328    /// Whether to send a Slack message when a project update is created to team channels.
3329    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3330    pub slack_project_update_created_to_team: MaybeUndefined<bool>,
3331    /// Whether to send a Slack message when a project update is created to workspace channel.
3332    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3333    pub slack_project_update_created_to_workspace: MaybeUndefined<bool>,
3334    /// Whether to send a Slack message when an initiative update is created.
3335    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3336    pub slack_initiative_update_created: MaybeUndefined<bool>,
3337    /// Whether to send a Slack message when a new issue is added to triage.
3338    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3339    pub slack_issue_added_to_triage: MaybeUndefined<bool>,
3340    /// Whether to send a Slack message when an SLA is at high risk.
3341    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3342    pub slack_issue_sla_high_risk: MaybeUndefined<bool>,
3343    /// Whether to receive notification when an SLA has breached on Slack.
3344    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3345    pub slack_issue_sla_breached: MaybeUndefined<bool>,
3346}
3347#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3348#[serde(rename_all = "camelCase")]
3349pub struct IntercomSettingsInput {
3350    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
3351    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3352    pub send_note_on_status_change: MaybeUndefined<bool>,
3353    /// Whether an internal message should be added when someone comments on an issue.
3354    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3355    pub send_note_on_comment: MaybeUndefined<bool>,
3356    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
3357    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3358    pub automate_ticket_reopening_on_completion: MaybeUndefined<bool>,
3359    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
3360    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3361    pub automate_ticket_reopening_on_cancellation: MaybeUndefined<bool>,
3362    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
3363    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3364    pub automate_ticket_reopening_on_comment: MaybeUndefined<bool>,
3365    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
3366    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3367    pub disable_customer_requests_auto_creation: MaybeUndefined<bool>,
3368    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
3369    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3370    pub automate_ticket_reopening_on_project_completion: MaybeUndefined<bool>,
3371    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
3372    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3373    pub automate_ticket_reopening_on_project_cancellation: MaybeUndefined<bool>,
3374    /// Whether Linear Agent should be enabled for this integration.
3375    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3376    pub enable_ai_intake: MaybeUndefined<bool>,
3377}
3378/// Input for creating multiple issues at once in a batch operation. Up to 50 issues can be created in a single batch.
3379#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3380#[serde(rename_all = "camelCase")]
3381pub struct IssueBatchCreateInput {
3382    /// The issues to create.
3383    pub issues: Vec<IssueCreateInput>,
3384}
3385/// Issue filtering options.
3386#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3387#[serde(rename_all = "camelCase")]
3388pub struct IssueCollectionFilter {
3389    /// Comparator for the identifier.
3390    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3391    pub id: MaybeUndefined<IssueIDComparator>,
3392    /// Comparator for the created at date.
3393    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3394    pub created_at: MaybeUndefined<DateComparator>,
3395    /// Comparator for the updated at date.
3396    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3397    pub updated_at: MaybeUndefined<DateComparator>,
3398    /// Comparator for the issues number.
3399    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3400    pub number: MaybeUndefined<NumberComparator>,
3401    /// Comparator for the issues title.
3402    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3403    pub title: MaybeUndefined<StringComparator>,
3404    /// Comparator for the issues description.
3405    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3406    pub description: MaybeUndefined<NullableStringComparator>,
3407    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low.
3408    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3409    pub priority: MaybeUndefined<NullableNumberComparator>,
3410    /// Comparator for the issues estimate.
3411    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3412    pub estimate: MaybeUndefined<EstimateComparator>,
3413    /// Comparator for the issues started at date.
3414    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3415    pub started_at: MaybeUndefined<NullableDateComparator>,
3416    /// Comparator for the issues triaged at date.
3417    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3418    pub triaged_at: MaybeUndefined<NullableDateComparator>,
3419    /// Comparator for the issues completed at date.
3420    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3421    pub completed_at: MaybeUndefined<NullableDateComparator>,
3422    /// Comparator for the issues canceled at date.
3423    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3424    pub canceled_at: MaybeUndefined<NullableDateComparator>,
3425    /// Comparator for the issue's SLA breach date.
3426    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3427    pub sla_breaches_at: MaybeUndefined<NullableDateComparator>,
3428    /// Comparator for the issues archived at date.
3429    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3430    pub archived_at: MaybeUndefined<NullableDateComparator>,
3431    /// Comparator for the issues auto closed at date.
3432    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3433    pub auto_closed_at: MaybeUndefined<NullableDateComparator>,
3434    /// Comparator for the issues auto archived at date.
3435    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3436    pub auto_archived_at: MaybeUndefined<NullableDateComparator>,
3437    /// Comparator for the issues added to cycle at date.
3438    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3439    pub added_to_cycle_at: MaybeUndefined<NullableDateComparator>,
3440    /// Comparator for the period when issue was added to a cycle.
3441    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3442    pub added_to_cycle_period: MaybeUndefined<CyclePeriodComparator>,
3443    /// Comparator for the issues due date.
3444    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3445    pub due_date: MaybeUndefined<NullableTimelessDateComparator>,
3446    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
3447    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3448    pub accumulated_state_updated_at: MaybeUndefined<NullableDateComparator>,
3449    /// Comparator for the issues snoozed until date.
3450    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3451    pub snoozed_until_at: MaybeUndefined<NullableDateComparator>,
3452    /// Filters that the issues assignee must satisfy.
3453    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3454    pub assignee: MaybeUndefined<Box<NullableUserFilter>>,
3455    /// Filters that the issue's delegated agent must satisfy.
3456    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3457    pub delegate: MaybeUndefined<Box<NullableUserFilter>>,
3458    /// Filters that the last applied template must satisfy.
3459    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3460    pub last_applied_template: MaybeUndefined<NullableTemplateFilter>,
3461    /// `ALPHA` Filters that the recurring issue template must satisfy.
3462    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3463    pub recurring_issue_template: MaybeUndefined<NullableTemplateFilter>,
3464    /// Filters that the source must satisfy.
3465    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3466    pub source_metadata: MaybeUndefined<SourceMetadataComparator>,
3467    /// Filters that the issues creator must satisfy.
3468    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3469    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
3470    /// Filters that the issue parent must satisfy.
3471    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3472    pub parent: MaybeUndefined<Box<NullableIssueFilter>>,
3473    /// Filters that the issues snoozer must satisfy.
3474    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3475    pub snoozed_by: MaybeUndefined<Box<NullableUserFilter>>,
3476    /// Filters that issue labels must satisfy.
3477    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3478    pub labels: MaybeUndefined<Box<IssueLabelCollectionFilter>>,
3479    /// Filters that issue subscribers must satisfy.
3480    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3481    pub subscribers: MaybeUndefined<Box<UserCollectionFilter>>,
3482    /// Comparator for filtering issues which have been shared with users outside of the team.
3483    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3484    pub has_shared_users: MaybeUndefined<RelationExistsComparator>,
3485    /// Filters that users the issue has been shared with must satisfy.
3486    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3487    pub shared_with: MaybeUndefined<Box<UserCollectionFilter>>,
3488    /// Filters that the issues team must satisfy.
3489    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3490    pub team: MaybeUndefined<Box<TeamFilter>>,
3491    /// Filters that the issues project milestone must satisfy.
3492    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3493    pub project_milestone: MaybeUndefined<Box<NullableProjectMilestoneFilter>>,
3494    /// Filters that the issues comments must satisfy.
3495    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3496    pub comments: MaybeUndefined<Box<CommentCollectionFilter>>,
3497    /// Filters that the issue's activities must satisfy.
3498    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3499    pub activity: MaybeUndefined<Box<ActivityCollectionFilter>>,
3500    /// `Internal` Filters that the issue's suggestions must satisfy.
3501    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3502    pub suggestions: MaybeUndefined<Box<IssueSuggestionCollectionFilter>>,
3503    /// Filters that the issues cycle must satisfy.
3504    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3505    pub cycle: MaybeUndefined<Box<NullableCycleFilter>>,
3506    /// Filters that the issues project must satisfy.
3507    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3508    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
3509    /// Filters that the issues state must satisfy.
3510    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3511    pub state: MaybeUndefined<Box<WorkflowStateFilter>>,
3512    /// Filters that the child issues must satisfy.
3513    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3514    pub children: MaybeUndefined<Box<IssueCollectionFilter>>,
3515    /// Filters that the issues attachments must satisfy.
3516    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3517    pub attachments: MaybeUndefined<Box<AttachmentCollectionFilter>>,
3518    /// `Internal` Comparator for the issues content.
3519    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3520    pub searchable_content: MaybeUndefined<ContentComparator>,
3521    /// Comparator for filtering issues with relations.
3522    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3523    pub has_related_relations: MaybeUndefined<RelationExistsComparator>,
3524    /// Comparator for filtering issues which are duplicates.
3525    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3526    pub has_duplicate_relations: MaybeUndefined<RelationExistsComparator>,
3527    /// Comparator for filtering issues which are blocked.
3528    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3529    pub has_blocked_by_relations: MaybeUndefined<RelationExistsComparator>,
3530    /// Comparator for filtering issues which are blocking.
3531    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3532    pub has_blocking_relations: MaybeUndefined<RelationExistsComparator>,
3533    /// `Internal` Comparator for filtering issues which have suggested related issues.
3534    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3535    pub has_suggested_related_issues: MaybeUndefined<RelationExistsComparator>,
3536    /// `Internal` Comparator for filtering issues which have suggested similar issues.
3537    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3538    pub has_suggested_similar_issues: MaybeUndefined<RelationExistsComparator>,
3539    /// `Internal` Comparator for filtering issues which have suggested assignees.
3540    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3541    pub has_suggested_assignees: MaybeUndefined<RelationExistsComparator>,
3542    /// `Internal` Comparator for filtering issues which have suggested projects.
3543    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3544    pub has_suggested_projects: MaybeUndefined<RelationExistsComparator>,
3545    /// `Internal` Comparator for filtering issues which have suggested labels.
3546    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3547    pub has_suggested_labels: MaybeUndefined<RelationExistsComparator>,
3548    /// `Internal` Comparator for filtering issues which have suggested teams.
3549    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3550    pub has_suggested_teams: MaybeUndefined<RelationExistsComparator>,
3551    /// Comparator for the issues sla status.
3552    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3553    pub sla_status: MaybeUndefined<SlaStatusComparator>,
3554    /// Filters that the issues reactions must satisfy.
3555    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3556    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
3557    /// Filters that the issue's customer needs must satisfy.
3558    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3559    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
3560    /// `ALPHA` Filters that the issue's releases must satisfy.
3561    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3562    pub releases: MaybeUndefined<Box<ReleaseCollectionFilter>>,
3563    /// Count of customers
3564    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3565    pub customer_count: MaybeUndefined<NumberComparator>,
3566    /// Count of important customers
3567    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3568    pub customer_important_count: MaybeUndefined<NumberComparator>,
3569    /// `Internal` Lead time (created -> completed) comparator.
3570    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3571    pub lead_time: MaybeUndefined<NullableDurationComparator>,
3572    /// `Internal` Cycle time (started -> completed) comparator.
3573    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3574    pub cycle_time: MaybeUndefined<NullableDurationComparator>,
3575    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
3576    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3577    pub age_time: MaybeUndefined<NullableDurationComparator>,
3578    /// `Internal` Triage time (entered triaged -> triaged) comparator.
3579    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3580    pub triage_time: MaybeUndefined<NullableDurationComparator>,
3581    /// Compound filters, all of which need to be matched by the issue.
3582    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3583    pub and: MaybeUndefined<Vec<IssueCollectionFilter>>,
3584    /// Compound filters, one of which need to be matched by the issue.
3585    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3586    pub or: MaybeUndefined<Vec<IssueCollectionFilter>>,
3587    /// Filters that needs to be matched by some issues.
3588    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3589    pub some: MaybeUndefined<Box<IssueFilter>>,
3590    /// Filters that needs to be matched by all issues.
3591    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3592    pub every: MaybeUndefined<Box<IssueFilter>>,
3593    /// Comparator for the collection length.
3594    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3595    pub length: MaybeUndefined<NumberComparator>,
3596}
3597/// Input for creating a new issue. At minimum, a team must be specified. A title is required unless a template is provided. All other fields are optional and will use defaults from the team or template if not specified.
3598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3599#[serde(rename_all = "camelCase")]
3600pub struct IssueCreateInput {
3601    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3602    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3603    pub id: MaybeUndefined<String>,
3604    /// The title of the issue.
3605    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3606    pub title: MaybeUndefined<String>,
3607    /// The issue description in markdown format.
3608    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3609    pub description: MaybeUndefined<String>,
3610    /// `Internal` The issue description as a Prosemirror document.
3611    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3612    pub description_data: MaybeUndefined<serde_json::Value>,
3613    /// The identifier of the user to assign the issue to.
3614    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3615    pub assignee_id: MaybeUndefined<String>,
3616    /// The identifier of the agent user to delegate the issue to.
3617    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3618    pub delegate_id: MaybeUndefined<String>,
3619    /// The identifier of the parent issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3620    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3621    pub parent_id: MaybeUndefined<String>,
3622    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low.
3623    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3624    pub priority: MaybeUndefined<i64>,
3625    /// The estimated complexity of the issue.
3626    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3627    pub estimate: MaybeUndefined<i64>,
3628    /// The identifiers of the users subscribing to this ticket.
3629    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3630    pub subscriber_ids: MaybeUndefined<Vec<String>>,
3631    /// The identifiers of the issue labels associated with this ticket.
3632    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3633    pub label_ids: MaybeUndefined<Vec<String>>,
3634    /// The identifier of the team associated with the issue.
3635    pub team_id: String,
3636    /// The cycle associated with the issue.
3637    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3638    pub cycle_id: MaybeUndefined<String>,
3639    /// The project associated with the issue.
3640    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3641    pub project_id: MaybeUndefined<String>,
3642    /// The project milestone associated with the issue.
3643    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3644    pub project_milestone_id: MaybeUndefined<String>,
3645    /// The ID of the last template applied to the issue.
3646    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3647    pub last_applied_template_id: MaybeUndefined<String>,
3648    /// The team state of the issue.
3649    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3650    pub state_id: MaybeUndefined<String>,
3651    /// The comment the issue is referencing.
3652    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3653    pub reference_comment_id: MaybeUndefined<String>,
3654    /// The comment the issue is created from.
3655    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3656    pub source_comment_id: MaybeUndefined<String>,
3657    /// `Internal` The pull request comment the issue is created from.
3658    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3659    pub source_pull_request_comment_id: MaybeUndefined<String>,
3660    /// The position of the issue related to other issues.
3661    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3662    pub sort_order: MaybeUndefined<f64>,
3663    /// The position of the issue related to other issues, when ordered by priority.
3664    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3665    pub priority_sort_order: MaybeUndefined<f64>,
3666    /// The position of the issue in parent's sub-issue list.
3667    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3668    pub sub_issue_sort_order: MaybeUndefined<f64>,
3669    /// The date at which the issue is due.
3670    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3671    pub due_date: MaybeUndefined<chrono::NaiveDate>,
3672    /// Create issue as a user with the provided name. This option is only available to OAuth applications creating issues in `actor=app` mode.
3673    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3674    pub create_as_user: MaybeUndefined<String>,
3675    /// Provide an external user avatar URL. Can only be used in conjunction with the `createAsUser` options. This option is only available to OAuth applications creating comments in `actor=app` mode.
3676    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3677    pub display_icon_url: MaybeUndefined<String>,
3678    /// Whether the passed sort order should be preserved.
3679    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3680    pub preserve_sort_order_on_create: MaybeUndefined<bool>,
3681    /// The time at which the issue was created (e.g. if importing from another system). Must be a time in the past. If none is provided, the backend will generate the time as now.
3682    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3683    pub created_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
3684    /// `Internal` The time at which an issue will be considered in breach of SLA.
3685    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3686    pub sla_breaches_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
3687    /// `Internal` The time at which the issue's SLA was started.
3688    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3689    pub sla_started_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
3690    /// The identifier of a template the issue should be created from. If other values are provided in the input, they will override template values.
3691    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3692    pub template_id: MaybeUndefined<String>,
3693    /// The time at which the issue was completed (e.g. if importing from another system). Must be a time in the past and after createdAt. Cannot be provided with an incompatible workflow state.
3694    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3695    pub completed_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
3696    /// The SLA day count type for the issue. Whether SLA should be business days only or calendar days (default).
3697    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3698    pub sla_type: MaybeUndefined<SLADayCountType>,
3699    /// Whether to use the default template for the team. When set to true, the default template of this team based on user's membership will be applied.
3700    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3701    pub use_default_template: MaybeUndefined<bool>,
3702    /// `ALPHA` The identifiers of the releases to associate with this issue.
3703    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3704    pub release_ids: MaybeUndefined<Vec<String>>,
3705    /// `Internal` Whether this issue should inherit shared access from its parent issue. Set to false to opt out of automatic shared access inheritance when creating a sub-issue.
3706    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3707    pub inherits_shared_access: MaybeUndefined<bool>,
3708}
3709/// Issue filtering options.
3710#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3711#[serde(rename_all = "camelCase")]
3712pub struct IssueFilter {
3713    /// Comparator for the identifier.
3714    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3715    pub id: MaybeUndefined<IssueIDComparator>,
3716    /// Comparator for the created at date.
3717    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3718    pub created_at: MaybeUndefined<DateComparator>,
3719    /// Comparator for the updated at date.
3720    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3721    pub updated_at: MaybeUndefined<DateComparator>,
3722    /// Comparator for the issues number.
3723    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3724    pub number: MaybeUndefined<NumberComparator>,
3725    /// Comparator for the issues title.
3726    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3727    pub title: MaybeUndefined<StringComparator>,
3728    /// Comparator for the issues description.
3729    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3730    pub description: MaybeUndefined<NullableStringComparator>,
3731    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low.
3732    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3733    pub priority: MaybeUndefined<NullableNumberComparator>,
3734    /// Comparator for the issues estimate.
3735    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3736    pub estimate: MaybeUndefined<EstimateComparator>,
3737    /// Comparator for the issues started at date.
3738    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3739    pub started_at: MaybeUndefined<NullableDateComparator>,
3740    /// Comparator for the issues triaged at date.
3741    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3742    pub triaged_at: MaybeUndefined<NullableDateComparator>,
3743    /// Comparator for the issues completed at date.
3744    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3745    pub completed_at: MaybeUndefined<NullableDateComparator>,
3746    /// Comparator for the issues canceled at date.
3747    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3748    pub canceled_at: MaybeUndefined<NullableDateComparator>,
3749    /// Comparator for the issue's SLA breach date.
3750    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3751    pub sla_breaches_at: MaybeUndefined<NullableDateComparator>,
3752    /// Comparator for the issues archived at date.
3753    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3754    pub archived_at: MaybeUndefined<NullableDateComparator>,
3755    /// Comparator for the issues auto closed at date.
3756    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3757    pub auto_closed_at: MaybeUndefined<NullableDateComparator>,
3758    /// Comparator for the issues auto archived at date.
3759    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3760    pub auto_archived_at: MaybeUndefined<NullableDateComparator>,
3761    /// Comparator for the issues added to cycle at date.
3762    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3763    pub added_to_cycle_at: MaybeUndefined<NullableDateComparator>,
3764    /// Comparator for the period when issue was added to a cycle.
3765    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3766    pub added_to_cycle_period: MaybeUndefined<CyclePeriodComparator>,
3767    /// Comparator for the issues due date.
3768    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3769    pub due_date: MaybeUndefined<NullableTimelessDateComparator>,
3770    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
3771    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3772    pub accumulated_state_updated_at: MaybeUndefined<NullableDateComparator>,
3773    /// Comparator for the issues snoozed until date.
3774    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3775    pub snoozed_until_at: MaybeUndefined<NullableDateComparator>,
3776    /// Filters that the issues assignee must satisfy.
3777    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3778    pub assignee: MaybeUndefined<Box<NullableUserFilter>>,
3779    /// Filters that the issue's delegated agent must satisfy.
3780    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3781    pub delegate: MaybeUndefined<Box<NullableUserFilter>>,
3782    /// Filters that the last applied template must satisfy.
3783    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3784    pub last_applied_template: MaybeUndefined<NullableTemplateFilter>,
3785    /// `ALPHA` Filters that the recurring issue template must satisfy.
3786    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3787    pub recurring_issue_template: MaybeUndefined<NullableTemplateFilter>,
3788    /// Filters that the source must satisfy.
3789    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3790    pub source_metadata: MaybeUndefined<SourceMetadataComparator>,
3791    /// Filters that the issues creator must satisfy.
3792    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3793    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
3794    /// Filters that the issue parent must satisfy.
3795    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3796    pub parent: MaybeUndefined<Box<NullableIssueFilter>>,
3797    /// Filters that the issues snoozer must satisfy.
3798    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3799    pub snoozed_by: MaybeUndefined<Box<NullableUserFilter>>,
3800    /// Filters that issue labels must satisfy.
3801    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3802    pub labels: MaybeUndefined<Box<IssueLabelCollectionFilter>>,
3803    /// Filters that issue subscribers must satisfy.
3804    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3805    pub subscribers: MaybeUndefined<Box<UserCollectionFilter>>,
3806    /// Comparator for filtering issues which have been shared with users outside of the team.
3807    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3808    pub has_shared_users: MaybeUndefined<RelationExistsComparator>,
3809    /// Filters that users the issue has been shared with must satisfy.
3810    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3811    pub shared_with: MaybeUndefined<Box<UserCollectionFilter>>,
3812    /// Filters that the issues team must satisfy.
3813    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3814    pub team: MaybeUndefined<Box<TeamFilter>>,
3815    /// Filters that the issues project milestone must satisfy.
3816    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3817    pub project_milestone: MaybeUndefined<Box<NullableProjectMilestoneFilter>>,
3818    /// Filters that the issues comments must satisfy.
3819    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3820    pub comments: MaybeUndefined<Box<CommentCollectionFilter>>,
3821    /// Filters that the issue's activities must satisfy.
3822    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3823    pub activity: MaybeUndefined<Box<ActivityCollectionFilter>>,
3824    /// `Internal` Filters that the issue's suggestions must satisfy.
3825    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3826    pub suggestions: MaybeUndefined<Box<IssueSuggestionCollectionFilter>>,
3827    /// Filters that the issues cycle must satisfy.
3828    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3829    pub cycle: MaybeUndefined<Box<NullableCycleFilter>>,
3830    /// Filters that the issues project must satisfy.
3831    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3832    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
3833    /// Filters that the issues state must satisfy.
3834    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3835    pub state: MaybeUndefined<Box<WorkflowStateFilter>>,
3836    /// Filters that the child issues must satisfy.
3837    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3838    pub children: MaybeUndefined<Box<IssueCollectionFilter>>,
3839    /// Filters that the issues attachments must satisfy.
3840    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3841    pub attachments: MaybeUndefined<Box<AttachmentCollectionFilter>>,
3842    /// `Internal` Comparator for the issues content.
3843    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3844    pub searchable_content: MaybeUndefined<ContentComparator>,
3845    /// Comparator for filtering issues with relations.
3846    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3847    pub has_related_relations: MaybeUndefined<RelationExistsComparator>,
3848    /// Comparator for filtering issues which are duplicates.
3849    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3850    pub has_duplicate_relations: MaybeUndefined<RelationExistsComparator>,
3851    /// Comparator for filtering issues which are blocked.
3852    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3853    pub has_blocked_by_relations: MaybeUndefined<RelationExistsComparator>,
3854    /// Comparator for filtering issues which are blocking.
3855    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3856    pub has_blocking_relations: MaybeUndefined<RelationExistsComparator>,
3857    /// `Internal` Comparator for filtering issues which have suggested related issues.
3858    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3859    pub has_suggested_related_issues: MaybeUndefined<RelationExistsComparator>,
3860    /// `Internal` Comparator for filtering issues which have suggested similar issues.
3861    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3862    pub has_suggested_similar_issues: MaybeUndefined<RelationExistsComparator>,
3863    /// `Internal` Comparator for filtering issues which have suggested assignees.
3864    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3865    pub has_suggested_assignees: MaybeUndefined<RelationExistsComparator>,
3866    /// `Internal` Comparator for filtering issues which have suggested projects.
3867    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3868    pub has_suggested_projects: MaybeUndefined<RelationExistsComparator>,
3869    /// `Internal` Comparator for filtering issues which have suggested labels.
3870    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3871    pub has_suggested_labels: MaybeUndefined<RelationExistsComparator>,
3872    /// `Internal` Comparator for filtering issues which have suggested teams.
3873    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3874    pub has_suggested_teams: MaybeUndefined<RelationExistsComparator>,
3875    /// Comparator for the issues sla status.
3876    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3877    pub sla_status: MaybeUndefined<SlaStatusComparator>,
3878    /// Filters that the issues reactions must satisfy.
3879    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3880    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
3881    /// Filters that the issue's customer needs must satisfy.
3882    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3883    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
3884    /// `ALPHA` Filters that the issue's releases must satisfy.
3885    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3886    pub releases: MaybeUndefined<Box<ReleaseCollectionFilter>>,
3887    /// Count of customers
3888    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3889    pub customer_count: MaybeUndefined<NumberComparator>,
3890    /// Count of important customers
3891    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3892    pub customer_important_count: MaybeUndefined<NumberComparator>,
3893    /// `Internal` Lead time (created -> completed) comparator.
3894    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3895    pub lead_time: MaybeUndefined<NullableDurationComparator>,
3896    /// `Internal` Cycle time (started -> completed) comparator.
3897    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3898    pub cycle_time: MaybeUndefined<NullableDurationComparator>,
3899    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
3900    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3901    pub age_time: MaybeUndefined<NullableDurationComparator>,
3902    /// `Internal` Triage time (entered triaged -> triaged) comparator.
3903    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3904    pub triage_time: MaybeUndefined<NullableDurationComparator>,
3905    /// Compound filters, all of which need to be matched by the issue.
3906    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3907    pub and: MaybeUndefined<Vec<IssueFilter>>,
3908    /// Compound filters, one of which need to be matched by the issue.
3909    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3910    pub or: MaybeUndefined<Vec<IssueFilter>>,
3911}
3912/// Comparator for issue identifiers.
3913#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3914#[serde(rename_all = "camelCase")]
3915pub struct IssueIDComparator {
3916    /// Equals constraint.
3917    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3918    pub eq: MaybeUndefined<String>,
3919    /// Not-equals constraint.
3920    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3921    pub neq: MaybeUndefined<String>,
3922    /// In-array constraint.
3923    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3924    pub r#in: MaybeUndefined<Vec<String>>,
3925    /// Not-in-array constraint.
3926    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3927    pub nin: MaybeUndefined<Vec<String>>,
3928}
3929/// Input for updating an import job's mapping configuration, such as user and workflow state mappings between the source service and Linear.
3930#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3931#[serde(rename_all = "camelCase")]
3932pub struct IssueImportUpdateInput {
3933    /// The mapping configuration for the import.
3934    pub mapping: serde_json::Value,
3935}
3936/// Issue label filtering options.
3937#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3938#[serde(rename_all = "camelCase")]
3939pub struct IssueLabelCollectionFilter {
3940    /// Comparator for the identifier.
3941    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3942    pub id: MaybeUndefined<IDComparator>,
3943    /// Comparator for the created at date.
3944    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3945    pub created_at: MaybeUndefined<DateComparator>,
3946    /// Comparator for the updated at date.
3947    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3948    pub updated_at: MaybeUndefined<DateComparator>,
3949    /// Comparator for the name.
3950    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3951    pub name: MaybeUndefined<StringComparator>,
3952    /// Comparator for whether the label is a group label.
3953    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3954    pub is_group: MaybeUndefined<BooleanComparator>,
3955    /// Filters that the issue labels creator must satisfy.
3956    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3957    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
3958    /// Filters that the issue labels team must satisfy.
3959    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3960    pub team: MaybeUndefined<Box<NullableTeamFilter>>,
3961    /// Filters that the issue label's parent label must satisfy.
3962    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3963    pub parent: MaybeUndefined<Box<IssueLabelFilter>>,
3964    /// Filter based on the existence of the relation.
3965    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3966    pub null: MaybeUndefined<bool>,
3967    /// Compound filters, all of which need to be matched by the label.
3968    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3969    pub and: MaybeUndefined<Vec<IssueLabelCollectionFilter>>,
3970    /// Compound filters, one of which need to be matched by the label.
3971    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3972    pub or: MaybeUndefined<Vec<IssueLabelCollectionFilter>>,
3973    /// Filters that needs to be matched by some issue labels.
3974    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3975    pub some: MaybeUndefined<Box<IssueLabelFilter>>,
3976    /// Filters that needs to be matched by all issue labels.
3977    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3978    pub every: MaybeUndefined<Box<IssueLabelFilter>>,
3979    /// Comparator for the collection length.
3980    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3981    pub length: MaybeUndefined<NumberComparator>,
3982}
3983/// Input for creating a new label. A name is required. If no team is specified, the label is created as a workspace-level label available to all teams.
3984#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3985#[serde(rename_all = "camelCase")]
3986pub struct IssueLabelCreateInput {
3987    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3988    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3989    pub id: MaybeUndefined<String>,
3990    /// The name of the label.
3991    pub name: String,
3992    /// The description of the label.
3993    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3994    pub description: MaybeUndefined<String>,
3995    /// The color of the label.
3996    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
3997    pub color: MaybeUndefined<String>,
3998    /// The identifier of the parent label.
3999    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4000    pub parent_id: MaybeUndefined<String>,
4001    /// The team associated with the label. If not given, the label will be associated with the entire workspace.
4002    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4003    pub team_id: MaybeUndefined<String>,
4004    /// Whether the label is a group.
4005    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4006    pub is_group: MaybeUndefined<bool>,
4007    /// The time at which the label was retired. Set to null to restore a retired label.
4008    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4009    pub retired_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
4010}
4011/// Issue label filtering options.
4012#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4013#[serde(rename_all = "camelCase")]
4014pub struct IssueLabelFilter {
4015    /// Comparator for the identifier.
4016    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4017    pub id: MaybeUndefined<IDComparator>,
4018    /// Comparator for the created at date.
4019    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4020    pub created_at: MaybeUndefined<DateComparator>,
4021    /// Comparator for the updated at date.
4022    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4023    pub updated_at: MaybeUndefined<DateComparator>,
4024    /// Comparator for the name.
4025    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4026    pub name: MaybeUndefined<StringComparator>,
4027    /// Comparator for whether the label is a group label.
4028    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4029    pub is_group: MaybeUndefined<BooleanComparator>,
4030    /// Filters that the issue labels creator must satisfy.
4031    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4032    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
4033    /// Filters that the issue labels team must satisfy.
4034    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4035    pub team: MaybeUndefined<Box<NullableTeamFilter>>,
4036    /// Filters that the issue label's parent label must satisfy.
4037    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4038    pub parent: MaybeUndefined<Box<IssueLabelFilter>>,
4039    /// Compound filters, all of which need to be matched by the label.
4040    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4041    pub and: MaybeUndefined<Vec<IssueLabelFilter>>,
4042    /// Compound filters, one of which need to be matched by the label.
4043    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4044    pub or: MaybeUndefined<Vec<IssueLabelFilter>>,
4045}
4046/// Input for updating an existing label. All fields are optional; only provided fields will be updated.
4047#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4048#[serde(rename_all = "camelCase")]
4049pub struct IssueLabelUpdateInput {
4050    /// The name of the label.
4051    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4052    pub name: MaybeUndefined<String>,
4053    /// The description of the label.
4054    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4055    pub description: MaybeUndefined<String>,
4056    /// The identifier of the parent label.
4057    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4058    pub parent_id: MaybeUndefined<String>,
4059    /// The color of the label.
4060    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4061    pub color: MaybeUndefined<String>,
4062    /// Whether the label is a group.
4063    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4064    pub is_group: MaybeUndefined<bool>,
4065    /// The time at which the label was retired. Set to null to restore a retired label.
4066    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4067    pub retired_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
4068}
4069/// A reference to an issue discovered during release sync, linking the issue identifier to the commit SHA where the reference was found.
4070#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4071#[serde(rename_all = "camelCase")]
4072pub struct IssueReferenceInput {
4073    /// The issue identifier (e.g. ENG-123).
4074    pub identifier: String,
4075    /// The commit SHA where this issue reference was found.
4076    pub commit_sha: String,
4077}
4078/// Input for creating a new issue relation between two issues. Both the source issue and related issue must be specified along with the relationship type.
4079#[derive(Debug, Clone, Serialize, Deserialize)]
4080#[serde(rename_all = "camelCase")]
4081pub struct IssueRelationCreateInput {
4082    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
4083    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4084    pub id: MaybeUndefined<String>,
4085    /// The type of relation of the issue to the related issue.
4086    pub r#type: IssueRelationType,
4087    /// The identifier of the issue that is related to another issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4088    pub issue_id: String,
4089    /// The identifier of the related issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4090    pub related_issue_id: String,
4091}
4092/// Input for updating an existing issue relation. All fields are optional; only provided fields will be updated.
4093#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4094#[serde(rename_all = "camelCase")]
4095pub struct IssueRelationUpdateInput {
4096    /// The type of relation of the issue to the related issue.
4097    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4098    pub r#type: MaybeUndefined<String>,
4099    /// The identifier of the issue that is related to another issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4100    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4101    pub issue_id: MaybeUndefined<String>,
4102    /// The identifier of the related issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4103    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4104    pub related_issue_id: MaybeUndefined<String>,
4105}
4106/// Issue sorting options.
4107#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4108#[serde(rename_all = "camelCase")]
4109pub struct IssueSortInput {
4110    /// Sort by priority
4111    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4112    pub priority: MaybeUndefined<PrioritySort>,
4113    /// Sort by estimate
4114    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4115    pub estimate: MaybeUndefined<EstimateSort>,
4116    /// Sort by issue title
4117    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4118    pub title: MaybeUndefined<TitleSort>,
4119    /// Sort by label
4120    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4121    pub label: MaybeUndefined<LabelSort>,
4122    /// Sort by label group
4123    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4124    pub label_group: MaybeUndefined<LabelGroupSort>,
4125    /// Sort by SLA status
4126    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4127    pub sla_status: MaybeUndefined<SlaStatusSort>,
4128    /// Sort by issue creation date
4129    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4130    pub created_at: MaybeUndefined<CreatedAtSort>,
4131    /// Sort by issue update date
4132    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4133    pub updated_at: MaybeUndefined<UpdatedAtSort>,
4134    /// Sort by issue completion date
4135    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4136    pub completed_at: MaybeUndefined<CompletedAtSort>,
4137    /// Sort by issue due date
4138    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4139    pub due_date: MaybeUndefined<DueDateSort>,
4140    /// `Internal` Sort by the accumulated time in the current workflow state
4141    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4142    pub accumulated_state_updated_at: MaybeUndefined<TimeInStatusSort>,
4143    /// Sort by Cycle start date
4144    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4145    pub cycle: MaybeUndefined<CycleSort>,
4146    /// Sort by Project Milestone target date
4147    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4148    pub milestone: MaybeUndefined<MilestoneSort>,
4149    /// Sort by assignee name
4150    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4151    pub assignee: MaybeUndefined<AssigneeSort>,
4152    /// Sort by delegate name
4153    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4154    pub delegate: MaybeUndefined<DelegateSort>,
4155    /// Sort by Project name
4156    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4157    pub project: MaybeUndefined<ProjectSort>,
4158    /// Sort by Team name
4159    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4160    pub team: MaybeUndefined<TeamSort>,
4161    /// Sort by manual order
4162    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4163    pub manual: MaybeUndefined<ManualSort>,
4164    /// Sort by workflow state type
4165    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4166    pub workflow_state: MaybeUndefined<WorkflowStateSort>,
4167    /// Sort by customer name
4168    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4169    pub customer: MaybeUndefined<CustomerSort>,
4170    /// Sort by customer revenue
4171    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4172    pub customer_revenue: MaybeUndefined<CustomerRevenueSort>,
4173    /// Sort by number of customers associated with the issue
4174    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4175    pub customer_count: MaybeUndefined<CustomerCountSort>,
4176    /// Sort by number of important customers associated with the issue
4177    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4178    pub customer_important_count: MaybeUndefined<CustomerImportantCountSort>,
4179    /// Sort by the root issue
4180    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4181    pub root_issue: MaybeUndefined<Box<RootIssueSort>>,
4182    /// `ALPHA` Sort by number of links associated with the issue
4183    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4184    pub link_count: MaybeUndefined<LinkCountSort>,
4185    /// `ALPHA` Sort by most recent release date
4186    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4187    pub release: MaybeUndefined<ReleaseSort>,
4188}
4189/// Filter for issue subscription events.
4190#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4191#[serde(rename_all = "camelCase")]
4192pub struct IssueSubscriptionFilter {
4193    /// Filter by team ID.
4194    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4195    pub team_id: MaybeUndefined<IDComparator>,
4196    /// Filter by project ID.
4197    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4198    pub project_id: MaybeUndefined<IDComparator>,
4199    /// Filter by assignee ID.
4200    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4201    pub assignee_id: MaybeUndefined<IDComparator>,
4202    /// Filter by workflow state ID.
4203    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4204    pub state_id: MaybeUndefined<IDComparator>,
4205    /// Filter by parent issue ID.
4206    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4207    pub parent_id: MaybeUndefined<IDComparator>,
4208}
4209/// IssueSuggestion collection filtering options.
4210#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4211#[serde(rename_all = "camelCase")]
4212pub struct IssueSuggestionCollectionFilter {
4213    /// Comparator for the identifier.
4214    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4215    pub id: MaybeUndefined<IDComparator>,
4216    /// Comparator for the created at date.
4217    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4218    pub created_at: MaybeUndefined<DateComparator>,
4219    /// Comparator for the updated at date.
4220    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4221    pub updated_at: MaybeUndefined<DateComparator>,
4222    /// Comparator for the suggestion type.
4223    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4224    pub r#type: MaybeUndefined<StringComparator>,
4225    /// Comparator for the suggestion state.
4226    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4227    pub state: MaybeUndefined<StringComparator>,
4228    /// Filters that the suggested user must satisfy.
4229    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4230    pub suggested_user: MaybeUndefined<Box<NullableUserFilter>>,
4231    /// Filters that the suggested project must satisfy.
4232    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4233    pub suggested_project: MaybeUndefined<Box<NullableProjectFilter>>,
4234    /// Filters that the suggested team must satisfy.
4235    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4236    pub suggested_team: MaybeUndefined<Box<NullableTeamFilter>>,
4237    /// Filters that the suggested label must satisfy.
4238    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4239    pub suggested_label: MaybeUndefined<Box<IssueLabelFilter>>,
4240    /// Compound filters, all of which need to be matched by the suggestion.
4241    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4242    pub and: MaybeUndefined<Vec<IssueSuggestionCollectionFilter>>,
4243    /// Compound filters, one of which need to be matched by the suggestion.
4244    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4245    pub or: MaybeUndefined<Vec<IssueSuggestionCollectionFilter>>,
4246    /// Filters that needs to be matched by some suggestions.
4247    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4248    pub some: MaybeUndefined<Box<IssueSuggestionFilter>>,
4249    /// Filters that needs to be matched by all suggestions.
4250    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4251    pub every: MaybeUndefined<Box<IssueSuggestionFilter>>,
4252    /// Comparator for the collection length.
4253    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4254    pub length: MaybeUndefined<NumberComparator>,
4255}
4256/// IssueSuggestion filtering options.
4257#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4258#[serde(rename_all = "camelCase")]
4259pub struct IssueSuggestionFilter {
4260    /// Comparator for the identifier.
4261    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4262    pub id: MaybeUndefined<IDComparator>,
4263    /// Comparator for the created at date.
4264    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4265    pub created_at: MaybeUndefined<DateComparator>,
4266    /// Comparator for the updated at date.
4267    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4268    pub updated_at: MaybeUndefined<DateComparator>,
4269    /// Comparator for the suggestion type.
4270    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4271    pub r#type: MaybeUndefined<StringComparator>,
4272    /// Comparator for the suggestion state.
4273    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4274    pub state: MaybeUndefined<StringComparator>,
4275    /// Filters that the suggested user must satisfy.
4276    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4277    pub suggested_user: MaybeUndefined<Box<NullableUserFilter>>,
4278    /// Filters that the suggested project must satisfy.
4279    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4280    pub suggested_project: MaybeUndefined<Box<NullableProjectFilter>>,
4281    /// Filters that the suggested team must satisfy.
4282    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4283    pub suggested_team: MaybeUndefined<Box<NullableTeamFilter>>,
4284    /// Filters that the suggested label must satisfy.
4285    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4286    pub suggested_label: MaybeUndefined<Box<IssueLabelFilter>>,
4287    /// Compound filters, all of which need to be matched by the suggestion.
4288    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4289    pub and: MaybeUndefined<Vec<IssueSuggestionFilter>>,
4290    /// Compound filters, one of which need to be matched by the suggestion.
4291    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4292    pub or: MaybeUndefined<Vec<IssueSuggestionFilter>>,
4293}
4294/// `ALPHA` Input for creating a new association between an issue and a release. Both an issue identifier and a release identifier must be provided.
4295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4296#[serde(rename_all = "camelCase")]
4297pub struct IssueToReleaseCreateInput {
4298    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
4299    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4300    pub id: MaybeUndefined<String>,
4301    /// The identifier of the issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4302    pub issue_id: String,
4303    /// The identifier of the release.
4304    pub release_id: String,
4305}
4306/// Input for updating an existing issue. All fields are optional; only provided fields will be updated. Setting a field to null (where supported) will clear the value.
4307#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4308#[serde(rename_all = "camelCase")]
4309pub struct IssueUpdateInput {
4310    /// The issue title.
4311    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4312    pub title: MaybeUndefined<String>,
4313    /// The issue description in markdown format.
4314    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4315    pub description: MaybeUndefined<String>,
4316    /// `Internal` The issue description as a Prosemirror document.
4317    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4318    pub description_data: MaybeUndefined<serde_json::Value>,
4319    /// The identifier of the user to assign the issue to.
4320    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4321    pub assignee_id: MaybeUndefined<String>,
4322    /// The identifier of the agent user to delegate the issue to.
4323    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4324    pub delegate_id: MaybeUndefined<String>,
4325    /// The identifier of the parent issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4326    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4327    pub parent_id: MaybeUndefined<String>,
4328    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low.
4329    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4330    pub priority: MaybeUndefined<i64>,
4331    /// The estimated complexity of the issue.
4332    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4333    pub estimate: MaybeUndefined<i64>,
4334    /// The identifiers of the users subscribing to this ticket.
4335    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4336    pub subscriber_ids: MaybeUndefined<Vec<String>>,
4337    /// The identifiers of the issue labels associated with this ticket.
4338    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4339    pub label_ids: MaybeUndefined<Vec<String>>,
4340    /// The identifiers of the issue labels to be added to this issue.
4341    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4342    pub added_label_ids: MaybeUndefined<Vec<String>>,
4343    /// The identifiers of the issue labels to be removed from this issue.
4344    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4345    pub removed_label_ids: MaybeUndefined<Vec<String>>,
4346    /// The identifiers of the releases associated with this issue.
4347    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4348    pub release_ids: MaybeUndefined<Vec<String>>,
4349    /// The identifiers of the releases to be added to this issue.
4350    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4351    pub added_release_ids: MaybeUndefined<Vec<String>>,
4352    /// The identifiers of the releases to be removed from this issue.
4353    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4354    pub removed_release_ids: MaybeUndefined<Vec<String>>,
4355    /// The identifier of the team associated with the issue.
4356    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4357    pub team_id: MaybeUndefined<String>,
4358    /// The cycle associated with the issue.
4359    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4360    pub cycle_id: MaybeUndefined<String>,
4361    /// The project associated with the issue.
4362    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4363    pub project_id: MaybeUndefined<String>,
4364    /// The project milestone associated with the issue.
4365    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4366    pub project_milestone_id: MaybeUndefined<String>,
4367    /// The ID of the last template applied to the issue.
4368    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4369    pub last_applied_template_id: MaybeUndefined<String>,
4370    /// The team state of the issue.
4371    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4372    pub state_id: MaybeUndefined<String>,
4373    /// The position of the issue related to other issues.
4374    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4375    pub sort_order: MaybeUndefined<f64>,
4376    /// The position of the issue related to other issues, when ordered by priority.
4377    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4378    pub priority_sort_order: MaybeUndefined<f64>,
4379    /// The position of the issue in parent's sub-issue list.
4380    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4381    pub sub_issue_sort_order: MaybeUndefined<f64>,
4382    /// The date at which the issue is due.
4383    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4384    pub due_date: MaybeUndefined<chrono::NaiveDate>,
4385    /// Whether this issue should inherit shared access from its parent issue.
4386    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4387    pub inherits_shared_access: MaybeUndefined<bool>,
4388    /// Whether the issue has been trashed.
4389    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4390    pub trashed: MaybeUndefined<bool>,
4391    /// `Internal` The time at which an issue will be considered in breach of SLA.
4392    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4393    pub sla_breaches_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
4394    /// `Internal` The time at which the issue's SLA was started.
4395    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4396    pub sla_started_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
4397    /// The time until which the issue will be snoozed in Triage view.
4398    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4399    pub snoozed_until_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
4400    /// The identifier of the user who snoozed the issue.
4401    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4402    pub snoozed_by_id: MaybeUndefined<String>,
4403    /// The SLA day count type for the issue. Whether SLA should be business days only or calendar days (default).
4404    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4405    pub sla_type: MaybeUndefined<SLADayCountType>,
4406    /// Whether the issue was automatically closed because its parent issue was closed.
4407    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4408    pub auto_closed_by_parent_closing: MaybeUndefined<bool>,
4409}
4410#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4411#[serde(rename_all = "camelCase")]
4412pub struct JiraConfigurationInput {
4413    /// The Jira personal access token.
4414    pub access_token: String,
4415    /// The Jira user's email address. A username is also accepted on Jira Server / DC.
4416    pub email: String,
4417    /// The Jira installation hostname.
4418    pub hostname: String,
4419    /// Whether this integration will be setup using the manual webhook flow.
4420    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4421    pub manual_setup: MaybeUndefined<bool>,
4422}
4423#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4424#[serde(rename_all = "camelCase")]
4425pub struct JiraFetchProjectStatusesInput {
4426    /// The id of the Jira integration.
4427    pub integration_id: String,
4428    /// The Jira project ID to fetch statuses for.
4429    pub project_id: String,
4430}
4431#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4432#[serde(rename_all = "camelCase")]
4433pub struct JiraLinearMappingInput {
4434    /// The Jira id for this project.
4435    pub jira_project_id: String,
4436    /// The Linear team id to map to the given project.
4437    pub linear_team_id: String,
4438    /// Whether the sync for this mapping is bidirectional.
4439    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4440    pub bidirectional: MaybeUndefined<bool>,
4441    /// Whether this mapping is the default one for issue creation.
4442    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4443    pub default: MaybeUndefined<bool>,
4444    /// Whether this mapping uses legacy unidirectional sync behavior where no changes sync from Linear to Jira.
4445    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4446    pub legacy_unidirectional: MaybeUndefined<bool>,
4447}
4448#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4449#[serde(rename_all = "camelCase")]
4450pub struct JiraPersonalSettingsInput {
4451    /// The name of the Jira site currently authorized through the integration.
4452    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4453    pub site_name: MaybeUndefined<String>,
4454}
4455#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4456#[serde(rename_all = "camelCase")]
4457pub struct JiraProjectDataInput {
4458    /// The Jira id for this project.
4459    pub id: String,
4460    /// The Jira key for this project, such as ENG.
4461    pub key: String,
4462    /// The Jira name for this project, such as Engineering.
4463    pub name: String,
4464}
4465#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4466#[serde(rename_all = "camelCase")]
4467pub struct JiraSettingsInput {
4468    /// The mapping of Jira project id => Linear team id.
4469    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4470    pub project_mapping: MaybeUndefined<Vec<JiraLinearMappingInput>>,
4471    /// The Jira projects for the organization.
4472    pub projects: Vec<JiraProjectDataInput>,
4473    /// Whether this integration is for Jira Server or not.
4474    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4475    pub is_jira_server: MaybeUndefined<bool>,
4476    /// Whether this integration uses custom OAuth authentication (enterprise SSO).
4477    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4478    pub is_custom_o_auth: MaybeUndefined<bool>,
4479    /// The OAuth client ID for the personal connection OAuth app, when using custom OAuth.
4480    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4481    pub personal_o_auth_client_id: MaybeUndefined<String>,
4482    /// The custom OAuth server token endpoint URL (enterprise SSO).
4483    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4484    pub custom_o_auth_server_url: MaybeUndefined<String>,
4485    /// Whether the user needs to provide setup information about the webhook to complete the integration setup. Only relevant for integrations that use a manual setup flow
4486    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4487    pub setup_pending: MaybeUndefined<bool>,
4488    /// Whether this integration is using a manual setup flow.
4489    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4490    pub manual_setup: MaybeUndefined<bool>,
4491    /// The label of the Jira instance, for visual identification purposes only
4492    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4493    pub label: MaybeUndefined<String>,
4494    /// Jira status names grouped by project, separated into issue statuses (non-Epic) and project statuses (Epic). Structure: projectId -> { issueStatuses: string[], projectStatuses: string[] }
4495    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4496    pub status_names_per_issue_type: MaybeUndefined<serde_json::Value>,
4497}
4498#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4499#[serde(rename_all = "camelCase")]
4500pub struct JiraUpdateInput {
4501    /// The id of the integration to update.
4502    pub id: String,
4503    /// Whether to refresh Jira Projects for the integration.
4504    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4505    pub update_projects: MaybeUndefined<bool>,
4506    /// Whether to refresh Jira metadata for the integration.
4507    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4508    pub update_metadata: MaybeUndefined<bool>,
4509    /// Whether to delete the current manual webhook configuration.
4510    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4511    pub delete_webhook: MaybeUndefined<bool>,
4512    /// Webhook secret for a new manual configuration.
4513    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4514    pub webhook_secret: MaybeUndefined<String>,
4515    /// Whether the Jira instance does not support webhook secrets.
4516    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4517    pub no_secret: MaybeUndefined<bool>,
4518    /// The Jira personal access token.
4519    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4520    pub access_token: MaybeUndefined<String>,
4521    /// The Jira user email address associated with the personal access token.
4522    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4523    pub email: MaybeUndefined<String>,
4524}
4525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4526#[serde(rename_all = "camelCase")]
4527pub struct JoinOrganizationInput {
4528    /// The identifier of the organization.
4529    pub organization_id: String,
4530    /// An optional invite link for an organization.
4531    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4532    pub invite_link: MaybeUndefined<String>,
4533}
4534/// Issue label-group sorting options.
4535#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4536#[serde(rename_all = "camelCase")]
4537pub struct LabelGroupSort {
4538    /// Whether nulls should be sorted first or last
4539    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4540    pub nulls: MaybeUndefined<PaginationNulls>,
4541    /// The order for the individual sort
4542    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4543    pub order: MaybeUndefined<PaginationSortOrder>,
4544    /// The label-group id to sort by
4545    pub label_group_id: String,
4546}
4547/// Issue label sorting options.
4548#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4549#[serde(rename_all = "camelCase")]
4550pub struct LabelSort {
4551    /// Whether nulls should be sorted first or last
4552    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4553    pub nulls: MaybeUndefined<PaginationNulls>,
4554    /// The order for the individual sort
4555    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4556    pub order: MaybeUndefined<PaginationSortOrder>,
4557}
4558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4559#[serde(rename_all = "camelCase")]
4560pub struct LaunchDarklySettingsInput {
4561    /// The project key of the LaunchDarkly integration.
4562    pub project_key: String,
4563    /// The environment of the LaunchDarkly integration.
4564    pub environment: String,
4565}
4566/// `ALPHA` Issue link count sorting options.
4567#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4568#[serde(rename_all = "camelCase")]
4569pub struct LinkCountSort {
4570    /// Whether nulls should be sorted first or last
4571    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4572    pub nulls: MaybeUndefined<PaginationNulls>,
4573    /// The order for the individual sort
4574    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4575    pub order: MaybeUndefined<PaginationSortOrder>,
4576}
4577/// Issue manual sorting options.
4578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4579#[serde(rename_all = "camelCase")]
4580pub struct ManualSort {
4581    /// Whether nulls should be sorted first or last
4582    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4583    pub nulls: MaybeUndefined<PaginationNulls>,
4584    /// The order for the individual sort
4585    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4586    pub order: MaybeUndefined<PaginationSortOrder>,
4587}
4588/// An additional HTTP header sent with requests to the connected MCP server. Header values are stored securely.
4589#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4590#[serde(rename_all = "camelCase")]
4591pub struct McpServerCustomHeaderInput {
4592    /// The HTTP header name.
4593    pub name: String,
4594    /// The HTTP header value.
4595    pub value: String,
4596}
4597#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4598#[serde(rename_all = "camelCase")]
4599pub struct MicrosoftTeamsPostSettingsInput {
4600    /// AAD group id of the Team.
4601    pub team_id: String,
4602    /// Display name of the Team.
4603    pub team_name: String,
4604    /// Microsoft Teams channel id.
4605    pub channel_id: String,
4606    /// Display name of the channel.
4607    pub channel_name: String,
4608    /// Membership type of the channel: standard, private, or shared.
4609    pub membership_type: String,
4610    /// Azure AD tenant id the team belongs to.
4611    pub tenant_id: String,
4612}
4613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4614#[serde(rename_all = "camelCase")]
4615pub struct MicrosoftTeamsSettingsInput {
4616    /// The display name of the Azure AD tenant.
4617    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4618    pub tenant_name: MaybeUndefined<String>,
4619    /// Whether Code Intelligence should be enabled for this Microsoft Teams integration.
4620    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4621    pub enable_code_intelligence: MaybeUndefined<bool>,
4622}
4623/// Issue project milestone options.
4624#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4625#[serde(rename_all = "camelCase")]
4626pub struct MilestoneSort {
4627    /// Whether nulls should be sorted first or last
4628    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4629    pub nulls: MaybeUndefined<PaginationNulls>,
4630    /// The order for the individual sort
4631    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4632    pub order: MaybeUndefined<PaginationSortOrder>,
4633}
4634/// Customer name sorting options.
4635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4636#[serde(rename_all = "camelCase")]
4637pub struct NameSort {
4638    /// Whether nulls should be sorted first or last
4639    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4640    pub nulls: MaybeUndefined<PaginationNulls>,
4641    /// The order for the individual sort
4642    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4643    pub order: MaybeUndefined<PaginationSortOrder>,
4644}
4645#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4646#[serde(rename_all = "camelCase")]
4647pub struct NotificationCategoryPreferencesInput {
4648    /// The preferences for notifications about assignments.
4649    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4650    pub assignments: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4651    /// The preferences for notifications about status changes.
4652    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4653    pub status_changes: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4654    /// The preferences for notifications about comments and replies.
4655    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4656    pub comments_and_replies: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4657    /// The preferences for notifications about mentions.
4658    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4659    pub mentions: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4660    /// The preferences for notifications about reactions.
4661    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4662    pub reactions: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4663    /// The preferences for notifications about subscriptions.
4664    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4665    pub subscriptions: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4666    /// The preferences for notifications about document changes.
4667    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4668    pub document_changes: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4669    /// The preferences for notifications about posts and updates.
4670    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4671    pub posts_and_updates: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4672    /// The preferences for notifications about reminders.
4673    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4674    pub reminders: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4675    /// The preferences for notifications about reviews.
4676    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4677    pub reviews: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4678    /// The preferences for notifications about apps and integrations.
4679    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4680    pub apps_and_integrations: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4681    /// The preferences for notifications about triage.
4682    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4683    pub triage: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4684    /// The preferences for notifications about customers.
4685    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4686    pub customers: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4687    /// The preferences for notifications about feed summaries.
4688    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4689    pub feed: MaybeUndefined<PartialNotificationChannelPreferencesInput>,
4690}
4691#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4692#[serde(rename_all = "camelCase")]
4693pub struct NotificationDeliveryPreferencesChannelInput {
4694    /// The schedule for notifications on this channel.
4695    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4696    pub schedule: MaybeUndefined<NotificationDeliveryPreferencesScheduleInput>,
4697}
4698#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4699#[serde(rename_all = "camelCase")]
4700pub struct NotificationDeliveryPreferencesDayInput {
4701    /// The start time of the notification delivery window in HH:MM military time format (e.g., '09:00'). Must be earlier than 'end'.
4702    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4703    pub start: MaybeUndefined<String>,
4704    /// The end time of the notification delivery window in HH:MM military time format (e.g., '18:00'). Must be later than 'start'.
4705    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4706    pub end: MaybeUndefined<String>,
4707}
4708#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4709#[serde(rename_all = "camelCase")]
4710pub struct NotificationDeliveryPreferencesInput {
4711    /// The delivery preferences for the mobile channel.
4712    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4713    pub mobile: MaybeUndefined<NotificationDeliveryPreferencesChannelInput>,
4714}
4715#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4716#[serde(rename_all = "camelCase")]
4717pub struct NotificationDeliveryPreferencesScheduleInput {
4718    /// Whether the entire delivery schedule is disabled. When true, notifications are delivered at any time regardless of the per-day settings.
4719    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4720    pub disabled: MaybeUndefined<bool>,
4721    /// Delivery preferences for Sunday.
4722    pub sunday: NotificationDeliveryPreferencesDayInput,
4723    /// Delivery preferences for Monday.
4724    pub monday: NotificationDeliveryPreferencesDayInput,
4725    /// Delivery preferences for Tuesday.
4726    pub tuesday: NotificationDeliveryPreferencesDayInput,
4727    /// Delivery preferences for Wednesday.
4728    pub wednesday: NotificationDeliveryPreferencesDayInput,
4729    /// Delivery preferences for Thursday.
4730    pub thursday: NotificationDeliveryPreferencesDayInput,
4731    /// Delivery preferences for Friday.
4732    pub friday: NotificationDeliveryPreferencesDayInput,
4733    /// Delivery preferences for Saturday.
4734    pub saturday: NotificationDeliveryPreferencesDayInput,
4735}
4736/// Identifies a specific entity whose related notifications should be targeted by a batch operation. Exactly one entity identifier should be provided.
4737#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4738#[serde(rename_all = "camelCase")]
4739pub struct NotificationEntityInput {
4740    /// The id of the issue related to the notification.
4741    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4742    pub issue_id: MaybeUndefined<String>,
4743    /// `DEPRECATED` The id of the project related to the notification.
4744    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4745    pub project_id: MaybeUndefined<String>,
4746    /// The id of the initiative related to the notification.
4747    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4748    pub initiative_id: MaybeUndefined<String>,
4749    /// The id of the project update related to the notification.
4750    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4751    pub project_update_id: MaybeUndefined<String>,
4752    /// The id of the initiative update related to the notification.
4753    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4754    pub initiative_update_id: MaybeUndefined<String>,
4755    /// The id of the OAuth client approval related to the notification.
4756    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4757    pub oauth_client_approval_id: MaybeUndefined<String>,
4758    /// The id of the notification.
4759    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4760    pub id: MaybeUndefined<String>,
4761}
4762/// Notification filtering options.
4763#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4764#[serde(rename_all = "camelCase")]
4765pub struct NotificationFilter {
4766    /// Comparator for the identifier.
4767    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4768    pub id: MaybeUndefined<IDComparator>,
4769    /// Comparator for the created at date.
4770    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4771    pub created_at: MaybeUndefined<DateComparator>,
4772    /// Comparator for the updated at date.
4773    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4774    pub updated_at: MaybeUndefined<DateComparator>,
4775    /// Comparator for the notification type.
4776    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4777    pub r#type: MaybeUndefined<StringComparator>,
4778    /// Comparator for the archived at date.
4779    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4780    pub archived_at: MaybeUndefined<DateComparator>,
4781    /// Compound filters, all of which need to be matched by the notification.
4782    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4783    pub and: MaybeUndefined<Vec<NotificationFilter>>,
4784    /// Compound filters, one of which need to be matched by the notification.
4785    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4786    pub or: MaybeUndefined<Vec<NotificationFilter>>,
4787}
4788/// Input for creating a notification subscription. Exactly one target entity (customer, custom view, cycle, initiative, label, project, team, or user) must be specified along with the notification types to subscribe to.
4789#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4790#[serde(rename_all = "camelCase")]
4791pub struct NotificationSubscriptionCreateInput {
4792    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
4793    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4794    pub id: MaybeUndefined<String>,
4795    /// The identifier of the customer to subscribe to.
4796    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4797    pub customer_id: MaybeUndefined<String>,
4798    /// The identifier of the custom view to subscribe to.
4799    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4800    pub custom_view_id: MaybeUndefined<String>,
4801    /// The identifier of the cycle to subscribe to.
4802    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4803    pub cycle_id: MaybeUndefined<String>,
4804    /// The identifier of the initiative to subscribe to.
4805    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4806    pub initiative_id: MaybeUndefined<String>,
4807    /// The identifier of the label to subscribe to.
4808    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4809    pub label_id: MaybeUndefined<String>,
4810    /// The identifier of the project to subscribe to.
4811    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4812    pub project_id: MaybeUndefined<String>,
4813    /// The identifier of the team to subscribe to.
4814    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4815    pub team_id: MaybeUndefined<String>,
4816    /// The identifier of the user to subscribe to.
4817    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4818    pub user_id: MaybeUndefined<String>,
4819    /// The type of view to which the notification subscription context is associated with.
4820    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4821    pub context_view_type: MaybeUndefined<ContextViewType>,
4822    /// The type of user view to which the notification subscription context is associated with.
4823    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4824    pub user_context_view_type: MaybeUndefined<UserContextViewType>,
4825    /// The specific notification event types the subscriber wants to receive for the target entity.
4826    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4827    pub notification_subscription_types: MaybeUndefined<Vec<String>>,
4828    /// Whether the subscription is active. Set to false to pause notifications without deleting the subscription.
4829    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4830    pub active: MaybeUndefined<bool>,
4831}
4832/// Input for updating an existing notification subscription. Allows changing the subscribed notification types and active state.
4833#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4834#[serde(rename_all = "camelCase")]
4835pub struct NotificationSubscriptionUpdateInput {
4836    /// The specific notification event types the subscriber wants to receive. Replaces all previously configured types.
4837    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4838    pub notification_subscription_types: MaybeUndefined<Vec<String>>,
4839    /// Whether the subscription is active.
4840    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4841    pub active: MaybeUndefined<bool>,
4842}
4843/// Input for updating a notification's read and snooze state.
4844#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4845#[serde(rename_all = "camelCase")]
4846pub struct NotificationUpdateInput {
4847    /// The time when notification was marked as read.
4848    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4849    pub read_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
4850    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
4851    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4852    pub snoozed_until_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
4853    /// The id of the project update related to the notification.
4854    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4855    pub project_update_id: MaybeUndefined<String>,
4856    /// The id of the initiative update related to the notification.
4857    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4858    pub initiative_update_id: MaybeUndefined<String>,
4859}
4860#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4861#[serde(rename_all = "camelCase")]
4862pub struct NotionSettingsInput {
4863    /// The ID of the Notion workspace being connected.
4864    pub workspace_id: String,
4865    /// The name of the Notion workspace being connected.
4866    pub workspace_name: String,
4867}
4868/// Comment filtering options.
4869#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4870#[serde(rename_all = "camelCase")]
4871pub struct NullableCommentFilter {
4872    /// Comparator for the identifier.
4873    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4874    pub id: MaybeUndefined<IDComparator>,
4875    /// Comparator for the created at date.
4876    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4877    pub created_at: MaybeUndefined<DateComparator>,
4878    /// Comparator for the updated at date.
4879    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4880    pub updated_at: MaybeUndefined<DateComparator>,
4881    /// Comparator for the comment's body.
4882    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4883    pub body: MaybeUndefined<StringComparator>,
4884    /// Filters that the comment's creator must satisfy.
4885    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4886    pub user: MaybeUndefined<Box<UserFilter>>,
4887    /// Filters that the comment's issue must satisfy.
4888    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4889    pub issue: MaybeUndefined<Box<NullableIssueFilter>>,
4890    /// Filters that the comment's project update must satisfy.
4891    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4892    pub project_update: MaybeUndefined<Box<NullableProjectUpdateFilter>>,
4893    /// Filters that the comment parent must satisfy.
4894    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4895    pub parent: MaybeUndefined<Box<NullableCommentFilter>>,
4896    /// Filters that the comment's document content must satisfy.
4897    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4898    pub document_content: MaybeUndefined<Box<NullableDocumentContentFilter>>,
4899    /// `Internal` Filters that the comment's project must satisfy.
4900    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4901    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
4902    /// `Internal` Filters that the comment's initiative must satisfy.
4903    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4904    pub initiative: MaybeUndefined<Box<NullableInitiativeFilter>>,
4905    /// Filters that the comment's reactions must satisfy.
4906    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4907    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
4908    /// Filters that the comment's customer needs must satisfy.
4909    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4910    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
4911    /// Filter based on the existence of the relation.
4912    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4913    pub null: MaybeUndefined<bool>,
4914    /// Compound filters, all of which need to be matched by the comment.
4915    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4916    pub and: MaybeUndefined<Vec<NullableCommentFilter>>,
4917    /// Compound filters, one of which need to be matched by the comment.
4918    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4919    pub or: MaybeUndefined<Vec<NullableCommentFilter>>,
4920}
4921/// Customer filtering options.
4922#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4923#[serde(rename_all = "camelCase")]
4924pub struct NullableCustomerFilter {
4925    /// Comparator for the identifier.
4926    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4927    pub id: MaybeUndefined<IDComparator>,
4928    /// Comparator for the created at date.
4929    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4930    pub created_at: MaybeUndefined<DateComparator>,
4931    /// Comparator for the updated at date.
4932    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4933    pub updated_at: MaybeUndefined<DateComparator>,
4934    /// Comparator for the customer name.
4935    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4936    pub name: MaybeUndefined<StringComparator>,
4937    /// Comparator for the customer slack channel ID.
4938    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4939    pub slack_channel_id: MaybeUndefined<StringComparator>,
4940    /// Comparator for the customer's domains.
4941    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4942    pub domains: MaybeUndefined<StringArrayComparator>,
4943    /// Comparator for the customer's external IDs.
4944    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4945    pub external_ids: MaybeUndefined<StringArrayComparator>,
4946    /// Filters that the customer owner must satisfy.
4947    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4948    pub owner: MaybeUndefined<Box<NullableUserFilter>>,
4949    /// Filters that the customer's needs must satisfy.
4950    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4951    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
4952    /// Comparator for the customer generated revenue.
4953    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4954    pub revenue: MaybeUndefined<NumberComparator>,
4955    /// Comparator for the customer size.
4956    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4957    pub size: MaybeUndefined<NumberComparator>,
4958    /// Filters that the customer's status must satisfy.
4959    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4960    pub status: MaybeUndefined<CustomerStatusFilter>,
4961    /// Filters that the customer's tier must satisfy.
4962    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4963    pub tier: MaybeUndefined<CustomerTierFilter>,
4964    /// Filter based on the existence of the relation.
4965    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4966    pub null: MaybeUndefined<bool>,
4967    /// Compound filters, all of which need to be matched by the customer.
4968    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4969    pub and: MaybeUndefined<Vec<NullableCustomerFilter>>,
4970    /// Compound filters, one of which need to be matched by the customer.
4971    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4972    pub or: MaybeUndefined<Vec<NullableCustomerFilter>>,
4973}
4974/// Cycle filtering options.
4975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4976#[serde(rename_all = "camelCase")]
4977pub struct NullableCycleFilter {
4978    /// Comparator for the identifier.
4979    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4980    pub id: MaybeUndefined<IDComparator>,
4981    /// Comparator for the created at date.
4982    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4983    pub created_at: MaybeUndefined<DateComparator>,
4984    /// Comparator for the updated at date.
4985    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4986    pub updated_at: MaybeUndefined<DateComparator>,
4987    /// Comparator for the cycle number.
4988    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4989    pub number: MaybeUndefined<NumberComparator>,
4990    /// Comparator for the cycle name.
4991    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4992    pub name: MaybeUndefined<StringComparator>,
4993    /// Comparator for the cycle start date.
4994    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4995    pub starts_at: MaybeUndefined<DateComparator>,
4996    /// Comparator for the cycle ends at date.
4997    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
4998    pub ends_at: MaybeUndefined<DateComparator>,
4999    /// Comparator for the cycle completed at date.
5000    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5001    pub completed_at: MaybeUndefined<DateComparator>,
5002    /// Comparator for the filtering active cycle.
5003    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5004    pub is_active: MaybeUndefined<BooleanComparator>,
5005    /// Comparator for filtering for whether the cycle is currently in cooldown.
5006    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5007    pub is_in_cooldown: MaybeUndefined<BooleanComparator>,
5008    /// Comparator for the filtering next cycle.
5009    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5010    pub is_next: MaybeUndefined<BooleanComparator>,
5011    /// Comparator for the filtering previous cycle.
5012    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5013    pub is_previous: MaybeUndefined<BooleanComparator>,
5014    /// Comparator for the filtering future cycles.
5015    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5016    pub is_future: MaybeUndefined<BooleanComparator>,
5017    /// Comparator for the filtering past cycles.
5018    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5019    pub is_past: MaybeUndefined<BooleanComparator>,
5020    /// Filters that the cycles team must satisfy.
5021    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5022    pub team: MaybeUndefined<Box<TeamFilter>>,
5023    /// Filters that the cycles issues must satisfy.
5024    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5025    pub issues: MaybeUndefined<Box<IssueCollectionFilter>>,
5026    /// Comparator for the inherited cycle ID.
5027    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5028    pub inherited_from_id: MaybeUndefined<IDComparator>,
5029    /// Filter based on the existence of the relation.
5030    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5031    pub null: MaybeUndefined<bool>,
5032    /// Compound filters, all of which need to be matched by the cycle.
5033    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5034    pub and: MaybeUndefined<Vec<NullableCycleFilter>>,
5035    /// Compound filters, one of which need to be matched by the cycle.
5036    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5037    pub or: MaybeUndefined<Vec<NullableCycleFilter>>,
5038}
5039/// Comparator for optional dates.
5040#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5041#[serde(rename_all = "camelCase")]
5042pub struct NullableDateComparator {
5043    /// Equals constraint.
5044    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5045    pub eq: MaybeUndefined<serde_json::Value>,
5046    /// Not-equals constraint.
5047    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5048    pub neq: MaybeUndefined<serde_json::Value>,
5049    /// In-array constraint.
5050    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5051    pub r#in: MaybeUndefined<Vec<serde_json::Value>>,
5052    /// Not-in-array constraint.
5053    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5054    pub nin: MaybeUndefined<Vec<serde_json::Value>>,
5055    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5056    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5057    pub null: MaybeUndefined<bool>,
5058    /// Less-than constraint. Matches any values that are less than the given value.
5059    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5060    pub lt: MaybeUndefined<serde_json::Value>,
5061    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5062    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5063    pub lte: MaybeUndefined<serde_json::Value>,
5064    /// Greater-than constraint. Matches any values that are greater than the given value.
5065    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5066    pub gt: MaybeUndefined<serde_json::Value>,
5067    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5068    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5069    pub gte: MaybeUndefined<serde_json::Value>,
5070}
5071/// Document content filtering options.
5072#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5073#[serde(rename_all = "camelCase")]
5074pub struct NullableDocumentContentFilter {
5075    /// Comparator for the identifier.
5076    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5077    pub id: MaybeUndefined<IDComparator>,
5078    /// Comparator for the created at date.
5079    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5080    pub created_at: MaybeUndefined<DateComparator>,
5081    /// Comparator for the updated at date.
5082    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5083    pub updated_at: MaybeUndefined<DateComparator>,
5084    /// Comparator for the document content.
5085    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5086    pub content: MaybeUndefined<NullableStringComparator>,
5087    /// Filters that the document content project must satisfy.
5088    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5089    pub project: MaybeUndefined<Box<ProjectFilter>>,
5090    /// Filters that the document content document must satisfy.
5091    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5092    pub document: MaybeUndefined<Box<DocumentFilter>>,
5093    /// Filter based on the existence of the relation.
5094    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5095    pub null: MaybeUndefined<bool>,
5096    /// Compound filters, all of which need to be matched by the user.
5097    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5098    pub and: MaybeUndefined<Vec<NullableDocumentContentFilter>>,
5099    /// Compound filters, one of which need to be matched by the user.
5100    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5101    pub or: MaybeUndefined<Vec<NullableDocumentContentFilter>>,
5102}
5103/// Nullable comparator for optional durations.
5104#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5105#[serde(rename_all = "camelCase")]
5106pub struct NullableDurationComparator {
5107    /// Equals constraint.
5108    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5109    pub eq: MaybeUndefined<serde_json::Value>,
5110    /// Not-equals constraint.
5111    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5112    pub neq: MaybeUndefined<serde_json::Value>,
5113    /// In-array constraint.
5114    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5115    pub r#in: MaybeUndefined<Vec<serde_json::Value>>,
5116    /// Not-in-array constraint.
5117    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5118    pub nin: MaybeUndefined<Vec<serde_json::Value>>,
5119    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5120    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5121    pub null: MaybeUndefined<bool>,
5122    /// Less-than constraint. Matches any values that are less than the given value.
5123    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5124    pub lt: MaybeUndefined<serde_json::Value>,
5125    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5126    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5127    pub lte: MaybeUndefined<serde_json::Value>,
5128    /// Greater-than constraint. Matches any values that are greater than the given value.
5129    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5130    pub gt: MaybeUndefined<serde_json::Value>,
5131    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5132    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5133    pub gte: MaybeUndefined<serde_json::Value>,
5134}
5135/// Initiative filtering options.
5136#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5137#[serde(rename_all = "camelCase")]
5138pub struct NullableInitiativeFilter {
5139    /// Comparator for the identifier.
5140    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5141    pub id: MaybeUndefined<IDComparator>,
5142    /// Comparator for the created at date.
5143    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5144    pub created_at: MaybeUndefined<DateComparator>,
5145    /// Comparator for the updated at date.
5146    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5147    pub updated_at: MaybeUndefined<DateComparator>,
5148    /// Comparator for the initiative name.
5149    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5150    pub name: MaybeUndefined<StringComparator>,
5151    /// Comparator for the initiative slug ID.
5152    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5153    pub slug_id: MaybeUndefined<StringComparator>,
5154    /// Filters that the initiative creator must satisfy.
5155    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5156    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
5157    /// Comparator for the initiative status: Planned, Active, Completed
5158    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5159    pub status: MaybeUndefined<StringComparator>,
5160    /// Filters that the initiative teams must satisfy.
5161    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5162    pub teams: MaybeUndefined<Box<TeamCollectionFilter>>,
5163    /// Filters that the initiative owner must satisfy.
5164    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5165    pub owner: MaybeUndefined<Box<NullableUserFilter>>,
5166    /// Comparator for the initiative target date.
5167    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5168    pub target_date: MaybeUndefined<NullableDateComparator>,
5169    /// Comparator for the initiative started at date.
5170    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5171    pub started_at: MaybeUndefined<NullableDateComparator>,
5172    /// Comparator for the initiative completed at date.
5173    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5174    pub completed_at: MaybeUndefined<NullableDateComparator>,
5175    /// Comparator for the initiative health: onTrack, atRisk, offTrack
5176    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5177    pub health: MaybeUndefined<StringComparator>,
5178    /// Comparator for the initiative health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
5179    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5180    pub health_with_age: MaybeUndefined<StringComparator>,
5181    /// Comparator for the initiative activity type.
5182    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5183    pub activity_type: MaybeUndefined<StringComparator>,
5184    /// Filters that the initiative must be an ancestor of.
5185    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5186    pub ancestors: MaybeUndefined<Box<InitiativeCollectionFilter>>,
5187    /// Filters that the initiative updates must satisfy.
5188    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5189    pub initiative_updates: MaybeUndefined<InitiativeUpdatesCollectionFilter>,
5190    /// Filter based on the existence of the relation.
5191    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5192    pub null: MaybeUndefined<bool>,
5193    /// Compound filters, all of which need to be matched by the initiative.
5194    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5195    pub and: MaybeUndefined<Vec<NullableInitiativeFilter>>,
5196    /// Compound filters, one of which need to be matched by the initiative.
5197    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5198    pub or: MaybeUndefined<Vec<NullableInitiativeFilter>>,
5199}
5200/// Issue filtering options.
5201#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5202#[serde(rename_all = "camelCase")]
5203pub struct NullableIssueFilter {
5204    /// Comparator for the identifier.
5205    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5206    pub id: MaybeUndefined<IssueIDComparator>,
5207    /// Comparator for the created at date.
5208    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5209    pub created_at: MaybeUndefined<DateComparator>,
5210    /// Comparator for the updated at date.
5211    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5212    pub updated_at: MaybeUndefined<DateComparator>,
5213    /// Comparator for the issues number.
5214    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5215    pub number: MaybeUndefined<NumberComparator>,
5216    /// Comparator for the issues title.
5217    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5218    pub title: MaybeUndefined<StringComparator>,
5219    /// Comparator for the issues description.
5220    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5221    pub description: MaybeUndefined<NullableStringComparator>,
5222    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low.
5223    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5224    pub priority: MaybeUndefined<NullableNumberComparator>,
5225    /// Comparator for the issues estimate.
5226    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5227    pub estimate: MaybeUndefined<EstimateComparator>,
5228    /// Comparator for the issues started at date.
5229    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5230    pub started_at: MaybeUndefined<NullableDateComparator>,
5231    /// Comparator for the issues triaged at date.
5232    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5233    pub triaged_at: MaybeUndefined<NullableDateComparator>,
5234    /// Comparator for the issues completed at date.
5235    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5236    pub completed_at: MaybeUndefined<NullableDateComparator>,
5237    /// Comparator for the issues canceled at date.
5238    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5239    pub canceled_at: MaybeUndefined<NullableDateComparator>,
5240    /// Comparator for the issue's SLA breach date.
5241    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5242    pub sla_breaches_at: MaybeUndefined<NullableDateComparator>,
5243    /// Comparator for the issues archived at date.
5244    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5245    pub archived_at: MaybeUndefined<NullableDateComparator>,
5246    /// Comparator for the issues auto closed at date.
5247    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5248    pub auto_closed_at: MaybeUndefined<NullableDateComparator>,
5249    /// Comparator for the issues auto archived at date.
5250    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5251    pub auto_archived_at: MaybeUndefined<NullableDateComparator>,
5252    /// Comparator for the issues added to cycle at date.
5253    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5254    pub added_to_cycle_at: MaybeUndefined<NullableDateComparator>,
5255    /// Comparator for the period when issue was added to a cycle.
5256    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5257    pub added_to_cycle_period: MaybeUndefined<CyclePeriodComparator>,
5258    /// Comparator for the issues due date.
5259    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5260    pub due_date: MaybeUndefined<NullableTimelessDateComparator>,
5261    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
5262    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5263    pub accumulated_state_updated_at: MaybeUndefined<NullableDateComparator>,
5264    /// Comparator for the issues snoozed until date.
5265    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5266    pub snoozed_until_at: MaybeUndefined<NullableDateComparator>,
5267    /// Filters that the issues assignee must satisfy.
5268    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5269    pub assignee: MaybeUndefined<Box<NullableUserFilter>>,
5270    /// Filters that the issue's delegated agent must satisfy.
5271    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5272    pub delegate: MaybeUndefined<Box<NullableUserFilter>>,
5273    /// Filters that the last applied template must satisfy.
5274    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5275    pub last_applied_template: MaybeUndefined<NullableTemplateFilter>,
5276    /// `ALPHA` Filters that the recurring issue template must satisfy.
5277    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5278    pub recurring_issue_template: MaybeUndefined<NullableTemplateFilter>,
5279    /// Filters that the source must satisfy.
5280    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5281    pub source_metadata: MaybeUndefined<SourceMetadataComparator>,
5282    /// Filters that the issues creator must satisfy.
5283    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5284    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
5285    /// Filters that the issue parent must satisfy.
5286    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5287    pub parent: MaybeUndefined<Box<NullableIssueFilter>>,
5288    /// Filters that the issues snoozer must satisfy.
5289    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5290    pub snoozed_by: MaybeUndefined<Box<NullableUserFilter>>,
5291    /// Filters that issue labels must satisfy.
5292    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5293    pub labels: MaybeUndefined<Box<IssueLabelCollectionFilter>>,
5294    /// Filters that issue subscribers must satisfy.
5295    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5296    pub subscribers: MaybeUndefined<Box<UserCollectionFilter>>,
5297    /// Comparator for filtering issues which have been shared with users outside of the team.
5298    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5299    pub has_shared_users: MaybeUndefined<RelationExistsComparator>,
5300    /// Filters that users the issue has been shared with must satisfy.
5301    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5302    pub shared_with: MaybeUndefined<Box<UserCollectionFilter>>,
5303    /// Filters that the issues team must satisfy.
5304    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5305    pub team: MaybeUndefined<Box<TeamFilter>>,
5306    /// Filters that the issues project milestone must satisfy.
5307    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5308    pub project_milestone: MaybeUndefined<Box<NullableProjectMilestoneFilter>>,
5309    /// Filters that the issues comments must satisfy.
5310    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5311    pub comments: MaybeUndefined<Box<CommentCollectionFilter>>,
5312    /// Filters that the issue's activities must satisfy.
5313    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5314    pub activity: MaybeUndefined<Box<ActivityCollectionFilter>>,
5315    /// `Internal` Filters that the issue's suggestions must satisfy.
5316    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5317    pub suggestions: MaybeUndefined<Box<IssueSuggestionCollectionFilter>>,
5318    /// Filters that the issues cycle must satisfy.
5319    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5320    pub cycle: MaybeUndefined<Box<NullableCycleFilter>>,
5321    /// Filters that the issues project must satisfy.
5322    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5323    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
5324    /// Filters that the issues state must satisfy.
5325    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5326    pub state: MaybeUndefined<Box<WorkflowStateFilter>>,
5327    /// Filters that the child issues must satisfy.
5328    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5329    pub children: MaybeUndefined<Box<IssueCollectionFilter>>,
5330    /// Filters that the issues attachments must satisfy.
5331    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5332    pub attachments: MaybeUndefined<Box<AttachmentCollectionFilter>>,
5333    /// `Internal` Comparator for the issues content.
5334    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5335    pub searchable_content: MaybeUndefined<ContentComparator>,
5336    /// Comparator for filtering issues with relations.
5337    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5338    pub has_related_relations: MaybeUndefined<RelationExistsComparator>,
5339    /// Comparator for filtering issues which are duplicates.
5340    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5341    pub has_duplicate_relations: MaybeUndefined<RelationExistsComparator>,
5342    /// Comparator for filtering issues which are blocked.
5343    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5344    pub has_blocked_by_relations: MaybeUndefined<RelationExistsComparator>,
5345    /// Comparator for filtering issues which are blocking.
5346    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5347    pub has_blocking_relations: MaybeUndefined<RelationExistsComparator>,
5348    /// `Internal` Comparator for filtering issues which have suggested related issues.
5349    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5350    pub has_suggested_related_issues: MaybeUndefined<RelationExistsComparator>,
5351    /// `Internal` Comparator for filtering issues which have suggested similar issues.
5352    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5353    pub has_suggested_similar_issues: MaybeUndefined<RelationExistsComparator>,
5354    /// `Internal` Comparator for filtering issues which have suggested assignees.
5355    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5356    pub has_suggested_assignees: MaybeUndefined<RelationExistsComparator>,
5357    /// `Internal` Comparator for filtering issues which have suggested projects.
5358    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5359    pub has_suggested_projects: MaybeUndefined<RelationExistsComparator>,
5360    /// `Internal` Comparator for filtering issues which have suggested labels.
5361    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5362    pub has_suggested_labels: MaybeUndefined<RelationExistsComparator>,
5363    /// `Internal` Comparator for filtering issues which have suggested teams.
5364    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5365    pub has_suggested_teams: MaybeUndefined<RelationExistsComparator>,
5366    /// Comparator for the issues sla status.
5367    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5368    pub sla_status: MaybeUndefined<SlaStatusComparator>,
5369    /// Filters that the issues reactions must satisfy.
5370    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5371    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
5372    /// Filters that the issue's customer needs must satisfy.
5373    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5374    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
5375    /// `ALPHA` Filters that the issue's releases must satisfy.
5376    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5377    pub releases: MaybeUndefined<Box<ReleaseCollectionFilter>>,
5378    /// Count of customers
5379    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5380    pub customer_count: MaybeUndefined<NumberComparator>,
5381    /// Count of important customers
5382    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5383    pub customer_important_count: MaybeUndefined<NumberComparator>,
5384    /// `Internal` Lead time (created -> completed) comparator.
5385    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5386    pub lead_time: MaybeUndefined<NullableDurationComparator>,
5387    /// `Internal` Cycle time (started -> completed) comparator.
5388    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5389    pub cycle_time: MaybeUndefined<NullableDurationComparator>,
5390    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
5391    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5392    pub age_time: MaybeUndefined<NullableDurationComparator>,
5393    /// `Internal` Triage time (entered triaged -> triaged) comparator.
5394    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5395    pub triage_time: MaybeUndefined<NullableDurationComparator>,
5396    /// Filter based on the existence of the relation.
5397    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5398    pub null: MaybeUndefined<bool>,
5399    /// Compound filters, all of which need to be matched by the issue.
5400    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5401    pub and: MaybeUndefined<Vec<NullableIssueFilter>>,
5402    /// Compound filters, one of which need to be matched by the issue.
5403    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5404    pub or: MaybeUndefined<Vec<NullableIssueFilter>>,
5405}
5406/// Comparator for optional numbers.
5407#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5408#[serde(rename_all = "camelCase")]
5409pub struct NullableNumberComparator {
5410    /// Equals constraint.
5411    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5412    pub eq: MaybeUndefined<f64>,
5413    /// Not-equals constraint.
5414    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5415    pub neq: MaybeUndefined<f64>,
5416    /// In-array constraint.
5417    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5418    pub r#in: MaybeUndefined<Vec<f64>>,
5419    /// Not-in-array constraint.
5420    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5421    pub nin: MaybeUndefined<Vec<f64>>,
5422    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5423    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5424    pub null: MaybeUndefined<bool>,
5425    /// Less-than constraint. Matches any values that are less than the given value.
5426    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5427    pub lt: MaybeUndefined<f64>,
5428    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5429    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5430    pub lte: MaybeUndefined<f64>,
5431    /// Greater-than constraint. Matches any values that are greater than the given value.
5432    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5433    pub gt: MaybeUndefined<f64>,
5434    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5435    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5436    pub gte: MaybeUndefined<f64>,
5437}
5438/// Project filtering options.
5439#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5440#[serde(rename_all = "camelCase")]
5441pub struct NullableProjectFilter {
5442    /// Comparator for the identifier.
5443    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5444    pub id: MaybeUndefined<IDComparator>,
5445    /// Comparator for the created at date.
5446    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5447    pub created_at: MaybeUndefined<DateComparator>,
5448    /// Comparator for the updated at date.
5449    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5450    pub updated_at: MaybeUndefined<DateComparator>,
5451    /// Comparator for the project name.
5452    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5453    pub name: MaybeUndefined<StringComparator>,
5454    /// Comparator for the project slug ID.
5455    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5456    pub slug_id: MaybeUndefined<StringComparator>,
5457    /// `DEPRECATED` Comparator for the project state.
5458    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5459    pub state: MaybeUndefined<StringComparator>,
5460    /// Filters that the project's status must satisfy.
5461    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5462    pub status: MaybeUndefined<Box<ProjectStatusFilter>>,
5463    /// Comparator for the projects priority.
5464    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5465    pub priority: MaybeUndefined<NullableNumberComparator>,
5466    /// Filters that project labels must satisfy.
5467    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5468    pub labels: MaybeUndefined<Box<ProjectLabelCollectionFilter>>,
5469    /// `Internal` Comparator for the project's content.
5470    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5471    pub searchable_content: MaybeUndefined<ContentComparator>,
5472    /// Comparator for the project started date (when it was moved to an "In Progress" status).
5473    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5474    pub started_at: MaybeUndefined<NullableDateComparator>,
5475    /// Comparator for the project completion date.
5476    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5477    pub completed_at: MaybeUndefined<NullableDateComparator>,
5478    /// Comparator for the project cancelation date.
5479    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5480    pub canceled_at: MaybeUndefined<NullableDateComparator>,
5481    /// Comparator for the project start date.
5482    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5483    pub start_date: MaybeUndefined<NullableDateComparator>,
5484    /// Comparator for the project target date.
5485    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5486    pub target_date: MaybeUndefined<NullableDateComparator>,
5487    /// Comparator for the project health: onTrack, atRisk, offTrack
5488    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5489    pub health: MaybeUndefined<StringComparator>,
5490    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
5491    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5492    pub health_with_age: MaybeUndefined<StringComparator>,
5493    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
5494    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5495    pub activity_type: MaybeUndefined<StringComparator>,
5496    /// Comparator for filtering projects with relations.
5497    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5498    pub has_related_relations: MaybeUndefined<RelationExistsComparator>,
5499    /// `Deprecated` Comparator for filtering projects which this is depended on by.
5500    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5501    pub has_depended_on_by_relations: MaybeUndefined<RelationExistsComparator>,
5502    /// `Deprecated`Comparator for filtering projects which this depends on.
5503    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5504    pub has_depends_on_relations: MaybeUndefined<RelationExistsComparator>,
5505    /// Comparator for filtering projects which are blocked.
5506    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5507    pub has_blocked_by_relations: MaybeUndefined<RelationExistsComparator>,
5508    /// Comparator for filtering projects which are blocking.
5509    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5510    pub has_blocking_relations: MaybeUndefined<RelationExistsComparator>,
5511    /// Comparator for filtering projects with violated dependencies.
5512    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5513    pub has_violated_relations: MaybeUndefined<RelationExistsComparator>,
5514    /// Comparator for the project updates.
5515    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5516    pub project_updates: MaybeUndefined<ProjectUpdatesCollectionFilter>,
5517    /// Filters that the projects creator must satisfy.
5518    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5519    pub creator: MaybeUndefined<Box<UserFilter>>,
5520    /// Filters that the projects lead must satisfy.
5521    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5522    pub lead: MaybeUndefined<Box<NullableUserFilter>>,
5523    /// Filters that the projects members must satisfy.
5524    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5525    pub members: MaybeUndefined<Box<UserCollectionFilter>>,
5526    /// Filters that the projects issues must satisfy.
5527    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5528    pub issues: MaybeUndefined<Box<IssueCollectionFilter>>,
5529    /// Filters that the projects roadmaps must satisfy.
5530    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5531    pub roadmaps: MaybeUndefined<Box<RoadmapCollectionFilter>>,
5532    /// Filters that the projects initiatives must satisfy.
5533    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5534    pub initiatives: MaybeUndefined<Box<InitiativeCollectionFilter>>,
5535    /// Filters that the project's milestones must satisfy.
5536    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5537    pub project_milestones: MaybeUndefined<Box<ProjectMilestoneCollectionFilter>>,
5538    /// Filters that the project's completed milestones must satisfy.
5539    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5540    pub completed_project_milestones: MaybeUndefined<Box<ProjectMilestoneCollectionFilter>>,
5541    /// Filters that the project's next milestone must satisfy.
5542    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5543    pub next_project_milestone: MaybeUndefined<Box<ProjectMilestoneFilter>>,
5544    /// Filters that the project's team must satisfy.
5545    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5546    pub accessible_teams: MaybeUndefined<Box<TeamCollectionFilter>>,
5547    /// Filters that the last applied template must satisfy.
5548    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5549    pub last_applied_template: MaybeUndefined<NullableTemplateFilter>,
5550    /// Filters that the project's customer needs must satisfy.
5551    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5552    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
5553    /// Count of customers
5554    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5555    pub customer_count: MaybeUndefined<NumberComparator>,
5556    /// Count of important customers
5557    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5558    pub customer_important_count: MaybeUndefined<NumberComparator>,
5559    /// Filter based on the existence of the relation.
5560    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5561    pub null: MaybeUndefined<bool>,
5562    /// Compound filters, all of which need to be matched by the project.
5563    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5564    pub and: MaybeUndefined<Vec<NullableProjectFilter>>,
5565    /// Compound filters, one of which need to be matched by the project.
5566    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5567    pub or: MaybeUndefined<Vec<NullableProjectFilter>>,
5568}
5569/// Project milestone filtering options.
5570#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5571#[serde(rename_all = "camelCase")]
5572pub struct NullableProjectMilestoneFilter {
5573    /// Comparator for the identifier.
5574    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5575    pub id: MaybeUndefined<IDComparator>,
5576    /// Comparator for the created at date.
5577    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5578    pub created_at: MaybeUndefined<DateComparator>,
5579    /// Comparator for the updated at date.
5580    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5581    pub updated_at: MaybeUndefined<DateComparator>,
5582    /// Comparator for the project milestone name.
5583    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5584    pub name: MaybeUndefined<NullableStringComparator>,
5585    /// Comparator for the project milestone target date.
5586    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5587    pub target_date: MaybeUndefined<NullableDateComparator>,
5588    /// Filters that the project milestone's project must satisfy.
5589    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5590    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
5591    /// Filter based on the existence of the relation.
5592    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5593    pub null: MaybeUndefined<bool>,
5594    /// Compound filters, all of which need to be matched by the project milestone.
5595    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5596    pub and: MaybeUndefined<Vec<NullableProjectMilestoneFilter>>,
5597    /// Compound filters, one of which need to be matched by the project milestone.
5598    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5599    pub or: MaybeUndefined<Vec<NullableProjectMilestoneFilter>>,
5600}
5601/// Nullable project update filtering options.
5602#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5603#[serde(rename_all = "camelCase")]
5604pub struct NullableProjectUpdateFilter {
5605    /// Comparator for the identifier.
5606    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5607    pub id: MaybeUndefined<IDComparator>,
5608    /// Comparator for the created at date.
5609    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5610    pub created_at: MaybeUndefined<DateComparator>,
5611    /// Comparator for the updated at date.
5612    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5613    pub updated_at: MaybeUndefined<DateComparator>,
5614    /// Filters that the project update creator must satisfy.
5615    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5616    pub user: MaybeUndefined<Box<UserFilter>>,
5617    /// Filters that the project update project must satisfy.
5618    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5619    pub project: MaybeUndefined<Box<ProjectFilter>>,
5620    /// Filters that the project updates reactions must satisfy.
5621    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5622    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
5623    /// Filter based on the existence of the relation.
5624    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5625    pub null: MaybeUndefined<bool>,
5626    /// Compound filters, all of which need to be matched by the project update.
5627    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5628    pub and: MaybeUndefined<Vec<NullableProjectUpdateFilter>>,
5629    /// Compound filters, one of which need to be matched by the project update.
5630    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5631    pub or: MaybeUndefined<Vec<NullableProjectUpdateFilter>>,
5632}
5633/// Comparator for optional strings.
5634#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5635#[serde(rename_all = "camelCase")]
5636pub struct NullableStringComparator {
5637    /// Equals constraint.
5638    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5639    pub eq: MaybeUndefined<String>,
5640    /// Not-equals constraint.
5641    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5642    pub neq: MaybeUndefined<String>,
5643    /// In-array constraint.
5644    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5645    pub r#in: MaybeUndefined<Vec<String>>,
5646    /// Not-in-array constraint.
5647    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5648    pub nin: MaybeUndefined<Vec<String>>,
5649    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5650    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5651    pub null: MaybeUndefined<bool>,
5652    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
5653    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5654    pub eq_ignore_case: MaybeUndefined<String>,
5655    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
5656    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5657    pub neq_ignore_case: MaybeUndefined<String>,
5658    /// Starts with constraint. Matches any values that start with the given string.
5659    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5660    pub starts_with: MaybeUndefined<String>,
5661    /// Starts with case insensitive constraint. Matches any values that start with the given string.
5662    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5663    pub starts_with_ignore_case: MaybeUndefined<String>,
5664    /// Doesn't start with constraint. Matches any values that don't start with the given string.
5665    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5666    pub not_starts_with: MaybeUndefined<String>,
5667    /// Ends with constraint. Matches any values that end with the given string.
5668    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5669    pub ends_with: MaybeUndefined<String>,
5670    /// Doesn't end with constraint. Matches any values that don't end with the given string.
5671    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5672    pub not_ends_with: MaybeUndefined<String>,
5673    /// Contains constraint. Matches any values that contain the given string.
5674    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5675    pub contains: MaybeUndefined<String>,
5676    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
5677    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5678    pub contains_ignore_case: MaybeUndefined<String>,
5679    /// Doesn't contain constraint. Matches any values that don't contain the given string.
5680    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5681    pub not_contains: MaybeUndefined<String>,
5682    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
5683    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5684    pub not_contains_ignore_case: MaybeUndefined<String>,
5685    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
5686    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5687    pub contains_ignore_case_and_accent: MaybeUndefined<String>,
5688}
5689/// Team filtering options.
5690#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5691#[serde(rename_all = "camelCase")]
5692pub struct NullableTeamFilter {
5693    /// Comparator for the identifier.
5694    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5695    pub id: MaybeUndefined<IDComparator>,
5696    /// Comparator for the created at date.
5697    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5698    pub created_at: MaybeUndefined<DateComparator>,
5699    /// Comparator for the updated at date.
5700    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5701    pub updated_at: MaybeUndefined<DateComparator>,
5702    /// Comparator for the team name.
5703    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5704    pub name: MaybeUndefined<StringComparator>,
5705    /// Comparator for the team key.
5706    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5707    pub key: MaybeUndefined<StringComparator>,
5708    /// Comparator for the team description.
5709    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5710    pub description: MaybeUndefined<NullableStringComparator>,
5711    /// Comparator for the team privacy.
5712    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5713    pub private: MaybeUndefined<BooleanComparator>,
5714    /// Comparator for the time at which the team was retired.
5715    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5716    pub retired_at: MaybeUndefined<NullableDateComparator>,
5717    /// Filters that the teams issues must satisfy.
5718    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5719    pub issues: MaybeUndefined<Box<IssueCollectionFilter>>,
5720    /// Filters that the teams parent must satisfy.
5721    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5722    pub parent: MaybeUndefined<Box<NullableTeamFilter>>,
5723    /// Filters that the team's ancestors must satisfy.
5724    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5725    pub ancestors: MaybeUndefined<Box<TeamCollectionFilter>>,
5726    /// `ALPHA` Filters that the team's release pipelines must satisfy.
5727    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5728    pub release_pipelines: MaybeUndefined<Box<ReleasePipelineCollectionFilter>>,
5729    /// Filter based on the existence of the relation.
5730    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5731    pub null: MaybeUndefined<bool>,
5732    /// Compound filters, all of which need to be matched by the team.
5733    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5734    pub and: MaybeUndefined<Vec<NullableTeamFilter>>,
5735    /// Compound filters, one of which need to be matched by the team.
5736    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5737    pub or: MaybeUndefined<Vec<NullableTeamFilter>>,
5738}
5739/// Template filtering options.
5740#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5741#[serde(rename_all = "camelCase")]
5742pub struct NullableTemplateFilter {
5743    /// Comparator for the identifier.
5744    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5745    pub id: MaybeUndefined<IDComparator>,
5746    /// Comparator for the created at date.
5747    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5748    pub created_at: MaybeUndefined<DateComparator>,
5749    /// Comparator for the updated at date.
5750    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5751    pub updated_at: MaybeUndefined<DateComparator>,
5752    /// Comparator for the template's name.
5753    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5754    pub name: MaybeUndefined<StringComparator>,
5755    /// Comparator for the template's type.
5756    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5757    pub r#type: MaybeUndefined<StringComparator>,
5758    /// Comparator for the inherited template's ID.
5759    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5760    pub inherited_from_id: MaybeUndefined<IDComparator>,
5761    /// Filter based on the existence of the relation.
5762    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5763    pub null: MaybeUndefined<bool>,
5764    /// Compound filters, all of which need to be matched by the template.
5765    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5766    pub and: MaybeUndefined<Vec<NullableTemplateFilter>>,
5767    /// Compound filters, one of which need to be matched by the template.
5768    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5769    pub or: MaybeUndefined<Vec<NullableTemplateFilter>>,
5770}
5771/// Comparator for optional timeless dates.
5772#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5773#[serde(rename_all = "camelCase")]
5774pub struct NullableTimelessDateComparator {
5775    /// Equals constraint.
5776    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5777    pub eq: MaybeUndefined<serde_json::Value>,
5778    /// Not-equals constraint.
5779    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5780    pub neq: MaybeUndefined<serde_json::Value>,
5781    /// In-array constraint.
5782    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5783    pub r#in: MaybeUndefined<Vec<serde_json::Value>>,
5784    /// Not-in-array constraint.
5785    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5786    pub nin: MaybeUndefined<Vec<serde_json::Value>>,
5787    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5788    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5789    pub null: MaybeUndefined<bool>,
5790    /// Less-than constraint. Matches any values that are less than the given value.
5791    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5792    pub lt: MaybeUndefined<serde_json::Value>,
5793    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5794    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5795    pub lte: MaybeUndefined<serde_json::Value>,
5796    /// Greater-than constraint. Matches any values that are greater than the given value.
5797    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5798    pub gt: MaybeUndefined<serde_json::Value>,
5799    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5800    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5801    pub gte: MaybeUndefined<serde_json::Value>,
5802}
5803/// User filtering options.
5804#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5805#[serde(rename_all = "camelCase")]
5806pub struct NullableUserFilter {
5807    /// Comparator for the identifier.
5808    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5809    pub id: MaybeUndefined<IDComparator>,
5810    /// Comparator for the created at date.
5811    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5812    pub created_at: MaybeUndefined<DateComparator>,
5813    /// Comparator for the updated at date.
5814    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5815    pub updated_at: MaybeUndefined<DateComparator>,
5816    /// Comparator for the user's name.
5817    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5818    pub name: MaybeUndefined<StringComparator>,
5819    /// Comparator for the user's display name.
5820    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5821    pub display_name: MaybeUndefined<StringComparator>,
5822    /// Comparator for the user's email.
5823    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5824    pub email: MaybeUndefined<StringComparator>,
5825    /// Comparator for the user's activity status.
5826    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5827    pub active: MaybeUndefined<BooleanComparator>,
5828    /// Filters that the users assigned issues must satisfy.
5829    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5830    pub assigned_issues: MaybeUndefined<Box<IssueCollectionFilter>>,
5831    /// Comparator for the user's admin status.
5832    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5833    pub admin: MaybeUndefined<BooleanComparator>,
5834    /// Comparator for the user's owner status.
5835    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5836    pub owner: MaybeUndefined<BooleanComparator>,
5837    /// Comparator for the user's invited status.
5838    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5839    pub invited: MaybeUndefined<BooleanComparator>,
5840    /// Comparator for the user's invited status.
5841    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5842    pub is_invited: MaybeUndefined<BooleanComparator>,
5843    /// Comparator for the user's app status.
5844    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5845    pub app: MaybeUndefined<BooleanComparator>,
5846    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
5847    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5848    pub is_me: MaybeUndefined<BooleanComparator>,
5849    /// Filter based on the existence of the relation.
5850    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5851    pub null: MaybeUndefined<bool>,
5852    /// Compound filters, all of which need to be matched by the user.
5853    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5854    pub and: MaybeUndefined<Vec<NullableUserFilter>>,
5855    /// Compound filters, one of which need to be matched by the user.
5856    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5857    pub or: MaybeUndefined<Vec<NullableUserFilter>>,
5858}
5859/// Comparator for numbers.
5860#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5861#[serde(rename_all = "camelCase")]
5862pub struct NumberComparator {
5863    /// Equals constraint.
5864    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5865    pub eq: MaybeUndefined<f64>,
5866    /// Not-equals constraint.
5867    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5868    pub neq: MaybeUndefined<f64>,
5869    /// In-array constraint.
5870    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5871    pub r#in: MaybeUndefined<Vec<f64>>,
5872    /// Not-in-array constraint.
5873    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5874    pub nin: MaybeUndefined<Vec<f64>>,
5875    /// Less-than constraint. Matches any values that are less than the given value.
5876    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5877    pub lt: MaybeUndefined<f64>,
5878    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5879    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5880    pub lte: MaybeUndefined<f64>,
5881    /// Greater-than constraint. Matches any values that are greater than the given value.
5882    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5883    pub gt: MaybeUndefined<f64>,
5884    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5885    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5886    pub gte: MaybeUndefined<f64>,
5887}
5888#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5889#[serde(rename_all = "camelCase")]
5890pub struct OnboardingCustomerSurvey {
5891    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5892    pub company_role: MaybeUndefined<String>,
5893    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5894    pub company_size: MaybeUndefined<String>,
5895}
5896#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5897#[serde(rename_all = "camelCase")]
5898pub struct OpsgenieInput {
5899    /// The date when the Opsgenie API failed with an unauthorized error.
5900    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5901    pub api_failed_with_unauthorized_error_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
5902}
5903/// Input for updating workspace authentication settings.
5904#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5905#[serde(rename_all = "camelCase")]
5906pub struct OrganizationAuthSettingsInput {
5907    /// Allowed authentication providers, empty array means all are allowed.
5908    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5909    pub allowed_auth_services: MaybeUndefined<Vec<String>>,
5910    /// `Internal` The minimum role required for the auth service bypass exemption.
5911    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5912    pub allowed_auth_service_bypass_role: MaybeUndefined<String>,
5913    /// Whether to hide non-primary workspaces during signup for users with matching email domains.
5914    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5915    pub hide_non_primary_organizations: MaybeUndefined<bool>,
5916    /// Whether to disable admin/owner auth service bypass.
5917    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5918    pub disable_auth_service_bypass: MaybeUndefined<bool>,
5919}
5920#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5921#[serde(rename_all = "camelCase")]
5922pub struct OrganizationDomainCreateInput {
5923    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
5924    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5925    pub id: MaybeUndefined<String>,
5926    /// The identity provider to which to add the domain.
5927    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5928    pub identity_provider_id: MaybeUndefined<String>,
5929    /// The domain name to add.
5930    pub name: String,
5931    /// The email address to which to send the verification code.
5932    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5933    pub verification_email: MaybeUndefined<String>,
5934    /// The authentication type this domain is for.
5935    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5936    pub auth_type: MaybeUndefined<String>,
5937}
5938#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5939#[serde(rename_all = "camelCase")]
5940pub struct OrganizationDomainUpdateInput {
5941    /// Prevent users with this domain to create new workspaces. Only allowed to set on claimed domains!
5942    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5943    pub disable_organization_creation: MaybeUndefined<bool>,
5944}
5945#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5946#[serde(rename_all = "camelCase")]
5947pub struct OrganizationDomainVerificationInput {
5948    /// The identifier in UUID v4 format of the domain being verified.
5949    pub organization_domain_id: String,
5950    /// The verification code sent via email.
5951    pub verification_code: String,
5952}
5953#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5954#[serde(rename_all = "camelCase")]
5955pub struct OrganizationInviteCreateInput {
5956    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
5957    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5958    pub id: MaybeUndefined<String>,
5959    /// The email of the invitee.
5960    pub email: String,
5961    /// What user role the invite should grant.
5962    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5963    pub role: MaybeUndefined<UserRoleType>,
5964    /// The teams that the user has been invited to.
5965    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5966    pub team_ids: MaybeUndefined<Vec<String>>,
5967    /// `INTERNAL` Optional metadata about the invite.
5968    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5969    pub metadata: MaybeUndefined<serde_json::Value>,
5970}
5971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5972#[serde(rename_all = "camelCase")]
5973pub struct OrganizationInviteUpdateInput {
5974    /// The teams that the user has been invited to.
5975    pub team_ids: Vec<String>,
5976}
5977/// `INTERNAL` Organization IP restriction configuration.
5978#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5979#[serde(rename_all = "camelCase")]
5980pub struct OrganizationIpRestrictionInput {
5981    /// IP range in CIDR format.
5982    pub range: String,
5983    /// Restriction type.
5984    pub r#type: String,
5985    /// Optional restriction description.
5986    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
5987    pub description: MaybeUndefined<String>,
5988    /// Whether the restriction is enabled.
5989    pub enabled: bool,
5990}
5991/// `Internal` An MCP server URL entry for the Linear Agent allowlist.
5992#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5993#[serde(rename_all = "camelCase")]
5994pub struct OrganizationLinearAgentMcpServerAllowlistEntryInput {
5995    /// `Internal` The MCP server URL that Linear Agent is allowed to use.
5996    pub url: String,
5997}
5998/// `Internal` Input for updating Linear Agent settings for the workspace.
5999#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6000#[serde(rename_all = "camelCase")]
6001pub struct OrganizationLinearAgentSettingsInput {
6002    /// `Internal` Whether the workspace has enabled web search for Linear Agent.
6003    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6004    pub web_search_enabled: MaybeUndefined<bool>,
6005    /// `Internal` Whether the workspace has enabled MCP servers for Linear Agent.
6006    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6007    pub mcp_servers_enabled: MaybeUndefined<bool>,
6008    /// `Internal` The MCP server allowlist for Linear Agent. When unset, all MCP servers are allowed.
6009    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6010    pub mcp_servers_allowlist:
6011        MaybeUndefined<Vec<OrganizationLinearAgentMcpServerAllowlistEntryInput>>,
6012}
6013/// Input for updating workspace security settings such as role-based access controls.
6014#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6015#[serde(rename_all = "camelCase")]
6016pub struct OrganizationSecuritySettingsInput {
6017    /// The minimum role required to create personal API keys.
6018    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6019    pub personal_api_keys_role: MaybeUndefined<UserRoleType>,
6020    /// The minimum role required to invite users.
6021    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6022    pub invitations_role: MaybeUndefined<UserRoleType>,
6023    /// The minimum role required to create teams.
6024    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6025    pub team_creation_role: MaybeUndefined<UserRoleType>,
6026    /// The minimum role required to manage workspace labels.
6027    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6028    pub label_management_role: MaybeUndefined<UserRoleType>,
6029    /// The minimum role required to manage API settings.
6030    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6031    pub api_settings_role: MaybeUndefined<UserRoleType>,
6032    /// The minimum role required to manage workspace templates.
6033    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6034    pub template_management_role: MaybeUndefined<UserRoleType>,
6035    /// The minimum role required to import data.
6036    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6037    pub import_role: MaybeUndefined<UserRoleType>,
6038    /// The minimum role required to manage agent guidance prompts and settings.
6039    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6040    pub agent_guidance_role: MaybeUndefined<UserRoleType>,
6041    /// The minimum role required to install and connect new integrations.
6042    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6043    pub integration_creation_role: MaybeUndefined<UserRoleType>,
6044}
6045/// Input for starting a workspace trial on a specific plan.
6046#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6047#[serde(rename_all = "camelCase")]
6048pub struct OrganizationStartTrialInput {
6049    /// The plan type to trial.
6050    pub plan_type: String,
6051}
6052/// Input for updating the workspace.
6053#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6054#[serde(rename_all = "camelCase")]
6055pub struct OrganizationUpdateInput {
6056    /// The name of the workspace.
6057    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6058    pub name: MaybeUndefined<String>,
6059    /// The logo URL of the workspace.
6060    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6061    pub logo_url: MaybeUndefined<String>,
6062    /// The URL key of the workspace.
6063    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6064    pub url_key: MaybeUndefined<String>,
6065    /// How git branches are formatted. If null, default formatting will be used.
6066    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6067    pub git_branch_format: MaybeUndefined<String>,
6068    /// Whether the Git integration linkback messages should be sent for private repositories.
6069    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6070    pub git_linkback_messages_enabled: MaybeUndefined<bool>,
6071    /// Whether the Git integration linkback messages should be sent for public repositories.
6072    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6073    pub git_public_linkback_messages_enabled: MaybeUndefined<bool>,
6074    /// Whether issue descriptions should be included in Git integration linkback messages.
6075    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6076    pub git_linkback_descriptions_enabled: MaybeUndefined<bool>,
6077    /// Whether the workspace is using roadmap.
6078    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6079    pub roadmap_enabled: MaybeUndefined<bool>,
6080    /// The n-weekly frequency at which to prompt for project updates.
6081    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6082    pub project_update_reminder_frequency_in_weeks: MaybeUndefined<f64>,
6083    /// The day at which project updates are sent.
6084    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6085    pub project_update_reminders_day: MaybeUndefined<Day>,
6086    /// The hour at which project updates are sent.
6087    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6088    pub project_update_reminders_hour: MaybeUndefined<f64>,
6089    /// `ALPHA` The n-weekly frequency at which to prompt for initiative updates.
6090    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6091    pub initiative_update_reminder_frequency_in_weeks: MaybeUndefined<f64>,
6092    /// `ALPHA` The day at which initiative updates are sent.
6093    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6094    pub initiative_update_reminders_day: MaybeUndefined<Day>,
6095    /// `ALPHA` The hour at which initiative updates are sent.
6096    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6097    pub initiative_update_reminders_hour: MaybeUndefined<f64>,
6098    /// The month at which the fiscal year starts.
6099    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6100    pub fiscal_year_start_month: MaybeUndefined<f64>,
6101    /// `Internal` The list of working days. Sunday is 0, Monday is 1, etc.
6102    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6103    pub working_days: MaybeUndefined<Vec<f64>>,
6104    /// Whether the workspace has opted for reduced customer support attachment information.
6105    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6106    pub reduced_personal_information: MaybeUndefined<bool>,
6107    /// Whether the workspace has opted for having to approve all OAuth applications for install.
6108    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6109    pub oauth_app_review: MaybeUndefined<bool>,
6110    /// List of services that are allowed to be used for login.
6111    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6112    pub allowed_auth_services: MaybeUndefined<Vec<String>>,
6113    /// Internal. Whether SLAs have been enabled for the workspace.
6114    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6115    pub sla_enabled: MaybeUndefined<bool>,
6116    /// Whether agent invocation is restricted to full workspace members.
6117    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6118    pub restrict_agent_invocation_to_members: MaybeUndefined<bool>,
6119    /// IP restriction configurations controlling allowed access the workspace.
6120    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6121    pub ip_restrictions: MaybeUndefined<Vec<OrganizationIpRestrictionInput>>,
6122    /// Allowed file upload content types.
6123    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6124    pub allowed_file_upload_content_types: MaybeUndefined<Vec<String>>,
6125    /// `ALPHA` Theme settings for the workspace.
6126    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6127    pub theme_settings: MaybeUndefined<serde_json::Value>,
6128    /// `INTERNAL` Whether the workspace is using customers.
6129    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6130    pub customers_enabled: MaybeUndefined<bool>,
6131    /// `INTERNAL` Configuration settings for the Customers feature.
6132    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6133    pub customers_configuration: MaybeUndefined<serde_json::Value>,
6134    /// `INTERNAL` Whether code intelligence is enabled for the workspace.
6135    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6136    pub code_intelligence_enabled: MaybeUndefined<bool>,
6137    /// `INTERNAL` GitHub repository in owner/repo format for code intelligence.
6138    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6139    pub code_intelligence_repository: MaybeUndefined<String>,
6140    /// Whether the workspace has enabled the feed feature.
6141    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6142    pub feed_enabled: MaybeUndefined<bool>,
6143    /// Whether to hide other workspaces for new users signing up with email domains claimed by this organization.
6144    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6145    pub hide_non_primary_organizations: MaybeUndefined<bool>,
6146    /// Default schedule for how often feed summaries are generated.
6147    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6148    pub default_feed_summary_schedule: MaybeUndefined<FeedSummarySchedule>,
6149    /// `INTERNAL` Whether the workspace has enabled the AI add-on.
6150    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6151    pub ai_addon_enabled: MaybeUndefined<bool>,
6152    /// `INTERNAL` Whether the workspace has enabled agent automation.
6153    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6154    pub agent_automation_enabled: MaybeUndefined<bool>,
6155    /// `INTERNAL` Whether the workspace has enabled generated updates.
6156    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6157    pub generated_updates_enabled: MaybeUndefined<bool>,
6158    /// `INTERNAL` Whether the workspace has opted in to AI telemetry.
6159    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6160    pub ai_telemetry_enabled: MaybeUndefined<bool>,
6161    /// Whether the workspace has enabled AI discussion summaries for issues.
6162    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6163    pub ai_discussion_summaries_enabled: MaybeUndefined<bool>,
6164    /// Whether the workspace has enabled resolved thread AI summaries.
6165    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6166    pub ai_thread_summaries_enabled: MaybeUndefined<bool>,
6167    /// Whether HIPAA compliance is enabled for the workspace.
6168    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6169    pub hipaa_compliance_enabled: MaybeUndefined<bool>,
6170    /// The security settings for the workspace.
6171    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6172    pub security_settings: MaybeUndefined<OrganizationSecuritySettingsInput>,
6173    /// The authentication settings for the workspace.
6174    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6175    pub auth_settings: MaybeUndefined<OrganizationAuthSettingsInput>,
6176    /// `INTERNAL` Configure per-modality AI host providers and model families.
6177    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6178    pub ai_provider_configuration: MaybeUndefined<serde_json::Value>,
6179    /// The ID of the Slack integration to use for auto-creating project channels.
6180    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6181    pub slack_project_channel_integration_id: MaybeUndefined<String>,
6182    /// The prefix to use for auto-created Slack project channels (p-, proj-, or project-).
6183    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6184    pub slack_project_channel_prefix: MaybeUndefined<String>,
6185    /// `Internal` Whether the Slack project channels feature is enabled for the workspace.
6186    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6187    pub slack_project_channels_enabled: MaybeUndefined<bool>,
6188    /// `Internal` Whether to automatically create a Slack channel when a new project is created.
6189    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6190    pub slack_auto_create_project_channel: MaybeUndefined<bool>,
6191    /// `Internal` Whether the workspace has enabled Linear Agent.
6192    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6193    pub linear_agent_enabled: MaybeUndefined<bool>,
6194    /// `Internal` Settings for Linear Agent features.
6195    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6196    pub linear_agent_settings: MaybeUndefined<OrganizationLinearAgentSettingsInput>,
6197    /// `INTERNAL` Whether the workspace has enabled the Coding Agent.
6198    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6199    pub coding_agent_enabled: MaybeUndefined<bool>,
6200}
6201/// Customer owner sorting options.
6202#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6203#[serde(rename_all = "camelCase")]
6204pub struct OwnerSort {
6205    /// Whether nulls should be sorted first or last
6206    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6207    pub nulls: MaybeUndefined<PaginationNulls>,
6208    /// The order for the individual sort
6209    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6210    pub order: MaybeUndefined<PaginationSortOrder>,
6211}
6212#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6213#[serde(rename_all = "camelCase")]
6214pub struct PagerDutyInput {
6215    /// The date when the PagerDuty API failed with an unauthorized error.
6216    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6217    pub api_failed_with_unauthorized_error_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
6218}
6219#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6220#[serde(rename_all = "camelCase")]
6221pub struct PartialNotificationChannelPreferencesInput {
6222    /// Whether notifications are currently enabled for mobile.
6223    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6224    pub mobile: MaybeUndefined<bool>,
6225    /// Whether notifications are currently enabled for desktop.
6226    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6227    pub desktop: MaybeUndefined<bool>,
6228    /// Whether notifications are currently enabled for email.
6229    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6230    pub email: MaybeUndefined<bool>,
6231    /// Whether notifications are currently enabled for Slack.
6232    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6233    pub slack: MaybeUndefined<bool>,
6234}
6235/// Issue priority sorting options.
6236#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6237#[serde(rename_all = "camelCase")]
6238pub struct PrioritySort {
6239    /// Whether nulls should be sorted first or last
6240    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6241    pub nulls: MaybeUndefined<PaginationNulls>,
6242    /// The order for the individual sort
6243    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6244    pub order: MaybeUndefined<PaginationSortOrder>,
6245    /// Whether to consider no priority as the highest or lowest priority
6246    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6247    pub no_priority_first: MaybeUndefined<bool>,
6248}
6249/// Project filtering options.
6250#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6251#[serde(rename_all = "camelCase")]
6252pub struct ProjectCollectionFilter {
6253    /// Comparator for the identifier.
6254    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6255    pub id: MaybeUndefined<IDComparator>,
6256    /// Comparator for the created at date.
6257    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6258    pub created_at: MaybeUndefined<DateComparator>,
6259    /// Comparator for the updated at date.
6260    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6261    pub updated_at: MaybeUndefined<DateComparator>,
6262    /// Comparator for the project name.
6263    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6264    pub name: MaybeUndefined<StringComparator>,
6265    /// Comparator for the project slug ID.
6266    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6267    pub slug_id: MaybeUndefined<StringComparator>,
6268    /// `DEPRECATED` Comparator for the project state.
6269    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6270    pub state: MaybeUndefined<StringComparator>,
6271    /// Filters that the project's status must satisfy.
6272    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6273    pub status: MaybeUndefined<Box<ProjectStatusFilter>>,
6274    /// Comparator for the projects priority.
6275    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6276    pub priority: MaybeUndefined<NullableNumberComparator>,
6277    /// Filters that project labels must satisfy.
6278    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6279    pub labels: MaybeUndefined<Box<ProjectLabelCollectionFilter>>,
6280    /// `Internal` Comparator for the project's content.
6281    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6282    pub searchable_content: MaybeUndefined<ContentComparator>,
6283    /// Comparator for the project started date (when it was moved to an "In Progress" status).
6284    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6285    pub started_at: MaybeUndefined<NullableDateComparator>,
6286    /// Comparator for the project completion date.
6287    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6288    pub completed_at: MaybeUndefined<NullableDateComparator>,
6289    /// Comparator for the project cancelation date.
6290    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6291    pub canceled_at: MaybeUndefined<NullableDateComparator>,
6292    /// Comparator for the project start date.
6293    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6294    pub start_date: MaybeUndefined<NullableDateComparator>,
6295    /// Comparator for the project target date.
6296    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6297    pub target_date: MaybeUndefined<NullableDateComparator>,
6298    /// Comparator for the project health: onTrack, atRisk, offTrack
6299    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6300    pub health: MaybeUndefined<StringComparator>,
6301    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
6302    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6303    pub health_with_age: MaybeUndefined<StringComparator>,
6304    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
6305    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6306    pub activity_type: MaybeUndefined<StringComparator>,
6307    /// Comparator for filtering projects with relations.
6308    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6309    pub has_related_relations: MaybeUndefined<RelationExistsComparator>,
6310    /// `Deprecated` Comparator for filtering projects which this is depended on by.
6311    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6312    pub has_depended_on_by_relations: MaybeUndefined<RelationExistsComparator>,
6313    /// `Deprecated`Comparator for filtering projects which this depends on.
6314    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6315    pub has_depends_on_relations: MaybeUndefined<RelationExistsComparator>,
6316    /// Comparator for filtering projects which are blocked.
6317    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6318    pub has_blocked_by_relations: MaybeUndefined<RelationExistsComparator>,
6319    /// Comparator for filtering projects which are blocking.
6320    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6321    pub has_blocking_relations: MaybeUndefined<RelationExistsComparator>,
6322    /// Comparator for filtering projects with violated dependencies.
6323    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6324    pub has_violated_relations: MaybeUndefined<RelationExistsComparator>,
6325    /// Comparator for the project updates.
6326    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6327    pub project_updates: MaybeUndefined<ProjectUpdatesCollectionFilter>,
6328    /// Filters that the projects creator must satisfy.
6329    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6330    pub creator: MaybeUndefined<Box<UserFilter>>,
6331    /// Filters that the projects lead must satisfy.
6332    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6333    pub lead: MaybeUndefined<Box<NullableUserFilter>>,
6334    /// Filters that the projects members must satisfy.
6335    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6336    pub members: MaybeUndefined<Box<UserCollectionFilter>>,
6337    /// Filters that the projects issues must satisfy.
6338    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6339    pub issues: MaybeUndefined<Box<IssueCollectionFilter>>,
6340    /// Filters that the projects roadmaps must satisfy.
6341    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6342    pub roadmaps: MaybeUndefined<Box<RoadmapCollectionFilter>>,
6343    /// Filters that the projects initiatives must satisfy.
6344    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6345    pub initiatives: MaybeUndefined<Box<InitiativeCollectionFilter>>,
6346    /// Filters that the project's milestones must satisfy.
6347    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6348    pub project_milestones: MaybeUndefined<Box<ProjectMilestoneCollectionFilter>>,
6349    /// Filters that the project's completed milestones must satisfy.
6350    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6351    pub completed_project_milestones: MaybeUndefined<Box<ProjectMilestoneCollectionFilter>>,
6352    /// Filters that the project's next milestone must satisfy.
6353    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6354    pub next_project_milestone: MaybeUndefined<Box<ProjectMilestoneFilter>>,
6355    /// Filters that the project's team must satisfy.
6356    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6357    pub accessible_teams: MaybeUndefined<Box<TeamCollectionFilter>>,
6358    /// Filters that the last applied template must satisfy.
6359    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6360    pub last_applied_template: MaybeUndefined<NullableTemplateFilter>,
6361    /// Filters that the project's customer needs must satisfy.
6362    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6363    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
6364    /// Count of customers
6365    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6366    pub customer_count: MaybeUndefined<NumberComparator>,
6367    /// Count of important customers
6368    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6369    pub customer_important_count: MaybeUndefined<NumberComparator>,
6370    /// Compound filters, all of which need to be matched by the project.
6371    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6372    pub and: MaybeUndefined<Vec<ProjectCollectionFilter>>,
6373    /// Compound filters, one of which need to be matched by the project.
6374    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6375    pub or: MaybeUndefined<Vec<ProjectCollectionFilter>>,
6376    /// Filters that needs to be matched by some projects.
6377    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6378    pub some: MaybeUndefined<Box<ProjectFilter>>,
6379    /// Filters that needs to be matched by all projects.
6380    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6381    pub every: MaybeUndefined<Box<ProjectFilter>>,
6382    /// Comparator for the collection length.
6383    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6384    pub length: MaybeUndefined<NumberComparator>,
6385}
6386/// Input for creating a new project. A name and at least one team are required. All other fields are optional and will use defaults if not specified.
6387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6388#[serde(rename_all = "camelCase")]
6389pub struct ProjectCreateInput {
6390    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6391    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6392    pub id: MaybeUndefined<String>,
6393    /// The name of the project.
6394    pub name: String,
6395    /// The icon of the project.
6396    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6397    pub icon: MaybeUndefined<String>,
6398    /// The color of the project.
6399    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6400    pub color: MaybeUndefined<String>,
6401    /// The ID of the project status.
6402    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6403    pub status_id: MaybeUndefined<String>,
6404    /// The description for the project.
6405    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6406    pub description: MaybeUndefined<String>,
6407    /// The project content as markdown.
6408    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6409    pub content: MaybeUndefined<String>,
6410    /// The identifiers of the teams this project is associated with.
6411    pub team_ids: Vec<String>,
6412    /// The ID of the issue that was converted into this project.
6413    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6414    pub converted_from_issue_id: MaybeUndefined<String>,
6415    /// The ID of the last template applied to the project.
6416    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6417    pub last_applied_template_id: MaybeUndefined<String>,
6418    /// The ID of a project template to apply when creating the project. Overrides useDefaultTemplate if both are provided.
6419    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6420    pub template_id: MaybeUndefined<String>,
6421    /// When set to true, the default project template of the first team provided will be applied. If templateId is provided, this will be ignored.
6422    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6423    pub use_default_template: MaybeUndefined<bool>,
6424    /// The identifier of the project lead.
6425    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6426    pub lead_id: MaybeUndefined<String>,
6427    /// The identifiers of the members of this project.
6428    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6429    pub member_ids: MaybeUndefined<Vec<String>>,
6430    /// The planned start date of the project.
6431    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6432    pub start_date: MaybeUndefined<chrono::NaiveDate>,
6433    /// The resolution of the project's start date.
6434    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6435    pub start_date_resolution: MaybeUndefined<DateResolutionType>,
6436    /// The planned target date of the project.
6437    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6438    pub target_date: MaybeUndefined<chrono::NaiveDate>,
6439    /// The resolution of the project's estimated completion date.
6440    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6441    pub target_date_resolution: MaybeUndefined<DateResolutionType>,
6442    /// The sort order for the project within shared views.
6443    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6444    pub sort_order: MaybeUndefined<f64>,
6445    /// The sort order for the project within shared views, when ordered by priority.
6446    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6447    pub priority_sort_order: MaybeUndefined<f64>,
6448    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low.
6449    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6450    pub priority: MaybeUndefined<i64>,
6451    /// `Internal` The identifiers of the project labels associated with this project.
6452    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6453    pub label_ids: MaybeUndefined<Vec<String>>,
6454}
6455/// Project creation date sorting options.
6456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6457#[serde(rename_all = "camelCase")]
6458pub struct ProjectCreatedAtSort {
6459    /// Whether nulls should be sorted first or last
6460    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6461    pub nulls: MaybeUndefined<PaginationNulls>,
6462    /// The order for the individual sort
6463    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6464    pub order: MaybeUndefined<PaginationSortOrder>,
6465}
6466/// Project filtering options.
6467#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6468#[serde(rename_all = "camelCase")]
6469pub struct ProjectFilter {
6470    /// Comparator for the identifier.
6471    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6472    pub id: MaybeUndefined<IDComparator>,
6473    /// Comparator for the created at date.
6474    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6475    pub created_at: MaybeUndefined<DateComparator>,
6476    /// Comparator for the updated at date.
6477    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6478    pub updated_at: MaybeUndefined<DateComparator>,
6479    /// Comparator for the project name.
6480    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6481    pub name: MaybeUndefined<StringComparator>,
6482    /// Comparator for the project slug ID.
6483    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6484    pub slug_id: MaybeUndefined<StringComparator>,
6485    /// `DEPRECATED` Comparator for the project state.
6486    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6487    pub state: MaybeUndefined<StringComparator>,
6488    /// Filters that the project's status must satisfy.
6489    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6490    pub status: MaybeUndefined<Box<ProjectStatusFilter>>,
6491    /// Comparator for the projects priority.
6492    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6493    pub priority: MaybeUndefined<NullableNumberComparator>,
6494    /// Filters that project labels must satisfy.
6495    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6496    pub labels: MaybeUndefined<Box<ProjectLabelCollectionFilter>>,
6497    /// `Internal` Comparator for the project's content.
6498    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6499    pub searchable_content: MaybeUndefined<ContentComparator>,
6500    /// Comparator for the project started date (when it was moved to an "In Progress" status).
6501    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6502    pub started_at: MaybeUndefined<NullableDateComparator>,
6503    /// Comparator for the project completion date.
6504    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6505    pub completed_at: MaybeUndefined<NullableDateComparator>,
6506    /// Comparator for the project cancelation date.
6507    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6508    pub canceled_at: MaybeUndefined<NullableDateComparator>,
6509    /// Comparator for the project start date.
6510    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6511    pub start_date: MaybeUndefined<NullableDateComparator>,
6512    /// Comparator for the project target date.
6513    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6514    pub target_date: MaybeUndefined<NullableDateComparator>,
6515    /// Comparator for the project health: onTrack, atRisk, offTrack
6516    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6517    pub health: MaybeUndefined<StringComparator>,
6518    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
6519    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6520    pub health_with_age: MaybeUndefined<StringComparator>,
6521    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
6522    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6523    pub activity_type: MaybeUndefined<StringComparator>,
6524    /// Comparator for filtering projects with relations.
6525    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6526    pub has_related_relations: MaybeUndefined<RelationExistsComparator>,
6527    /// `Deprecated` Comparator for filtering projects which this is depended on by.
6528    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6529    pub has_depended_on_by_relations: MaybeUndefined<RelationExistsComparator>,
6530    /// `Deprecated`Comparator for filtering projects which this depends on.
6531    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6532    pub has_depends_on_relations: MaybeUndefined<RelationExistsComparator>,
6533    /// Comparator for filtering projects which are blocked.
6534    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6535    pub has_blocked_by_relations: MaybeUndefined<RelationExistsComparator>,
6536    /// Comparator for filtering projects which are blocking.
6537    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6538    pub has_blocking_relations: MaybeUndefined<RelationExistsComparator>,
6539    /// Comparator for filtering projects with violated dependencies.
6540    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6541    pub has_violated_relations: MaybeUndefined<RelationExistsComparator>,
6542    /// Comparator for the project updates.
6543    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6544    pub project_updates: MaybeUndefined<ProjectUpdatesCollectionFilter>,
6545    /// Filters that the projects creator must satisfy.
6546    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6547    pub creator: MaybeUndefined<Box<UserFilter>>,
6548    /// Filters that the projects lead must satisfy.
6549    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6550    pub lead: MaybeUndefined<Box<NullableUserFilter>>,
6551    /// Filters that the projects members must satisfy.
6552    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6553    pub members: MaybeUndefined<Box<UserCollectionFilter>>,
6554    /// Filters that the projects issues must satisfy.
6555    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6556    pub issues: MaybeUndefined<Box<IssueCollectionFilter>>,
6557    /// Filters that the projects roadmaps must satisfy.
6558    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6559    pub roadmaps: MaybeUndefined<Box<RoadmapCollectionFilter>>,
6560    /// Filters that the projects initiatives must satisfy.
6561    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6562    pub initiatives: MaybeUndefined<Box<InitiativeCollectionFilter>>,
6563    /// Filters that the project's milestones must satisfy.
6564    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6565    pub project_milestones: MaybeUndefined<Box<ProjectMilestoneCollectionFilter>>,
6566    /// Filters that the project's completed milestones must satisfy.
6567    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6568    pub completed_project_milestones: MaybeUndefined<Box<ProjectMilestoneCollectionFilter>>,
6569    /// Filters that the project's next milestone must satisfy.
6570    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6571    pub next_project_milestone: MaybeUndefined<Box<ProjectMilestoneFilter>>,
6572    /// Filters that the project's team must satisfy.
6573    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6574    pub accessible_teams: MaybeUndefined<Box<TeamCollectionFilter>>,
6575    /// Filters that the last applied template must satisfy.
6576    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6577    pub last_applied_template: MaybeUndefined<NullableTemplateFilter>,
6578    /// Filters that the project's customer needs must satisfy.
6579    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6580    pub needs: MaybeUndefined<Box<CustomerNeedCollectionFilter>>,
6581    /// Count of customers
6582    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6583    pub customer_count: MaybeUndefined<NumberComparator>,
6584    /// Count of important customers
6585    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6586    pub customer_important_count: MaybeUndefined<NumberComparator>,
6587    /// Compound filters, all of which need to be matched by the project.
6588    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6589    pub and: MaybeUndefined<Vec<ProjectFilter>>,
6590    /// Compound filters, one of which need to be matched by the project.
6591    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6592    pub or: MaybeUndefined<Vec<ProjectFilter>>,
6593}
6594/// Project health sorting options.
6595#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6596#[serde(rename_all = "camelCase")]
6597pub struct ProjectHealthSort {
6598    /// Whether nulls should be sorted first or last
6599    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6600    pub nulls: MaybeUndefined<PaginationNulls>,
6601    /// The order for the individual sort
6602    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6603    pub order: MaybeUndefined<PaginationSortOrder>,
6604}
6605/// Project label filtering options.
6606#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6607#[serde(rename_all = "camelCase")]
6608pub struct ProjectLabelCollectionFilter {
6609    /// Comparator for the identifier.
6610    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6611    pub id: MaybeUndefined<IDComparator>,
6612    /// Comparator for the created at date.
6613    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6614    pub created_at: MaybeUndefined<DateComparator>,
6615    /// Comparator for the updated at date.
6616    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6617    pub updated_at: MaybeUndefined<DateComparator>,
6618    /// Comparator for the name.
6619    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6620    pub name: MaybeUndefined<StringComparator>,
6621    /// Comparator for whether the label is a group label.
6622    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6623    pub is_group: MaybeUndefined<BooleanComparator>,
6624    /// Filters that the project labels creator must satisfy.
6625    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6626    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
6627    /// Filters that the project label's parent label must satisfy.
6628    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6629    pub parent: MaybeUndefined<Box<ProjectLabelFilter>>,
6630    /// Filter based on the existence of the relation.
6631    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6632    pub null: MaybeUndefined<bool>,
6633    /// Compound filters, all of which need to be matched by the label.
6634    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6635    pub and: MaybeUndefined<Vec<ProjectLabelCollectionFilter>>,
6636    /// Compound filters, one of which need to be matched by the label.
6637    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6638    pub or: MaybeUndefined<Vec<ProjectLabelCollectionFilter>>,
6639    /// Filters that needs to be matched by some project labels.
6640    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6641    pub some: MaybeUndefined<Box<ProjectLabelCollectionFilter>>,
6642    /// Filters that needs to be matched by all project labels.
6643    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6644    pub every: MaybeUndefined<Box<ProjectLabelFilter>>,
6645    /// Comparator for the collection length.
6646    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6647    pub length: MaybeUndefined<NumberComparator>,
6648}
6649/// Input for creating a new project label. A name is required. The label is created as a workspace-level label available to all projects.
6650#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6651#[serde(rename_all = "camelCase")]
6652pub struct ProjectLabelCreateInput {
6653    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6654    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6655    pub id: MaybeUndefined<String>,
6656    /// The name of the label.
6657    pub name: String,
6658    /// The description of the label.
6659    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6660    pub description: MaybeUndefined<String>,
6661    /// The color of the label.
6662    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6663    pub color: MaybeUndefined<String>,
6664    /// The identifier of the parent label.
6665    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6666    pub parent_id: MaybeUndefined<String>,
6667    /// Whether the label is a group.
6668    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6669    pub is_group: MaybeUndefined<bool>,
6670    /// The time at which the label was retired. Set to null to restore a retired label.
6671    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6672    pub retired_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
6673}
6674/// Project label filtering options.
6675#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6676#[serde(rename_all = "camelCase")]
6677pub struct ProjectLabelFilter {
6678    /// Comparator for the identifier.
6679    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6680    pub id: MaybeUndefined<IDComparator>,
6681    /// Comparator for the created at date.
6682    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6683    pub created_at: MaybeUndefined<DateComparator>,
6684    /// Comparator for the updated at date.
6685    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6686    pub updated_at: MaybeUndefined<DateComparator>,
6687    /// Comparator for the name.
6688    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6689    pub name: MaybeUndefined<StringComparator>,
6690    /// Comparator for whether the label is a group label.
6691    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6692    pub is_group: MaybeUndefined<BooleanComparator>,
6693    /// Filters that the project labels creator must satisfy.
6694    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6695    pub creator: MaybeUndefined<Box<NullableUserFilter>>,
6696    /// Filters that the project label's parent label must satisfy.
6697    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6698    pub parent: MaybeUndefined<Box<ProjectLabelFilter>>,
6699    /// Compound filters, all of which need to be matched by the label.
6700    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6701    pub and: MaybeUndefined<Vec<ProjectLabelFilter>>,
6702    /// Compound filters, one of which need to be matched by the label.
6703    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6704    pub or: MaybeUndefined<Vec<ProjectLabelFilter>>,
6705}
6706/// Input for updating an existing project label. All fields are optional; only provided fields will be updated.
6707#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6708#[serde(rename_all = "camelCase")]
6709pub struct ProjectLabelUpdateInput {
6710    /// The name of the label.
6711    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6712    pub name: MaybeUndefined<String>,
6713    /// The description of the label.
6714    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6715    pub description: MaybeUndefined<String>,
6716    /// The identifier of the parent label.
6717    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6718    pub parent_id: MaybeUndefined<String>,
6719    /// The color of the label.
6720    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6721    pub color: MaybeUndefined<String>,
6722    /// Whether the label is a group.
6723    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6724    pub is_group: MaybeUndefined<bool>,
6725    /// The time at which the label was retired. Set to null to restore a retired label.
6726    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6727    pub retired_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
6728}
6729/// Project lead sorting options.
6730#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6731#[serde(rename_all = "camelCase")]
6732pub struct ProjectLeadSort {
6733    /// Whether nulls should be sorted first or last
6734    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6735    pub nulls: MaybeUndefined<PaginationNulls>,
6736    /// The order for the individual sort
6737    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6738    pub order: MaybeUndefined<PaginationSortOrder>,
6739}
6740/// Project manual order sorting options.
6741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6742#[serde(rename_all = "camelCase")]
6743pub struct ProjectManualSort {
6744    /// Whether nulls should be sorted first or last
6745    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6746    pub nulls: MaybeUndefined<PaginationNulls>,
6747    /// The order for the individual sort
6748    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6749    pub order: MaybeUndefined<PaginationSortOrder>,
6750}
6751/// Milestone collection filtering options.
6752#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6753#[serde(rename_all = "camelCase")]
6754pub struct ProjectMilestoneCollectionFilter {
6755    /// Comparator for the identifier.
6756    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6757    pub id: MaybeUndefined<IDComparator>,
6758    /// Comparator for the created at date.
6759    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6760    pub created_at: MaybeUndefined<DateComparator>,
6761    /// Comparator for the updated at date.
6762    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6763    pub updated_at: MaybeUndefined<DateComparator>,
6764    /// Comparator for the project milestone name.
6765    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6766    pub name: MaybeUndefined<NullableStringComparator>,
6767    /// Comparator for the project milestone target date.
6768    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6769    pub target_date: MaybeUndefined<NullableDateComparator>,
6770    /// Filters that the project milestone's project must satisfy.
6771    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6772    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
6773    /// Compound filters, all of which need to be matched by the milestone.
6774    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6775    pub and: MaybeUndefined<Vec<ProjectMilestoneCollectionFilter>>,
6776    /// Compound filters, one of which need to be matched by the milestone.
6777    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6778    pub or: MaybeUndefined<Vec<ProjectMilestoneCollectionFilter>>,
6779    /// Filters that needs to be matched by some milestones.
6780    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6781    pub some: MaybeUndefined<Box<ProjectMilestoneFilter>>,
6782    /// Filters that needs to be matched by all milestones.
6783    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6784    pub every: MaybeUndefined<Box<ProjectMilestoneFilter>>,
6785    /// Comparator for the collection length.
6786    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6787    pub length: MaybeUndefined<NumberComparator>,
6788}
6789/// Input for creating a new project milestone.
6790#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6791#[serde(rename_all = "camelCase")]
6792pub struct ProjectMilestoneCreateInput {
6793    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6794    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6795    pub id: MaybeUndefined<String>,
6796    /// The name of the project milestone.
6797    pub name: String,
6798    /// The description of the project milestone in markdown format.
6799    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6800    pub description: MaybeUndefined<String>,
6801    /// `Internal` The description of the project milestone as a Prosemirror document.
6802    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6803    pub description_data: MaybeUndefined<serde_json::Value>,
6804    /// The planned target date of the project milestone.
6805    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6806    pub target_date: MaybeUndefined<chrono::NaiveDate>,
6807    /// Related project for the project milestone.
6808    pub project_id: String,
6809    /// The sort order for the project milestone within a project.
6810    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6811    pub sort_order: MaybeUndefined<f64>,
6812}
6813/// Project milestone filtering options.
6814#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6815#[serde(rename_all = "camelCase")]
6816pub struct ProjectMilestoneFilter {
6817    /// Comparator for the identifier.
6818    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6819    pub id: MaybeUndefined<IDComparator>,
6820    /// Comparator for the created at date.
6821    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6822    pub created_at: MaybeUndefined<DateComparator>,
6823    /// Comparator for the updated at date.
6824    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6825    pub updated_at: MaybeUndefined<DateComparator>,
6826    /// Comparator for the project milestone name.
6827    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6828    pub name: MaybeUndefined<NullableStringComparator>,
6829    /// Comparator for the project milestone target date.
6830    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6831    pub target_date: MaybeUndefined<NullableDateComparator>,
6832    /// Filters that the project milestone's project must satisfy.
6833    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6834    pub project: MaybeUndefined<Box<NullableProjectFilter>>,
6835    /// Compound filters, all of which need to be matched by the project milestone.
6836    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6837    pub and: MaybeUndefined<Vec<ProjectMilestoneFilter>>,
6838    /// Compound filters, one of which need to be matched by the project milestone.
6839    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6840    pub or: MaybeUndefined<Vec<ProjectMilestoneFilter>>,
6841}
6842/// `Internal` Input for moving a project milestone to another project.
6843#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6844#[serde(rename_all = "camelCase")]
6845pub struct ProjectMilestoneMoveInput {
6846    /// The identifier of the project to move the milestone to.
6847    pub project_id: String,
6848    /// The team id to move the attached issues to. This is needed when there is a mismatch between a project's teams and the milestone's issues' teams. Either this or addIssueTeamToProject is required in that situation to resolve constraints.
6849    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6850    pub new_issue_team_id: MaybeUndefined<String>,
6851    /// Whether to add each milestone issue's team to the project. This is needed when there is a mismatch between a project's teams and the milestone's issues' teams. Either this or newIssueTeamId is required in that situation to resolve constraints.
6852    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6853    pub add_issue_team_to_project: MaybeUndefined<bool>,
6854    /// A list of issue id to team ids, used for undoing a previous milestone move where the specified issues were moved from the specified teams.
6855    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6856    pub undo_issue_team_ids: MaybeUndefined<Vec<ProjectMilestoneMoveIssueToTeamInput>>,
6857    /// A mapping of project id to a previous set of team ids, used for undoing a previous milestone move where the specified teams were added to the project.
6858    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6859    pub undo_project_team_ids: MaybeUndefined<ProjectMilestoneMoveProjectTeamsInput>,
6860}
6861/// `Internal` Used for ProjectMilestoneMoveInput to describe a mapping between an issue and its team.
6862#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6863#[serde(rename_all = "camelCase")]
6864pub struct ProjectMilestoneMoveIssueToTeamInput {
6865    /// The issue id in this relationship, you can use * as wildcard if all issues are being moved to the same team
6866    pub issue_id: String,
6867    /// The team id in this relationship
6868    pub team_id: String,
6869}
6870/// `Internal` Used for ProjectMilestoneMoveInput to describe a snapshot of a project and its team ids
6871#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6872#[serde(rename_all = "camelCase")]
6873pub struct ProjectMilestoneMoveProjectTeamsInput {
6874    /// The project id
6875    pub project_id: String,
6876    /// The team ids for the project
6877    pub team_ids: Vec<String>,
6878}
6879/// Input for updating an existing project milestone.
6880#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6881#[serde(rename_all = "camelCase")]
6882pub struct ProjectMilestoneUpdateInput {
6883    /// The name of the project milestone.
6884    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6885    pub name: MaybeUndefined<String>,
6886    /// The description of the project milestone in markdown format.
6887    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6888    pub description: MaybeUndefined<String>,
6889    /// `Internal` The description of the project milestone as a Prosemirror document.
6890    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6891    pub description_data: MaybeUndefined<serde_json::Value>,
6892    /// The planned target date of the project milestone.
6893    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6894    pub target_date: MaybeUndefined<chrono::NaiveDate>,
6895    /// The sort order for the project milestone within a project.
6896    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6897    pub sort_order: MaybeUndefined<f64>,
6898    /// Related project for the project milestone.
6899    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6900    pub project_id: MaybeUndefined<String>,
6901}
6902/// Project name sorting options.
6903#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6904#[serde(rename_all = "camelCase")]
6905pub struct ProjectNameSort {
6906    /// Whether nulls should be sorted first or last
6907    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6908    pub nulls: MaybeUndefined<PaginationNulls>,
6909    /// The order for the individual sort
6910    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6911    pub order: MaybeUndefined<PaginationSortOrder>,
6912}
6913/// Project priority sorting options.
6914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6915#[serde(rename_all = "camelCase")]
6916pub struct ProjectPrioritySort {
6917    /// Whether nulls should be sorted first or last
6918    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6919    pub nulls: MaybeUndefined<PaginationNulls>,
6920    /// The order for the individual sort
6921    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6922    pub order: MaybeUndefined<PaginationSortOrder>,
6923    /// Whether to consider no priority as the highest or lowest priority
6924    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6925    pub no_priority_first: MaybeUndefined<bool>,
6926}
6927/// Input for creating a new project relation.
6928#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6929#[serde(rename_all = "camelCase")]
6930pub struct ProjectRelationCreateInput {
6931    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6932    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6933    pub id: MaybeUndefined<String>,
6934    /// The type of relation of the project to the related project.
6935    pub r#type: String,
6936    /// The identifier of the project that is related to another project.
6937    pub project_id: String,
6938    /// The identifier of the project milestone.
6939    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6940    pub project_milestone_id: MaybeUndefined<String>,
6941    /// The type of the anchor for the project.
6942    pub anchor_type: String,
6943    /// The identifier of the related project.
6944    pub related_project_id: String,
6945    /// The identifier of the related project milestone.
6946    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6947    pub related_project_milestone_id: MaybeUndefined<String>,
6948    /// The type of the anchor for the related project.
6949    pub related_anchor_type: String,
6950}
6951/// Input for updating an existing project relation.
6952#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6953#[serde(rename_all = "camelCase")]
6954pub struct ProjectRelationUpdateInput {
6955    /// The type of relation of the project to the related project.
6956    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6957    pub r#type: MaybeUndefined<String>,
6958    /// The identifier of the project that is related to another project.
6959    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6960    pub project_id: MaybeUndefined<String>,
6961    /// The identifier of the project milestone.
6962    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6963    pub project_milestone_id: MaybeUndefined<String>,
6964    /// The type of the anchor for the project.
6965    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6966    pub anchor_type: MaybeUndefined<String>,
6967    /// The identifier of the related project.
6968    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6969    pub related_project_id: MaybeUndefined<String>,
6970    /// The identifier of the related project milestone.
6971    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6972    pub related_project_milestone_id: MaybeUndefined<String>,
6973    /// The type of the anchor for the related project.
6974    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6975    pub related_anchor_type: MaybeUndefined<String>,
6976}
6977/// Issue project sorting options.
6978#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6979#[serde(rename_all = "camelCase")]
6980pub struct ProjectSort {
6981    /// Whether nulls should be sorted first or last
6982    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6983    pub nulls: MaybeUndefined<PaginationNulls>,
6984    /// The order for the individual sort
6985    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6986    pub order: MaybeUndefined<PaginationSortOrder>,
6987}
6988/// Project sorting options.
6989#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6990#[serde(rename_all = "camelCase")]
6991pub struct ProjectSortInput {
6992    /// Sort by project name
6993    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6994    pub name: MaybeUndefined<ProjectNameSort>,
6995    /// Sort by project status
6996    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
6997    pub status: MaybeUndefined<ProjectStatusSort>,
6998    /// Sort by project priority
6999    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7000    pub priority: MaybeUndefined<ProjectPrioritySort>,
7001    /// Sort by manual order
7002    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7003    pub manual: MaybeUndefined<ProjectManualSort>,
7004    /// Sort by project target date
7005    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7006    pub target_date: MaybeUndefined<TargetDateSort>,
7007    /// Sort by project start date
7008    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7009    pub start_date: MaybeUndefined<StartDateSort>,
7010    /// Sort by project creation date
7011    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7012    pub created_at: MaybeUndefined<ProjectCreatedAtSort>,
7013    /// Sort by project update date
7014    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7015    pub updated_at: MaybeUndefined<ProjectUpdatedAtSort>,
7016    /// Sort by project health status.
7017    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7018    pub health: MaybeUndefined<ProjectHealthSort>,
7019    /// Sort by project lead name.
7020    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7021    pub lead: MaybeUndefined<ProjectLeadSort>,
7022}
7023/// Input for creating a new project status.
7024#[derive(Debug, Clone, Serialize, Deserialize)]
7025#[serde(rename_all = "camelCase")]
7026pub struct ProjectStatusCreateInput {
7027    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7028    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7029    pub id: MaybeUndefined<String>,
7030    /// The name of the status.
7031    pub name: String,
7032    /// The UI color of the status as a HEX string.
7033    pub color: String,
7034    /// Description of the status.
7035    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7036    pub description: MaybeUndefined<String>,
7037    /// The position of the status in the workspace's project flow.
7038    pub position: f64,
7039    /// The type of the project status.
7040    pub r#type: ProjectStatusType,
7041    /// Whether or not a project can be in this status indefinitely.
7042    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7043    pub indefinite: MaybeUndefined<bool>,
7044}
7045/// Project status filtering options.
7046#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7047#[serde(rename_all = "camelCase")]
7048pub struct ProjectStatusFilter {
7049    /// Comparator for the identifier.
7050    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7051    pub id: MaybeUndefined<IDComparator>,
7052    /// Comparator for the created at date.
7053    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7054    pub created_at: MaybeUndefined<DateComparator>,
7055    /// Comparator for the updated at date.
7056    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7057    pub updated_at: MaybeUndefined<DateComparator>,
7058    /// Comparator for the project status name.
7059    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7060    pub name: MaybeUndefined<StringComparator>,
7061    /// Comparator for the project status description.
7062    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7063    pub description: MaybeUndefined<StringComparator>,
7064    /// Comparator for the project status position.
7065    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7066    pub position: MaybeUndefined<NumberComparator>,
7067    /// Comparator for the project status type.
7068    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7069    pub r#type: MaybeUndefined<StringComparator>,
7070    /// Filters that the project status projects must satisfy.
7071    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7072    pub projects: MaybeUndefined<Box<ProjectCollectionFilter>>,
7073    /// Compound filters, all of which need to be matched by the project status.
7074    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7075    pub and: MaybeUndefined<Vec<ProjectStatusFilter>>,
7076    /// Compound filters, one of which needs to be matched by the project status.
7077    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7078    pub or: MaybeUndefined<Vec<ProjectStatusFilter>>,
7079}
7080/// Project status sorting options.
7081#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7082#[serde(rename_all = "camelCase")]
7083pub struct ProjectStatusSort {
7084    /// Whether nulls should be sorted first or last
7085    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7086    pub nulls: MaybeUndefined<PaginationNulls>,
7087    /// The order for the individual sort
7088    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7089    pub order: MaybeUndefined<PaginationSortOrder>,
7090}
7091/// Input for updating an existing project status.
7092#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7093#[serde(rename_all = "camelCase")]
7094pub struct ProjectStatusUpdateInput {
7095    /// The name of the status.
7096    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7097    pub name: MaybeUndefined<String>,
7098    /// The UI color of the status as a HEX string.
7099    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7100    pub color: MaybeUndefined<String>,
7101    /// Description of the status.
7102    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7103    pub description: MaybeUndefined<String>,
7104    /// The position of the status in the workspace's project flow.
7105    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7106    pub position: MaybeUndefined<f64>,
7107    /// The type of the project status.
7108    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7109    pub r#type: MaybeUndefined<ProjectStatusType>,
7110    /// Whether or not a project can be in this status indefinitely.
7111    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7112    pub indefinite: MaybeUndefined<bool>,
7113}
7114/// Input for creating a new project update.
7115#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7116#[serde(rename_all = "camelCase")]
7117pub struct ProjectUpdateCreateInput {
7118    /// The identifier. If none is provided, the backend will generate one.
7119    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7120    pub id: MaybeUndefined<String>,
7121    /// The content of the project update in markdown format.
7122    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7123    pub body: MaybeUndefined<String>,
7124    /// `Internal` The content of the project update as a Prosemirror document.
7125    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7126    pub body_data: MaybeUndefined<serde_json::Value>,
7127    /// The project to associate the project update with.
7128    pub project_id: String,
7129    /// The health of the project at the time of the update.
7130    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7131    pub health: MaybeUndefined<ProjectUpdateHealthType>,
7132    /// Whether the diff between the current update and the previous one should be hidden.
7133    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7134    pub is_diff_hidden: MaybeUndefined<bool>,
7135}
7136/// Options for filtering project updates.
7137#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7138#[serde(rename_all = "camelCase")]
7139pub struct ProjectUpdateFilter {
7140    /// Comparator for the identifier.
7141    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7142    pub id: MaybeUndefined<IDComparator>,
7143    /// Comparator for the created at date.
7144    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7145    pub created_at: MaybeUndefined<DateComparator>,
7146    /// Comparator for the updated at date.
7147    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7148    pub updated_at: MaybeUndefined<DateComparator>,
7149    /// Filters that the project update creator must satisfy.
7150    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7151    pub user: MaybeUndefined<UserFilter>,
7152    /// Filters that the project update project must satisfy.
7153    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7154    pub project: MaybeUndefined<ProjectFilter>,
7155    /// Filters that the project updates reactions must satisfy.
7156    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7157    pub reactions: MaybeUndefined<ReactionCollectionFilter>,
7158    /// Compound filters, all of which need to be matched by the ProjectUpdate.
7159    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7160    pub and: MaybeUndefined<Vec<ProjectUpdateFilter>>,
7161    /// Compound filters, one of which need to be matched by the ProjectUpdate.
7162    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7163    pub or: MaybeUndefined<Vec<ProjectUpdateFilter>>,
7164}
7165/// Input for updating an existing project. All fields are optional; only provided fields will be updated. Setting a field to null (where supported) will clear the value.
7166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7167#[serde(rename_all = "camelCase")]
7168pub struct ProjectUpdateInput {
7169    /// The ID of the project status.
7170    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7171    pub status_id: MaybeUndefined<String>,
7172    /// The name of the project.
7173    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7174    pub name: MaybeUndefined<String>,
7175    /// The description for the project.
7176    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7177    pub description: MaybeUndefined<String>,
7178    /// The project content as markdown.
7179    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7180    pub content: MaybeUndefined<String>,
7181    /// The ID of the issue from which that project is created.
7182    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7183    pub converted_from_issue_id: MaybeUndefined<String>,
7184    /// The ID of the last template applied to the project.
7185    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7186    pub last_applied_template_id: MaybeUndefined<String>,
7187    /// The icon of the project.
7188    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7189    pub icon: MaybeUndefined<String>,
7190    /// The color of the project.
7191    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7192    pub color: MaybeUndefined<String>,
7193    /// The identifiers of the teams this project is associated with.
7194    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7195    pub team_ids: MaybeUndefined<Vec<String>>,
7196    /// The time until which project update reminders are paused. Set to null to resume reminders.
7197    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7198    pub project_update_reminders_paused_until_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
7199    /// The n-weekly frequency at which to prompt for project updates. When not set, reminders are inherited from workspace settings.
7200    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7201    pub update_reminder_frequency_in_weeks: MaybeUndefined<f64>,
7202    /// The frequency at which to prompt for project updates. When not set, reminders are inherited from workspace settings.
7203    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7204    pub update_reminder_frequency: MaybeUndefined<f64>,
7205    /// The resolution type for the update reminder frequency (e.g., weekly, biweekly).
7206    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7207    pub frequency_resolution: MaybeUndefined<FrequencyResolutionType>,
7208    /// The day of the week on which to prompt for project updates.
7209    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7210    pub update_reminders_day: MaybeUndefined<Day>,
7211    /// The hour of the day (0-23) at which to prompt for project updates.
7212    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7213    pub update_reminders_hour: MaybeUndefined<i64>,
7214    /// The identifier of the project lead.
7215    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7216    pub lead_id: MaybeUndefined<String>,
7217    /// The identifiers of the members of this project.
7218    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7219    pub member_ids: MaybeUndefined<Vec<String>>,
7220    /// The planned start date of the project.
7221    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7222    pub start_date: MaybeUndefined<chrono::NaiveDate>,
7223    /// The resolution of the project's start date.
7224    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7225    pub start_date_resolution: MaybeUndefined<DateResolutionType>,
7226    /// The planned target date of the project.
7227    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7228    pub target_date: MaybeUndefined<chrono::NaiveDate>,
7229    /// The resolution of the project's estimated completion date.
7230    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7231    pub target_date_resolution: MaybeUndefined<DateResolutionType>,
7232    /// The time at which the project was completed.
7233    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7234    pub completed_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
7235    /// The time at which the project was canceled.
7236    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7237    pub canceled_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
7238    /// Whether to send new issue notifications to Slack.
7239    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7240    pub slack_new_issue: MaybeUndefined<bool>,
7241    /// Whether to send new issue comment notifications to Slack.
7242    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7243    pub slack_issue_comments: MaybeUndefined<bool>,
7244    /// Whether to send issue status update notifications to Slack.
7245    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7246    pub slack_issue_statuses: MaybeUndefined<bool>,
7247    /// The sort order for the project in shared views.
7248    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7249    pub sort_order: MaybeUndefined<f64>,
7250    /// The sort order for the project within shared views, when ordered by priority.
7251    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7252    pub priority_sort_order: MaybeUndefined<f64>,
7253    /// Whether the project has been trashed. Set to true to trash, or null to restore.
7254    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7255    pub trashed: MaybeUndefined<bool>,
7256    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low.
7257    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7258    pub priority: MaybeUndefined<i64>,
7259    /// The identifiers of the project labels associated with this project.
7260    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7261    pub label_ids: MaybeUndefined<Vec<String>>,
7262}
7263/// Input for updating an existing project update.
7264#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7265#[serde(rename_all = "camelCase")]
7266pub struct ProjectUpdateUpdateInput {
7267    /// The content of the project update in markdown format.
7268    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7269    pub body: MaybeUndefined<String>,
7270    /// The content of the project update as a Prosemirror document.
7271    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7272    pub body_data: MaybeUndefined<serde_json::Value>,
7273    /// The health of the project at the time of the update.
7274    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7275    pub health: MaybeUndefined<ProjectUpdateHealthType>,
7276    /// Whether the diff between the current update and the previous one should be hidden.
7277    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7278    pub is_diff_hidden: MaybeUndefined<bool>,
7279}
7280/// Project update date sorting options.
7281#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7282#[serde(rename_all = "camelCase")]
7283pub struct ProjectUpdatedAtSort {
7284    /// Whether nulls should be sorted first or last
7285    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7286    pub nulls: MaybeUndefined<PaginationNulls>,
7287    /// The order for the individual sort
7288    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7289    pub order: MaybeUndefined<PaginationSortOrder>,
7290}
7291/// Collection filtering options for filtering projects by project updates.
7292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7293#[serde(rename_all = "camelCase")]
7294pub struct ProjectUpdatesCollectionFilter {
7295    /// Comparator for the identifier.
7296    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7297    pub id: MaybeUndefined<IDComparator>,
7298    /// Comparator for the created at date.
7299    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7300    pub created_at: MaybeUndefined<DateComparator>,
7301    /// Comparator for the updated at date.
7302    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7303    pub updated_at: MaybeUndefined<DateComparator>,
7304    /// Comparator for the project update health.
7305    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7306    pub health: MaybeUndefined<StringComparator>,
7307    /// Compound filters, all of which need to be matched by the project update.
7308    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7309    pub and: MaybeUndefined<Vec<ProjectUpdatesCollectionFilter>>,
7310    /// Compound filters, one of which need to be matched by the update.
7311    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7312    pub or: MaybeUndefined<Vec<ProjectUpdatesCollectionFilter>>,
7313    /// Filters that needs to be matched by some updates.
7314    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7315    pub some: MaybeUndefined<ProjectUpdatesFilter>,
7316    /// Filters that needs to be matched by all updates.
7317    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7318    pub every: MaybeUndefined<ProjectUpdatesFilter>,
7319    /// Comparator for the collection length.
7320    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7321    pub length: MaybeUndefined<NumberComparator>,
7322}
7323/// Options for filtering projects by project updates.
7324#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7325#[serde(rename_all = "camelCase")]
7326pub struct ProjectUpdatesFilter {
7327    /// Comparator for the identifier.
7328    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7329    pub id: MaybeUndefined<IDComparator>,
7330    /// Comparator for the created at date.
7331    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7332    pub created_at: MaybeUndefined<DateComparator>,
7333    /// Comparator for the updated at date.
7334    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7335    pub updated_at: MaybeUndefined<DateComparator>,
7336    /// Comparator for the project update health.
7337    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7338    pub health: MaybeUndefined<StringComparator>,
7339    /// Compound filters, all of which need to be matched by the project updates.
7340    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7341    pub and: MaybeUndefined<Vec<ProjectUpdatesFilter>>,
7342    /// Compound filters, one of which need to be matched by the project updates.
7343    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7344    pub or: MaybeUndefined<Vec<ProjectUpdatesFilter>>,
7345}
7346/// A reference to a pull request by its repository owner, name, and pull request number. Used during release sync to look up pull requests and associate their linked issues with the release.
7347#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7348#[serde(rename_all = "camelCase")]
7349pub struct PullRequestReferenceInput {
7350    /// The owner of the repository (e.g., organization or user name).
7351    pub repository_owner: String,
7352    /// The name of the repository.
7353    pub repository_name: String,
7354    /// The pull request number.
7355    pub number: i64,
7356}
7357/// Input for creating a push subscription to receive push notifications on a device or browser.
7358#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7359#[serde(rename_all = "camelCase")]
7360pub struct PushSubscriptionCreateInput {
7361    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7362    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7363    pub id: MaybeUndefined<String>,
7364    /// The push subscription data in stringified JSON format. For web subscriptions, this must contain keys, endpoint, and expirationTime fields per the Web Push API specification. For mobile subscriptions, this contains the device token.
7365    pub data: String,
7366    /// The type of push subscription: 'web' for browser-based Web Push API, 'apple' for Apple Push Notification service (or 'appleDevelopment' for sandbox), or 'firebase' for Firebase Cloud Messaging (Android).
7367    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7368    pub r#type: MaybeUndefined<PushSubscriptionType>,
7369}
7370/// Reaction filtering options.
7371#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7372#[serde(rename_all = "camelCase")]
7373pub struct ReactionCollectionFilter {
7374    /// Comparator for the identifier.
7375    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7376    pub id: MaybeUndefined<IDComparator>,
7377    /// Comparator for the created at date.
7378    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7379    pub created_at: MaybeUndefined<DateComparator>,
7380    /// Comparator for the updated at date.
7381    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7382    pub updated_at: MaybeUndefined<DateComparator>,
7383    /// Comparator for the reactions emoji.
7384    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7385    pub emoji: MaybeUndefined<StringComparator>,
7386    /// Comparator for the reactions custom emoji.
7387    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7388    pub custom_emoji_id: MaybeUndefined<IDComparator>,
7389    /// Compound filters, all of which need to be matched by the reaction.
7390    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7391    pub and: MaybeUndefined<Vec<ReactionCollectionFilter>>,
7392    /// Compound filters, one of which need to be matched by the reaction.
7393    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7394    pub or: MaybeUndefined<Vec<ReactionCollectionFilter>>,
7395    /// Filters that needs to be matched by some reactions.
7396    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7397    pub some: MaybeUndefined<ReactionFilter>,
7398    /// Filters that needs to be matched by all reactions.
7399    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7400    pub every: MaybeUndefined<ReactionFilter>,
7401    /// Comparator for the collection length.
7402    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7403    pub length: MaybeUndefined<NumberComparator>,
7404}
7405/// Input for creating a new reaction.
7406#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7407#[serde(rename_all = "camelCase")]
7408pub struct ReactionCreateInput {
7409    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7410    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7411    pub id: MaybeUndefined<String>,
7412    /// The emoji the user reacted with.
7413    pub emoji: String,
7414    /// The comment to associate the reaction with.
7415    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7416    pub comment_id: MaybeUndefined<String>,
7417    /// The project update to associate the reaction with.
7418    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7419    pub project_update_id: MaybeUndefined<String>,
7420    /// The update to associate the reaction with.
7421    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7422    pub initiative_update_id: MaybeUndefined<String>,
7423    /// The issue to associate the reaction with. Can be a UUID or issue identifier (e.g., 'LIN-123').
7424    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7425    pub issue_id: MaybeUndefined<String>,
7426    /// `Internal` The post to associate the reaction with.
7427    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7428    pub post_id: MaybeUndefined<String>,
7429    /// `Internal` The pull request to associate the reaction with.
7430    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7431    pub pull_request_id: MaybeUndefined<String>,
7432    /// `Internal` The pull request comment to associate the reaction with.
7433    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7434    pub pull_request_comment_id: MaybeUndefined<String>,
7435}
7436/// Reaction filtering options.
7437#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7438#[serde(rename_all = "camelCase")]
7439pub struct ReactionFilter {
7440    /// Comparator for the identifier.
7441    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7442    pub id: MaybeUndefined<IDComparator>,
7443    /// Comparator for the created at date.
7444    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7445    pub created_at: MaybeUndefined<DateComparator>,
7446    /// Comparator for the updated at date.
7447    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7448    pub updated_at: MaybeUndefined<DateComparator>,
7449    /// Comparator for the reactions emoji.
7450    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7451    pub emoji: MaybeUndefined<StringComparator>,
7452    /// Comparator for the reactions custom emoji.
7453    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7454    pub custom_emoji_id: MaybeUndefined<IDComparator>,
7455    /// Compound filters, all of which need to be matched by the reaction.
7456    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7457    pub and: MaybeUndefined<Vec<ReactionFilter>>,
7458    /// Compound filters, one of which need to be matched by the reaction.
7459    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7460    pub or: MaybeUndefined<Vec<ReactionFilter>>,
7461}
7462/// Comparator for relation existence.
7463#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7464#[serde(rename_all = "camelCase")]
7465pub struct RelationExistsComparator {
7466    /// Equals constraint.
7467    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7468    pub eq: MaybeUndefined<bool>,
7469    /// Not equals constraint.
7470    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7471    pub neq: MaybeUndefined<bool>,
7472}
7473/// `ALPHA` Release collection filtering options.
7474#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7475#[serde(rename_all = "camelCase")]
7476pub struct ReleaseCollectionFilter {
7477    /// Comparator for the identifier.
7478    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7479    pub id: MaybeUndefined<IDComparator>,
7480    /// Comparator for the created at date.
7481    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7482    pub created_at: MaybeUndefined<DateComparator>,
7483    /// Comparator for the updated at date.
7484    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7485    pub updated_at: MaybeUndefined<DateComparator>,
7486    /// Comparator for the release name.
7487    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7488    pub name: MaybeUndefined<StringComparator>,
7489    /// Comparator for the release version.
7490    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7491    pub version: MaybeUndefined<StringComparator>,
7492    /// Filters that the release's pipeline must satisfy.
7493    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7494    pub pipeline: MaybeUndefined<Box<ReleasePipelineFilter>>,
7495    /// Filters that the release's stage must satisfy.
7496    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7497    pub stage: MaybeUndefined<ReleaseStageFilter>,
7498    /// Comparator for the release completion date.
7499    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7500    pub completed_at: MaybeUndefined<NullableDateComparator>,
7501    /// Compound filters, all of which need to be matched by the release.
7502    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7503    pub and: MaybeUndefined<Vec<ReleaseCollectionFilter>>,
7504    /// Compound filters, one of which need to be matched by the release.
7505    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7506    pub or: MaybeUndefined<Vec<ReleaseCollectionFilter>>,
7507    /// Filters that needs to be matched by some releases.
7508    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7509    pub some: MaybeUndefined<Box<ReleaseFilter>>,
7510    /// Filters that needs to be matched by all releases.
7511    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7512    pub every: MaybeUndefined<Box<ReleaseFilter>>,
7513    /// Comparator for the collection length.
7514    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7515    pub length: MaybeUndefined<NumberComparator>,
7516}
7517/// Input for completing a release in a specific pipeline.
7518#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7519#[serde(rename_all = "camelCase")]
7520pub struct ReleaseCompleteInput {
7521    /// The version of the release to complete. If not provided, the latest started release will be completed.
7522    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7523    pub version: MaybeUndefined<String>,
7524    /// The commit SHA associated with this completion. If a completed release with this SHA already exists, it will be returned instead of completing a new release.
7525    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7526    pub commit_sha: MaybeUndefined<String>,
7527    /// The identifier of the pipeline to mark a release as completed.
7528    pub pipeline_id: String,
7529}
7530/// Base input for completing a release. Contains the optional version and commit SHA. The pipeline ID is provided separately or inferred from the access key.
7531#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7532#[serde(rename_all = "camelCase")]
7533pub struct ReleaseCompleteInputBase {
7534    /// The version of the release to complete. If not provided, the latest started release will be completed.
7535    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7536    pub version: MaybeUndefined<String>,
7537    /// The commit SHA associated with this completion. If a completed release with this SHA already exists, it will be returned instead of completing a new release.
7538    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7539    pub commit_sha: MaybeUndefined<String>,
7540}
7541/// The input for creating a release.
7542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7543#[serde(rename_all = "camelCase")]
7544pub struct ReleaseCreateInput {
7545    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7546    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7547    pub id: MaybeUndefined<String>,
7548    /// The name of the release.
7549    pub name: String,
7550    /// The description of the release.
7551    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7552    pub description: MaybeUndefined<String>,
7553    /// The version of the release.
7554    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7555    pub version: MaybeUndefined<String>,
7556    /// The commit SHA associated with this release.
7557    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7558    pub commit_sha: MaybeUndefined<String>,
7559    /// The identifier of the pipeline this release belongs to.
7560    pub pipeline_id: String,
7561    /// The current stage of the release. Defaults to the first 'completed' stage for continuous pipelines, or the first 'started' stage for scheduled pipelines.
7562    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7563    pub stage_id: MaybeUndefined<String>,
7564    /// The estimated start date of the release.
7565    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7566    pub start_date: MaybeUndefined<chrono::NaiveDate>,
7567    /// The estimated completion date of the release.
7568    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7569    pub target_date: MaybeUndefined<chrono::NaiveDate>,
7570}
7571/// Diagnostic data captured during release sync, including inspected commits, discovered issue references, and pull request metadata. Stored on the release for debugging release association issues.
7572#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7573#[serde(rename_all = "camelCase")]
7574pub struct ReleaseDebugSinkInput {
7575    /// List of commit SHAs that were inspected.
7576    pub inspected_shas: Vec<String>,
7577    /// Map of issue identifiers to their source information.
7578    pub issues: serde_json::Value,
7579    /// Map of reverted issue identifiers to their source information.
7580    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7581    pub reverted_issues: MaybeUndefined<serde_json::Value>,
7582    /// Pull request debug information.
7583    pub pull_requests: Vec<serde_json::Value>,
7584    /// List of paths applied during commit scanning.
7585    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7586    pub include_paths: MaybeUndefined<Vec<String>>,
7587}
7588/// `ALPHA` Release filtering options.
7589#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7590#[serde(rename_all = "camelCase")]
7591pub struct ReleaseFilter {
7592    /// Comparator for the identifier.
7593    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7594    pub id: MaybeUndefined<IDComparator>,
7595    /// Comparator for the created at date.
7596    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7597    pub created_at: MaybeUndefined<DateComparator>,
7598    /// Comparator for the updated at date.
7599    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7600    pub updated_at: MaybeUndefined<DateComparator>,
7601    /// Comparator for the release name.
7602    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7603    pub name: MaybeUndefined<StringComparator>,
7604    /// Comparator for the release version.
7605    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7606    pub version: MaybeUndefined<StringComparator>,
7607    /// Filters that the release's pipeline must satisfy.
7608    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7609    pub pipeline: MaybeUndefined<Box<ReleasePipelineFilter>>,
7610    /// Filters that the release's stage must satisfy.
7611    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7612    pub stage: MaybeUndefined<ReleaseStageFilter>,
7613    /// Comparator for the release completion date.
7614    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7615    pub completed_at: MaybeUndefined<NullableDateComparator>,
7616    /// Compound filters, all of which need to be matched by the release.
7617    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7618    pub and: MaybeUndefined<Vec<ReleaseFilter>>,
7619    /// Compound filters, one of which need to be matched by the release.
7620    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7621    pub or: MaybeUndefined<Vec<ReleaseFilter>>,
7622}
7623/// `ALPHA` Input for creating a release note.
7624#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7625#[serde(rename_all = "camelCase")]
7626pub struct ReleaseNoteCreateInput {
7627    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7628    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7629    pub id: MaybeUndefined<String>,
7630    /// Identifier of the release pipeline.
7631    pub pipeline_id: String,
7632    /// The releases included in this note.
7633    pub release_ids: Vec<String>,
7634}
7635/// `ALPHA` Input for updating a release note.
7636#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7637#[serde(rename_all = "camelCase")]
7638pub struct ReleaseNoteUpdateInput {
7639    /// The releases included in this note.
7640    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7641    pub release_ids: MaybeUndefined<Vec<String>>,
7642}
7643/// `ALPHA` Release pipeline collection filtering options.
7644#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7645#[serde(rename_all = "camelCase")]
7646pub struct ReleasePipelineCollectionFilter {
7647    /// Comparator for the identifier.
7648    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7649    pub id: MaybeUndefined<IDComparator>,
7650    /// Comparator for the created at date.
7651    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7652    pub created_at: MaybeUndefined<DateComparator>,
7653    /// Comparator for the updated at date.
7654    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7655    pub updated_at: MaybeUndefined<DateComparator>,
7656    /// Comparator for the pipeline name.
7657    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7658    pub name: MaybeUndefined<StringComparator>,
7659    /// Comparator for the pipeline production flag.
7660    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7661    pub is_production: MaybeUndefined<BooleanComparator>,
7662    /// Filters that the release pipeline's teams must satisfy.
7663    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7664    pub teams: MaybeUndefined<Box<TeamCollectionFilter>>,
7665    /// Compound filters, all of which need to be matched by the release pipeline.
7666    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7667    pub and: MaybeUndefined<Vec<ReleasePipelineCollectionFilter>>,
7668    /// Compound filters, one of which need to be matched by the release pipeline.
7669    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7670    pub or: MaybeUndefined<Vec<ReleasePipelineCollectionFilter>>,
7671    /// Filters that needs to be matched by some release pipelines.
7672    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7673    pub some: MaybeUndefined<Box<ReleasePipelineFilter>>,
7674    /// Filters that needs to be matched by all release pipelines.
7675    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7676    pub every: MaybeUndefined<Box<ReleasePipelineFilter>>,
7677    /// Comparator for the collection length.
7678    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7679    pub length: MaybeUndefined<NumberComparator>,
7680}
7681/// Input for creating a new release pipeline.
7682#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7683#[serde(rename_all = "camelCase")]
7684pub struct ReleasePipelineCreateInput {
7685    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7686    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7687    pub id: MaybeUndefined<String>,
7688    /// The name of the pipeline.
7689    pub name: String,
7690    /// The pipeline's unique slug identifier. If not provided, it will be auto-generated.
7691    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7692    pub slug_id: MaybeUndefined<String>,
7693    /// The type of the pipeline.
7694    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7695    pub r#type: MaybeUndefined<ReleasePipelineType>,
7696    /// Whether this pipeline targets a production environment. Default to true.
7697    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7698    pub is_production: MaybeUndefined<bool>,
7699    /// Glob patterns to include commits affecting matching file paths.
7700    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7701    pub include_path_patterns: MaybeUndefined<Vec<String>>,
7702    /// The identifiers of the teams this pipeline is associated with.
7703    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7704    pub team_ids: MaybeUndefined<Vec<String>>,
7705}
7706/// `ALPHA` Release pipeline filtering options.
7707#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7708#[serde(rename_all = "camelCase")]
7709pub struct ReleasePipelineFilter {
7710    /// Comparator for the identifier.
7711    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7712    pub id: MaybeUndefined<IDComparator>,
7713    /// Comparator for the created at date.
7714    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7715    pub created_at: MaybeUndefined<DateComparator>,
7716    /// Comparator for the updated at date.
7717    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7718    pub updated_at: MaybeUndefined<DateComparator>,
7719    /// Comparator for the pipeline name.
7720    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7721    pub name: MaybeUndefined<StringComparator>,
7722    /// Comparator for the pipeline production flag.
7723    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7724    pub is_production: MaybeUndefined<BooleanComparator>,
7725    /// Filters that the release pipeline's teams must satisfy.
7726    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7727    pub teams: MaybeUndefined<Box<TeamCollectionFilter>>,
7728    /// Compound filters, all of which need to be matched by the pipeline.
7729    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7730    pub and: MaybeUndefined<Vec<ReleasePipelineFilter>>,
7731    /// Compound filters, one of which need to be matched by the pipeline.
7732    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7733    pub or: MaybeUndefined<Vec<ReleasePipelineFilter>>,
7734}
7735/// Release pipeline name sorting options.
7736#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7737#[serde(rename_all = "camelCase")]
7738pub struct ReleasePipelineNameSort {
7739    /// Whether nulls should be sorted first or last
7740    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7741    pub nulls: MaybeUndefined<PaginationNulls>,
7742    /// The order for the individual sort
7743    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7744    pub order: MaybeUndefined<PaginationSortOrder>,
7745}
7746/// Release pipeline sorting options.
7747#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7748#[serde(rename_all = "camelCase")]
7749pub struct ReleasePipelineSortInput {
7750    /// Sort by release pipeline name.
7751    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7752    pub name: MaybeUndefined<ReleasePipelineNameSort>,
7753}
7754/// Input for updating an existing release pipeline.
7755#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7756#[serde(rename_all = "camelCase")]
7757pub struct ReleasePipelineUpdateInput {
7758    /// The name of the pipeline.
7759    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7760    pub name: MaybeUndefined<String>,
7761    /// The pipeline's unique slug identifier.
7762    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7763    pub slug_id: MaybeUndefined<String>,
7764    /// The type of the pipeline.
7765    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7766    pub r#type: MaybeUndefined<ReleasePipelineType>,
7767    /// Whether this pipeline targets a production environment. Default to true.
7768    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7769    pub is_production: MaybeUndefined<bool>,
7770    /// Glob patterns to include commits affecting matching file paths.
7771    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7772    pub include_path_patterns: MaybeUndefined<Vec<String>>,
7773    /// The identifiers of the teams this pipeline is associated with.
7774    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7775    pub team_ids: MaybeUndefined<Vec<String>>,
7776}
7777/// `Internal` Issue release sorting options.
7778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7779#[serde(rename_all = "camelCase")]
7780pub struct ReleaseSort {
7781    /// Whether nulls should be sorted first or last
7782    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7783    pub nulls: MaybeUndefined<PaginationNulls>,
7784    /// The order for the individual sort
7785    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7786    pub order: MaybeUndefined<PaginationSortOrder>,
7787}
7788/// Release sorting options.
7789#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7790#[serde(rename_all = "camelCase")]
7791pub struct ReleaseSortInput {
7792    /// Sort by release stage
7793    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7794    pub stage: MaybeUndefined<ReleaseStageSort>,
7795}
7796/// Input for creating a new release stage.
7797#[derive(Debug, Clone, Serialize, Deserialize)]
7798#[serde(rename_all = "camelCase")]
7799pub struct ReleaseStageCreateInput {
7800    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7801    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7802    pub id: MaybeUndefined<String>,
7803    /// The name of the stage.
7804    pub name: String,
7805    /// The UI color of the stage as a HEX string.
7806    pub color: String,
7807    /// The type of the stage.
7808    pub r#type: ReleaseStageType,
7809    /// The position of the stage.
7810    pub position: f64,
7811    /// The identifier of the pipeline this stage belongs to.
7812    pub pipeline_id: String,
7813    /// Whether this stage is frozen. Only applicable to started stages.
7814    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7815    pub frozen: MaybeUndefined<bool>,
7816}
7817/// `ALPHA` Release stage filtering options.
7818#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7819#[serde(rename_all = "camelCase")]
7820pub struct ReleaseStageFilter {
7821    /// Comparator for the identifier.
7822    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7823    pub id: MaybeUndefined<IDComparator>,
7824    /// Comparator for the created at date.
7825    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7826    pub created_at: MaybeUndefined<DateComparator>,
7827    /// Comparator for the updated at date.
7828    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7829    pub updated_at: MaybeUndefined<DateComparator>,
7830    /// Comparator for the stage type.
7831    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7832    pub r#type: MaybeUndefined<ReleaseStageTypeComparator>,
7833    /// Comparator for the stage name.
7834    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7835    pub name: MaybeUndefined<StringComparator>,
7836    /// Compound filters, all of which need to be matched by the stage.
7837    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7838    pub and: MaybeUndefined<Vec<ReleaseStageFilter>>,
7839    /// Compound filters, one of which need to be matched by the stage.
7840    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7841    pub or: MaybeUndefined<Vec<ReleaseStageFilter>>,
7842}
7843/// Release stage sorting options.
7844#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7845#[serde(rename_all = "camelCase")]
7846pub struct ReleaseStageSort {
7847    /// Whether nulls should be sorted first or last
7848    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7849    pub nulls: MaybeUndefined<PaginationNulls>,
7850    /// The order for the individual sort
7851    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7852    pub order: MaybeUndefined<PaginationSortOrder>,
7853}
7854/// `ALPHA` Comparator for release stage type.
7855#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7856#[serde(rename_all = "camelCase")]
7857pub struct ReleaseStageTypeComparator {
7858    /// Equals constraint.
7859    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7860    pub eq: MaybeUndefined<ReleaseStageType>,
7861    /// Not-equals constraint.
7862    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7863    pub neq: MaybeUndefined<ReleaseStageType>,
7864    /// In-array constraint.
7865    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7866    pub r#in: MaybeUndefined<Vec<ReleaseStageType>>,
7867    /// Not-in-array constraint.
7868    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7869    pub nin: MaybeUndefined<Vec<ReleaseStageType>>,
7870    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
7871    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7872    pub null: MaybeUndefined<bool>,
7873}
7874/// Input for updating an existing release stage.
7875#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7876#[serde(rename_all = "camelCase")]
7877pub struct ReleaseStageUpdateInput {
7878    /// The name of the stage.
7879    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7880    pub name: MaybeUndefined<String>,
7881    /// The UI color of the stage as a HEX string.
7882    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7883    pub color: MaybeUndefined<String>,
7884    /// The position of the stage.
7885    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7886    pub position: MaybeUndefined<f64>,
7887    /// Whether this stage is frozen. Only applicable to started stages.
7888    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7889    pub frozen: MaybeUndefined<bool>,
7890}
7891/// Input for syncing release data to a specific pipeline. Extends the base sync input with the target pipeline identifier.
7892#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7893#[serde(rename_all = "camelCase")]
7894pub struct ReleaseSyncInput {
7895    /// The name of the release.
7896    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7897    pub name: MaybeUndefined<String>,
7898    /// The version of the release.
7899    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7900    pub version: MaybeUndefined<String>,
7901    /// The commit SHA associated with this release.
7902    pub commit_sha: String,
7903    /// Issue references (e.g. ENG-123) to associate with this release.
7904    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7905    pub issue_references: MaybeUndefined<Vec<IssueReferenceInput>>,
7906    /// Issue references that were reverted and should be removed from the release.
7907    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7908    pub reverted_issue_references: MaybeUndefined<Vec<IssueReferenceInput>>,
7909    /// Pull request references to look up. Issues linked to found PRs will be associated with this release.
7910    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7911    pub pull_request_references: MaybeUndefined<Vec<PullRequestReferenceInput>>,
7912    /// Information about the source repository.
7913    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7914    pub repository: MaybeUndefined<RepositoryDataInput>,
7915    /// Debug information for release creation diagnostics.
7916    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7917    pub debug_sink: MaybeUndefined<ReleaseDebugSinkInput>,
7918    /// The identifier of the pipeline this release belongs to.
7919    pub pipeline_id: String,
7920}
7921/// Base input for syncing release data, containing the commit SHA, issue references, pull request references, and optional metadata. Does not include the pipeline ID, which is provided separately or inferred from the access key.
7922#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7923#[serde(rename_all = "camelCase")]
7924pub struct ReleaseSyncInputBase {
7925    /// The name of the release.
7926    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7927    pub name: MaybeUndefined<String>,
7928    /// The version of the release.
7929    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7930    pub version: MaybeUndefined<String>,
7931    /// The commit SHA associated with this release.
7932    pub commit_sha: String,
7933    /// Issue references (e.g. ENG-123) to associate with this release.
7934    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7935    pub issue_references: MaybeUndefined<Vec<IssueReferenceInput>>,
7936    /// Issue references that were reverted and should be removed from the release.
7937    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7938    pub reverted_issue_references: MaybeUndefined<Vec<IssueReferenceInput>>,
7939    /// Pull request references to look up. Issues linked to found PRs will be associated with this release.
7940    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7941    pub pull_request_references: MaybeUndefined<Vec<PullRequestReferenceInput>>,
7942    /// Information about the source repository.
7943    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7944    pub repository: MaybeUndefined<RepositoryDataInput>,
7945    /// Debug information for release creation diagnostics.
7946    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7947    pub debug_sink: MaybeUndefined<ReleaseDebugSinkInput>,
7948}
7949/// Input for updating a release by pipeline identifier. Extends the base update input with the target pipeline identifier.
7950#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7951#[serde(rename_all = "camelCase")]
7952pub struct ReleaseUpdateByPipelineInput {
7953    /// The version of the release to update. If not provided, the latest started or latest planned release will be updated.
7954    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7955    pub version: MaybeUndefined<String>,
7956    /// The stage name to set. First tries exact match, then falls back to case-insensitive matching with dashes/underscores treated as spaces.
7957    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7958    pub stage: MaybeUndefined<String>,
7959    /// The identifier of the pipeline.
7960    pub pipeline_id: String,
7961}
7962/// Base input for updating a release by pipeline. Contains optional version and stage name. The pipeline ID is provided separately or inferred from the access key.
7963#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7964#[serde(rename_all = "camelCase")]
7965pub struct ReleaseUpdateByPipelineInputBase {
7966    /// The version of the release to update. If not provided, the latest started or latest planned release will be updated.
7967    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7968    pub version: MaybeUndefined<String>,
7969    /// The stage name to set. First tries exact match, then falls back to case-insensitive matching with dashes/underscores treated as spaces.
7970    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7971    pub stage: MaybeUndefined<String>,
7972}
7973/// Input for updating an existing release.
7974#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7975#[serde(rename_all = "camelCase")]
7976pub struct ReleaseUpdateInput {
7977    /// The name of the release.
7978    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7979    pub name: MaybeUndefined<String>,
7980    /// The description of the release.
7981    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7982    pub description: MaybeUndefined<String>,
7983    /// The version of the release.
7984    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7985    pub version: MaybeUndefined<String>,
7986    /// The commit SHA associated with this release.
7987    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7988    pub commit_sha: MaybeUndefined<String>,
7989    /// The identifier of the pipeline this release belongs to.
7990    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7991    pub pipeline_id: MaybeUndefined<String>,
7992    /// The current stage of the release.
7993    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7994    pub stage_id: MaybeUndefined<String>,
7995    /// The estimated start date of the release.
7996    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
7997    pub start_date: MaybeUndefined<chrono::NaiveDate>,
7998    /// The estimated completion date of the release.
7999    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8000    pub target_date: MaybeUndefined<chrono::NaiveDate>,
8001    /// Whether the release has been trashed.
8002    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8003    pub trashed: MaybeUndefined<bool>,
8004}
8005/// Metadata about the source code repository from which a release is being synced, including the hosting provider and repository coordinates.
8006#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8007#[serde(rename_all = "camelCase")]
8008pub struct RepositoryDataInput {
8009    /// The owner of the repository (e.g., organization or user name).
8010    pub owner: String,
8011    /// The name of the repository.
8012    pub name: String,
8013    /// The VCS provider hosting the repository (e.g., 'github', 'gitlab').
8014    pub provider: String,
8015    /// The base URL of the repository on the hosting provider (e.g., '<https://github.com/linear/linear-app>').
8016    pub url: String,
8017}
8018/// Customer revenue sorting options.
8019#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8020#[serde(rename_all = "camelCase")]
8021pub struct RevenueSort {
8022    /// Whether nulls should be sorted first or last
8023    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8024    pub nulls: MaybeUndefined<PaginationNulls>,
8025    /// The order for the individual sort
8026    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8027    pub order: MaybeUndefined<PaginationSortOrder>,
8028}
8029/// Roadmap collection filtering options.
8030#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8031#[serde(rename_all = "camelCase")]
8032pub struct RoadmapCollectionFilter {
8033    /// Comparator for the identifier.
8034    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8035    pub id: MaybeUndefined<IDComparator>,
8036    /// Comparator for the created at date.
8037    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8038    pub created_at: MaybeUndefined<DateComparator>,
8039    /// Comparator for the updated at date.
8040    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8041    pub updated_at: MaybeUndefined<DateComparator>,
8042    /// Comparator for the roadmap name.
8043    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8044    pub name: MaybeUndefined<StringComparator>,
8045    /// Comparator for the roadmap slug ID.
8046    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8047    pub slug_id: MaybeUndefined<StringComparator>,
8048    /// Filters that the roadmap creator must satisfy.
8049    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8050    pub creator: MaybeUndefined<Box<UserFilter>>,
8051    /// Compound filters, all of which need to be matched by the roadmap.
8052    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8053    pub and: MaybeUndefined<Vec<RoadmapCollectionFilter>>,
8054    /// Compound filters, one of which need to be matched by the roadmap.
8055    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8056    pub or: MaybeUndefined<Vec<RoadmapCollectionFilter>>,
8057    /// Filters that needs to be matched by some roadmaps.
8058    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8059    pub some: MaybeUndefined<Box<RoadmapFilter>>,
8060    /// Filters that needs to be matched by all roadmaps.
8061    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8062    pub every: MaybeUndefined<Box<RoadmapFilter>>,
8063    /// Comparator for the collection length.
8064    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8065    pub length: MaybeUndefined<NumberComparator>,
8066}
8067/// Input for creating a new roadmap.
8068#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8069#[serde(rename_all = "camelCase")]
8070pub struct RoadmapCreateInput {
8071    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8072    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8073    pub id: MaybeUndefined<String>,
8074    /// The name of the roadmap.
8075    pub name: String,
8076    /// The description of the roadmap.
8077    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8078    pub description: MaybeUndefined<String>,
8079    /// The owner of the roadmap.
8080    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8081    pub owner_id: MaybeUndefined<String>,
8082    /// The sort order of the roadmap within the workspace.
8083    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8084    pub sort_order: MaybeUndefined<f64>,
8085    /// The roadmap's color.
8086    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8087    pub color: MaybeUndefined<String>,
8088}
8089/// Roadmap filtering options.
8090#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8091#[serde(rename_all = "camelCase")]
8092pub struct RoadmapFilter {
8093    /// Comparator for the identifier.
8094    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8095    pub id: MaybeUndefined<IDComparator>,
8096    /// Comparator for the created at date.
8097    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8098    pub created_at: MaybeUndefined<DateComparator>,
8099    /// Comparator for the updated at date.
8100    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8101    pub updated_at: MaybeUndefined<DateComparator>,
8102    /// Comparator for the roadmap name.
8103    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8104    pub name: MaybeUndefined<StringComparator>,
8105    /// Comparator for the roadmap slug ID.
8106    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8107    pub slug_id: MaybeUndefined<StringComparator>,
8108    /// Filters that the roadmap creator must satisfy.
8109    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8110    pub creator: MaybeUndefined<Box<UserFilter>>,
8111    /// Compound filters, all of which need to be matched by the roadmap.
8112    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8113    pub and: MaybeUndefined<Vec<RoadmapFilter>>,
8114    /// Compound filters, one of which need to be matched by the roadmap.
8115    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8116    pub or: MaybeUndefined<Vec<RoadmapFilter>>,
8117}
8118/// Input for creating a new roadmap-to-project mapping.
8119#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8120#[serde(rename_all = "camelCase")]
8121pub struct RoadmapToProjectCreateInput {
8122    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8123    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8124    pub id: MaybeUndefined<String>,
8125    /// The identifier of the project.
8126    pub project_id: String,
8127    /// The identifier of the roadmap.
8128    pub roadmap_id: String,
8129    /// The sort order for the project within its workspace.
8130    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8131    pub sort_order: MaybeUndefined<f64>,
8132}
8133/// Input for updating an existing roadmap-to-project mapping.
8134#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8135#[serde(rename_all = "camelCase")]
8136pub struct RoadmapToProjectUpdateInput {
8137    /// The sort order for the project within its workspace.
8138    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8139    pub sort_order: MaybeUndefined<f64>,
8140}
8141/// Input for updating an existing roadmap.
8142#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8143#[serde(rename_all = "camelCase")]
8144pub struct RoadmapUpdateInput {
8145    /// The name of the roadmap.
8146    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8147    pub name: MaybeUndefined<String>,
8148    /// The description of the roadmap.
8149    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8150    pub description: MaybeUndefined<String>,
8151    /// The owner of the roadmap.
8152    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8153    pub owner_id: MaybeUndefined<String>,
8154    /// The sort order of the roadmap within the workspace.
8155    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8156    pub sort_order: MaybeUndefined<f64>,
8157    /// The roadmap's color.
8158    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8159    pub color: MaybeUndefined<String>,
8160}
8161/// Issue root-issue sorting options.
8162#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8163#[serde(rename_all = "camelCase")]
8164pub struct RootIssueSort {
8165    /// Whether nulls should be sorted first or last
8166    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8167    pub nulls: MaybeUndefined<PaginationNulls>,
8168    /// The order for the individual sort
8169    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8170    pub order: MaybeUndefined<PaginationSortOrder>,
8171    /// The sort to apply to the root issues
8172    pub sort: Box<IssueSortInput>,
8173}
8174/// `INTERNAL` Comparator for Salesforce metadata.
8175#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8176#[serde(rename_all = "camelCase")]
8177pub struct SalesforceMetadataIntegrationComparator {
8178    /// Salesforce Case metadata filter
8179    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8180    pub case_metadata: MaybeUndefined<serde_json::Value>,
8181}
8182#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8183#[serde(rename_all = "camelCase")]
8184pub struct SalesforceSettingsInput {
8185    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
8186    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8187    pub send_note_on_status_change: MaybeUndefined<bool>,
8188    /// Whether an internal message should be added when someone comments on an issue.
8189    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8190    pub send_note_on_comment: MaybeUndefined<bool>,
8191    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
8192    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8193    pub automate_ticket_reopening_on_completion: MaybeUndefined<bool>,
8194    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
8195    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8196    pub automate_ticket_reopening_on_cancellation: MaybeUndefined<bool>,
8197    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
8198    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8199    pub automate_ticket_reopening_on_comment: MaybeUndefined<bool>,
8200    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
8201    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8202    pub disable_customer_requests_auto_creation: MaybeUndefined<bool>,
8203    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
8204    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8205    pub automate_ticket_reopening_on_project_completion: MaybeUndefined<bool>,
8206    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
8207    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8208    pub automate_ticket_reopening_on_project_cancellation: MaybeUndefined<bool>,
8209    /// Whether Linear Agent should be enabled for this integration.
8210    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8211    pub enable_ai_intake: MaybeUndefined<bool>,
8212    /// The Salesforce subdomain.
8213    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8214    pub subdomain: MaybeUndefined<String>,
8215    /// The Salesforce instance URL.
8216    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8217    pub url: MaybeUndefined<String>,
8218    /// The Salesforce case status to use to reopen cases.
8219    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8220    pub reopen_case_status: MaybeUndefined<String>,
8221    /// Whether to restrict visibility of the integration to issues that have been either created from Salesforce or linked to Salesforce.
8222    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8223    pub restrict_visibility: MaybeUndefined<bool>,
8224    /// The Salesforce team to use when a template doesn't specify a team.
8225    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8226    pub default_team: MaybeUndefined<String>,
8227}
8228/// Filters for semantic search results.
8229#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8230#[serde(rename_all = "camelCase")]
8231pub struct SemanticSearchFilters {
8232    /// Filters applied to issues.
8233    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8234    pub issues: MaybeUndefined<IssueFilter>,
8235    /// Filters applied to projects.
8236    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8237    pub projects: MaybeUndefined<ProjectFilter>,
8238    /// Filters applied to initiatives.
8239    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8240    pub initiatives: MaybeUndefined<InitiativeFilter>,
8241    /// Filters applied to documents.
8242    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8243    pub documents: MaybeUndefined<DocumentFilter>,
8244}
8245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8246#[serde(rename_all = "camelCase")]
8247pub struct SentrySettingsInput {
8248    /// The slug of the Sentry organization being connected.
8249    pub organization_slug: String,
8250    /// The ID of the Sentry organization being connected.
8251    pub organization_id: String,
8252    /// Whether Sentry issues resolving completes Linear issues.
8253    pub resolving_completes_issues: bool,
8254    /// Whether Sentry issues unresolving reopens Linear issues.
8255    pub unresolving_reopens_issues: bool,
8256}
8257/// Customer size sorting options.
8258#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8259#[serde(rename_all = "camelCase")]
8260pub struct SizeSort {
8261    /// Whether nulls should be sorted first or last
8262    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8263    pub nulls: MaybeUndefined<PaginationNulls>,
8264    /// The order for the individual sort
8265    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8266    pub order: MaybeUndefined<PaginationSortOrder>,
8267}
8268/// Comparator for sla status.
8269#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8270#[serde(rename_all = "camelCase")]
8271pub struct SlaStatusComparator {
8272    /// Equals constraint.
8273    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8274    pub eq: MaybeUndefined<SlaStatus>,
8275    /// Not-equals constraint.
8276    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8277    pub neq: MaybeUndefined<SlaStatus>,
8278    /// In-array constraint.
8279    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8280    pub r#in: MaybeUndefined<Vec<SlaStatus>>,
8281    /// Not-in-array constraint.
8282    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8283    pub nin: MaybeUndefined<Vec<SlaStatus>>,
8284    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
8285    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8286    pub null: MaybeUndefined<bool>,
8287}
8288/// Issue SLA status sorting options.
8289#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8290#[serde(rename_all = "camelCase")]
8291pub struct SlaStatusSort {
8292    /// Whether nulls should be sorted first or last
8293    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8294    pub nulls: MaybeUndefined<PaginationNulls>,
8295    /// The order for the individual sort
8296    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8297    pub order: MaybeUndefined<PaginationSortOrder>,
8298}
8299#[derive(Debug, Clone, Serialize, Deserialize)]
8300#[serde(rename_all = "camelCase")]
8301pub struct SlackAsksSettingsInput {
8302    /// Slack workspace name
8303    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8304    pub team_name: MaybeUndefined<String>,
8305    /// Slack workspace id
8306    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8307    pub team_id: MaybeUndefined<String>,
8308    /// Enterprise name of the connected Slack enterprise
8309    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8310    pub enterprise_name: MaybeUndefined<String>,
8311    /// Enterprise id of the connected Slack enterprise
8312    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8313    pub enterprise_id: MaybeUndefined<String>,
8314    /// Whether to show unfurl previews in Slack
8315    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8316    pub should_unfurl: MaybeUndefined<bool>,
8317    /// Whether to show unfurls in the default style instead of Work Objects in Slack
8318    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8319    pub should_use_default_unfurl: MaybeUndefined<bool>,
8320    /// Whether to allow external users to perform actions on unfurls
8321    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8322    pub external_user_actions: MaybeUndefined<bool>,
8323    /// The mapping of Slack channel ID => Slack channel name for connected channels.
8324    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8325    pub slack_channel_mapping: MaybeUndefined<Vec<SlackChannelNameMappingInput>>,
8326    /// The user role type that is allowed to manage Asks settings.
8327    pub can_administrate: UserRoleType,
8328    /// Controls who can see and set Customers when creating Asks in Slack.
8329    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8330    pub customer_visibility: MaybeUndefined<CustomerVisibilityMode>,
8331    /// Whether Linear Agent should be enabled for this Slack Asks integration.
8332    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8333    pub enable_agent: MaybeUndefined<bool>,
8334    /// Whether Linear Agent should be given Org-wide access within Slack workflows.
8335    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8336    pub enable_linear_agent_workflow_access: MaybeUndefined<bool>,
8337}
8338#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8339#[serde(rename_all = "camelCase")]
8340pub struct SlackAsksTeamSettingsInput {
8341    /// The Linear team ID.
8342    pub id: String,
8343    /// Whether the default Asks template is enabled in the given channel for this team.
8344    pub has_default_ask: bool,
8345}
8346#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8347#[serde(rename_all = "camelCase")]
8348pub struct SlackChannelNameMappingInput {
8349    /// The Slack channel ID.
8350    pub id: String,
8351    /// The Slack channel name.
8352    pub name: String,
8353    /// Whether or not the Slack channel is private.
8354    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8355    pub is_private: MaybeUndefined<bool>,
8356    /// Whether or not the Slack channel is shared with an external org.
8357    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8358    pub is_shared: MaybeUndefined<bool>,
8359    /// Whether or not the Linear Asks bot has been added to this Slack channel.
8360    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8361    pub bot_added: MaybeUndefined<bool>,
8362    /// Which teams are connected to the channel and settings for those teams.
8363    pub teams: Vec<SlackAsksTeamSettingsInput>,
8364    /// Whether or not top-level messages in this channel should automatically create Asks.
8365    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8366    pub auto_create_on_message: MaybeUndefined<bool>,
8367    /// Whether or not using the :ticket: emoji in this channel should automatically create Asks.
8368    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8369    pub auto_create_on_emoji: MaybeUndefined<bool>,
8370    /// Whether or not @-mentioning the bot should automatically create an Ask with the message.
8371    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8372    pub auto_create_on_bot_mention: MaybeUndefined<bool>,
8373    /// The optional template ID to use for Asks auto-created in this channel. If not set, auto-created Asks won't use any template.
8374    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8375    pub auto_create_template_id: MaybeUndefined<String>,
8376    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is canceled.
8377    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8378    pub post_cancellation_updates: MaybeUndefined<bool>,
8379    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is completed.
8380    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8381    pub post_completion_updates: MaybeUndefined<bool>,
8382    /// Whether or not synced Slack threads should be updated with a message when their Ask is accepted from triage.
8383    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8384    pub post_accepted_from_triage_updates: MaybeUndefined<bool>,
8385    /// Whether or not to use AI to generate titles for Asks created in this channel.
8386    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8387    pub ai_titles: MaybeUndefined<bool>,
8388}
8389#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8390#[serde(rename_all = "camelCase")]
8391pub struct SlackPostSettingsInput {
8392    /// The name of the Slack channel.
8393    pub channel: String,
8394    /// The Slack channel ID.
8395    pub channel_id: String,
8396    /// The URL to the Slack integration configuration page.
8397    pub configuration_url: String,
8398    /// The Slack workspace ID.
8399    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8400    pub team_id: MaybeUndefined<String>,
8401    /// The type of the Slack channel (e.g., public, private, or DM).
8402    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8403    pub channel_type: MaybeUndefined<SlackChannelType>,
8404}
8405#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8406#[serde(rename_all = "camelCase")]
8407pub struct SlackSettingsInput {
8408    /// Slack workspace name
8409    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8410    pub team_name: MaybeUndefined<String>,
8411    /// Slack workspace id
8412    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8413    pub team_id: MaybeUndefined<String>,
8414    /// Enterprise name of the connected Slack enterprise
8415    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8416    pub enterprise_name: MaybeUndefined<String>,
8417    /// Enterprise id of the connected Slack enterprise
8418    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8419    pub enterprise_id: MaybeUndefined<String>,
8420    /// Whether to show unfurl previews in Slack
8421    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8422    pub should_unfurl: MaybeUndefined<bool>,
8423    /// Whether to show unfurls in the default style instead of Work Objects in Slack
8424    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8425    pub should_use_default_unfurl: MaybeUndefined<bool>,
8426    /// Whether to allow external users to perform actions on unfurls
8427    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8428    pub external_user_actions: MaybeUndefined<bool>,
8429    /// Whether Linear should automatically respond with issue unfurls when an issue identifier is mentioned in a Slack message.
8430    pub link_on_issue_id_mention: bool,
8431    /// Whether Linear Agent should be enabled for this Slack integration.
8432    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8433    pub enable_agent: MaybeUndefined<bool>,
8434    /// Whether Linear Agent should be given Org-wide access within Slack workflows.
8435    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8436    pub enable_linear_agent_workflow_access: MaybeUndefined<bool>,
8437    /// Whether Code Intelligence should be enabled for this Slack integration.
8438    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8439    pub enable_code_intelligence: MaybeUndefined<bool>,
8440}
8441/// Comparator for issue source type.
8442#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8443#[serde(rename_all = "camelCase")]
8444pub struct SourceMetadataComparator {
8445    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
8446    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8447    pub null: MaybeUndefined<bool>,
8448    /// Comparator for the sub type.
8449    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8450    pub sub_type: MaybeUndefined<SubTypeComparator>,
8451    /// `INTERNAL` Comparator for the salesforce metadata.
8452    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8453    pub salesforce_metadata: MaybeUndefined<SalesforceMetadataIntegrationComparator>,
8454}
8455/// Comparator for `sourceType` field.
8456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8457#[serde(rename_all = "camelCase")]
8458pub struct SourceTypeComparator {
8459    /// Equals constraint.
8460    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8461    pub eq: MaybeUndefined<String>,
8462    /// Not-equals constraint.
8463    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8464    pub neq: MaybeUndefined<String>,
8465    /// In-array constraint.
8466    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8467    pub r#in: MaybeUndefined<Vec<String>>,
8468    /// Not-in-array constraint.
8469    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8470    pub nin: MaybeUndefined<Vec<String>>,
8471    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8472    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8473    pub eq_ignore_case: MaybeUndefined<String>,
8474    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8475    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8476    pub neq_ignore_case: MaybeUndefined<String>,
8477    /// Starts with constraint. Matches any values that start with the given string.
8478    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8479    pub starts_with: MaybeUndefined<String>,
8480    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8481    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8482    pub starts_with_ignore_case: MaybeUndefined<String>,
8483    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8484    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8485    pub not_starts_with: MaybeUndefined<String>,
8486    /// Ends with constraint. Matches any values that end with the given string.
8487    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8488    pub ends_with: MaybeUndefined<String>,
8489    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8490    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8491    pub not_ends_with: MaybeUndefined<String>,
8492    /// Contains constraint. Matches any values that contain the given string.
8493    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8494    pub contains: MaybeUndefined<String>,
8495    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8496    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8497    pub contains_ignore_case: MaybeUndefined<String>,
8498    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8499    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8500    pub not_contains: MaybeUndefined<String>,
8501    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8502    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8503    pub not_contains_ignore_case: MaybeUndefined<String>,
8504    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8505    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8506    pub contains_ignore_case_and_accent: MaybeUndefined<String>,
8507}
8508/// Project start date sorting options.
8509#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8510#[serde(rename_all = "camelCase")]
8511pub struct StartDateSort {
8512    /// Whether nulls should be sorted first or last
8513    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8514    pub nulls: MaybeUndefined<PaginationNulls>,
8515    /// The order for the individual sort
8516    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8517    pub order: MaybeUndefined<PaginationSortOrder>,
8518}
8519/// Comparator for strings.
8520#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8521#[serde(rename_all = "camelCase")]
8522pub struct StringArrayComparator {
8523    /// Length of the array. Matches any values that have the given length.
8524    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8525    pub length: MaybeUndefined<NumberComparator>,
8526    /// Compound filters, all of which need to be matched.
8527    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8528    pub every: MaybeUndefined<StringItemComparator>,
8529    /// Compound filters, one of which needs to be matched.
8530    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8531    pub some: MaybeUndefined<StringItemComparator>,
8532}
8533/// Comparator for strings.
8534#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8535#[serde(rename_all = "camelCase")]
8536pub struct StringComparator {
8537    /// Equals constraint.
8538    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8539    pub eq: MaybeUndefined<String>,
8540    /// Not-equals constraint.
8541    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8542    pub neq: MaybeUndefined<String>,
8543    /// In-array constraint.
8544    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8545    pub r#in: MaybeUndefined<Vec<String>>,
8546    /// Not-in-array constraint.
8547    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8548    pub nin: MaybeUndefined<Vec<String>>,
8549    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8550    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8551    pub eq_ignore_case: MaybeUndefined<String>,
8552    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8553    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8554    pub neq_ignore_case: MaybeUndefined<String>,
8555    /// Starts with constraint. Matches any values that start with the given string.
8556    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8557    pub starts_with: MaybeUndefined<String>,
8558    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8559    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8560    pub starts_with_ignore_case: MaybeUndefined<String>,
8561    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8562    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8563    pub not_starts_with: MaybeUndefined<String>,
8564    /// Ends with constraint. Matches any values that end with the given string.
8565    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8566    pub ends_with: MaybeUndefined<String>,
8567    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8568    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8569    pub not_ends_with: MaybeUndefined<String>,
8570    /// Contains constraint. Matches any values that contain the given string.
8571    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8572    pub contains: MaybeUndefined<String>,
8573    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8574    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8575    pub contains_ignore_case: MaybeUndefined<String>,
8576    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8577    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8578    pub not_contains: MaybeUndefined<String>,
8579    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8580    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8581    pub not_contains_ignore_case: MaybeUndefined<String>,
8582    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8583    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8584    pub contains_ignore_case_and_accent: MaybeUndefined<String>,
8585}
8586/// Comparator for strings in arrays.
8587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8588#[serde(rename_all = "camelCase")]
8589pub struct StringItemComparator {
8590    /// Equals constraint.
8591    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8592    pub eq: MaybeUndefined<String>,
8593    /// Not-equals constraint.
8594    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8595    pub neq: MaybeUndefined<String>,
8596    /// In-array constraint.
8597    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8598    pub r#in: MaybeUndefined<Vec<String>>,
8599    /// Not-in-array constraint.
8600    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8601    pub nin: MaybeUndefined<Vec<String>>,
8602    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8603    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8604    pub eq_ignore_case: MaybeUndefined<String>,
8605    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8606    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8607    pub neq_ignore_case: MaybeUndefined<String>,
8608    /// Starts with constraint. Matches any values that start with the given string.
8609    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8610    pub starts_with: MaybeUndefined<String>,
8611    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8612    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8613    pub starts_with_ignore_case: MaybeUndefined<String>,
8614    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8615    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8616    pub not_starts_with: MaybeUndefined<String>,
8617    /// Ends with constraint. Matches any values that end with the given string.
8618    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8619    pub ends_with: MaybeUndefined<String>,
8620    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8621    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8622    pub not_ends_with: MaybeUndefined<String>,
8623    /// Contains constraint. Matches any values that contain the given string.
8624    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8625    pub contains: MaybeUndefined<String>,
8626    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8627    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8628    pub contains_ignore_case: MaybeUndefined<String>,
8629    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8630    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8631    pub not_contains: MaybeUndefined<String>,
8632    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8633    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8634    pub not_contains_ignore_case: MaybeUndefined<String>,
8635    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8636    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8637    pub contains_ignore_case_and_accent: MaybeUndefined<String>,
8638}
8639/// Comparator for source type.
8640#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8641#[serde(rename_all = "camelCase")]
8642pub struct SubTypeComparator {
8643    /// Equals constraint.
8644    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8645    pub eq: MaybeUndefined<String>,
8646    /// Not-equals constraint.
8647    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8648    pub neq: MaybeUndefined<String>,
8649    /// In-array constraint.
8650    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8651    pub r#in: MaybeUndefined<Vec<String>>,
8652    /// Not-in-array constraint.
8653    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8654    pub nin: MaybeUndefined<Vec<String>>,
8655    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
8656    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8657    pub null: MaybeUndefined<bool>,
8658}
8659/// Project target date sorting options.
8660#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8661#[serde(rename_all = "camelCase")]
8662pub struct TargetDateSort {
8663    /// Whether nulls should be sorted first or last
8664    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8665    pub nulls: MaybeUndefined<PaginationNulls>,
8666    /// The order for the individual sort
8667    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8668    pub order: MaybeUndefined<PaginationSortOrder>,
8669}
8670/// Team collection filtering options.
8671#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8672#[serde(rename_all = "camelCase")]
8673pub struct TeamCollectionFilter {
8674    /// Comparator for the identifier.
8675    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8676    pub id: MaybeUndefined<IDComparator>,
8677    /// Comparator for the created at date.
8678    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8679    pub created_at: MaybeUndefined<DateComparator>,
8680    /// Comparator for the updated at date.
8681    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8682    pub updated_at: MaybeUndefined<DateComparator>,
8683    /// Compound filters, all of which need to be matched by the team.
8684    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8685    pub and: MaybeUndefined<Vec<TeamCollectionFilter>>,
8686    /// Compound filters, one of which need to be matched by the team.
8687    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8688    pub or: MaybeUndefined<Vec<TeamCollectionFilter>>,
8689    /// Filters that needs to be matched by some teams.
8690    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8691    pub some: MaybeUndefined<Box<TeamFilter>>,
8692    /// Filters that needs to be matched by all teams.
8693    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8694    pub every: MaybeUndefined<Box<TeamFilter>>,
8695    /// Comparator for the collection length.
8696    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8697    pub length: MaybeUndefined<NumberComparator>,
8698    /// Filters that the teams parent must satisfy.
8699    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8700    pub parent: MaybeUndefined<Box<NullableTeamFilter>>,
8701    /// Filters that the team's ancestors must satisfy.
8702    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8703    pub ancestors: MaybeUndefined<Box<TeamCollectionFilter>>,
8704}
8705#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8706#[serde(rename_all = "camelCase")]
8707pub struct TeamCreateInput {
8708    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8709    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8710    pub id: MaybeUndefined<String>,
8711    /// The name of the team.
8712    pub name: String,
8713    /// The description of the team.
8714    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8715    pub description: MaybeUndefined<String>,
8716    /// The key of the team. If not given, the key will be generated based on the name of the team.
8717    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8718    pub key: MaybeUndefined<String>,
8719    /// The icon of the team.
8720    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8721    pub icon: MaybeUndefined<String>,
8722    /// The color of the team.
8723    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8724    pub color: MaybeUndefined<String>,
8725    /// Whether the team uses cycles.
8726    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8727    pub cycles_enabled: MaybeUndefined<bool>,
8728    /// The day of the week that a new cycle starts.
8729    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8730    pub cycle_start_day: MaybeUndefined<f64>,
8731    /// The duration of each cycle in weeks.
8732    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8733    pub cycle_duration: MaybeUndefined<i64>,
8734    /// The cooldown time after each cycle in weeks.
8735    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8736    pub cycle_cooldown_time: MaybeUndefined<i64>,
8737    /// Auto assign started issues to current active cycle setting.
8738    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8739    pub cycle_issue_auto_assign_started: MaybeUndefined<bool>,
8740    /// Auto assign completed issues to current active cycle setting.
8741    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8742    pub cycle_issue_auto_assign_completed: MaybeUndefined<bool>,
8743    /// Only allow issues issues with cycles in Active Issues.
8744    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8745    pub cycle_lock_to_active: MaybeUndefined<bool>,
8746    /// How many upcoming cycles to create.
8747    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8748    pub upcoming_cycle_count: MaybeUndefined<f64>,
8749    /// Whether triage mode is enabled for the team.
8750    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8751    pub triage_enabled: MaybeUndefined<bool>,
8752    /// Whether an issue needs to have a priority set before leaving triage.
8753    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8754    pub require_priority_to_leave_triage: MaybeUndefined<bool>,
8755    /// The timezone of the team.
8756    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8757    pub timezone: MaybeUndefined<String>,
8758    /// Whether the team should inherit estimation settings from its parent. Only applies to sub-teams.
8759    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8760    pub inherit_issue_estimation: MaybeUndefined<bool>,
8761    /// `Internal` Whether the team should inherit workflow statuses from its parent.
8762    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8763    pub inherit_workflow_statuses: MaybeUndefined<bool>,
8764    /// The issue estimation type to use. Must be one of "notUsed", "exponential", "fibonacci", "linear", "tShirt".
8765    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8766    pub issue_estimation_type: MaybeUndefined<String>,
8767    /// Whether to allow zeros in issues estimates.
8768    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8769    pub issue_estimation_allow_zero: MaybeUndefined<bool>,
8770    /// Whether to move issues to bottom of the column when changing state.
8771    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8772    pub set_issue_sort_order_on_state_change: MaybeUndefined<String>,
8773    /// Whether to add additional points to the estimate scale.
8774    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8775    pub issue_estimation_extended: MaybeUndefined<bool>,
8776    /// What to use as an default estimate for unestimated issues.
8777    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8778    pub default_issue_estimate: MaybeUndefined<f64>,
8779    /// Whether to group recent issue history entries.
8780    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8781    pub group_issue_history: MaybeUndefined<bool>,
8782    /// The identifier of the default template for members of this team.
8783    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8784    pub default_template_for_members_id: MaybeUndefined<String>,
8785    /// The identifier of the default template for non-members of this team.
8786    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8787    pub default_template_for_non_members_id: MaybeUndefined<String>,
8788    /// The identifier of the default project template of this team.
8789    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8790    pub default_project_template_id: MaybeUndefined<String>,
8791    /// Internal. Whether the team is private or not.
8792    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8793    pub private: MaybeUndefined<bool>,
8794    /// Period after which issues are automatically closed, in months.
8795    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8796    pub auto_close_period: MaybeUndefined<f64>,
8797    /// The canceled workflow state which auto closed issues will be set to.
8798    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8799    pub auto_close_state_id: MaybeUndefined<String>,
8800    /// Period after which closed (completed, canceled, or duplicate) issues are automatically archived, in months. 0 means disabled.
8801    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8802    pub auto_archive_period: MaybeUndefined<f64>,
8803    /// The workflow state into which issues are moved when they are marked as a duplicate of another issue.
8804    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8805    pub marked_as_duplicate_workflow_state_id: MaybeUndefined<String>,
8806    /// The parent team ID.
8807    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8808    pub parent_id: MaybeUndefined<String>,
8809    /// `Internal` Whether the team should inherit its product intelligence scope from its parent. Only applies to sub-teams.
8810    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8811    pub inherit_product_intelligence_scope: MaybeUndefined<bool>,
8812    /// `Internal` The scope of product intelligence suggestion data for the team.
8813    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8814    pub product_intelligence_scope: MaybeUndefined<ProductIntelligenceScope>,
8815    /// Whether issue sharing is enabled for this team.
8816    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8817    pub issue_sharing_enabled: MaybeUndefined<bool>,
8818    /// `Internal` Whether the team should inherit its Slack auto-create project channel setting from its parent. Only applies to sub-teams.
8819    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8820    pub inherit_slack_auto_create_project_channel: MaybeUndefined<bool>,
8821    /// `Internal` Whether to automatically create a Slack channel when a new project is created in this team.
8822    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8823    pub slack_auto_create_project_channel: MaybeUndefined<bool>,
8824}
8825/// Team filtering options.
8826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8827#[serde(rename_all = "camelCase")]
8828pub struct TeamFilter {
8829    /// Comparator for the identifier.
8830    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8831    pub id: MaybeUndefined<IDComparator>,
8832    /// Comparator for the created at date.
8833    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8834    pub created_at: MaybeUndefined<DateComparator>,
8835    /// Comparator for the updated at date.
8836    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8837    pub updated_at: MaybeUndefined<DateComparator>,
8838    /// Comparator for the team name.
8839    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8840    pub name: MaybeUndefined<StringComparator>,
8841    /// Comparator for the team key.
8842    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8843    pub key: MaybeUndefined<StringComparator>,
8844    /// Comparator for the team description.
8845    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8846    pub description: MaybeUndefined<NullableStringComparator>,
8847    /// Comparator for the team privacy.
8848    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8849    pub private: MaybeUndefined<BooleanComparator>,
8850    /// Comparator for the time at which the team was retired.
8851    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8852    pub retired_at: MaybeUndefined<NullableDateComparator>,
8853    /// Filters that the teams issues must satisfy.
8854    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8855    pub issues: MaybeUndefined<Box<IssueCollectionFilter>>,
8856    /// Filters that the teams parent must satisfy.
8857    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8858    pub parent: MaybeUndefined<Box<NullableTeamFilter>>,
8859    /// Filters that the team's ancestors must satisfy.
8860    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8861    pub ancestors: MaybeUndefined<Box<TeamCollectionFilter>>,
8862    /// `ALPHA` Filters that the team's release pipelines must satisfy.
8863    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8864    pub release_pipelines: MaybeUndefined<Box<ReleasePipelineCollectionFilter>>,
8865    /// Compound filters, all of which need to be matched by the team.
8866    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8867    pub and: MaybeUndefined<Vec<TeamFilter>>,
8868    /// Compound filters, one of which need to be matched by the team.
8869    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8870    pub or: MaybeUndefined<Vec<TeamFilter>>,
8871}
8872/// Input for creating a new team membership.
8873#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8874#[serde(rename_all = "camelCase")]
8875pub struct TeamMembershipCreateInput {
8876    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8877    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8878    pub id: MaybeUndefined<String>,
8879    /// The identifier of the user associated with the membership.
8880    pub user_id: String,
8881    /// The identifier of the team associated with the membership.
8882    pub team_id: String,
8883    /// Internal. Whether the user is the owner of the team.
8884    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8885    pub owner: MaybeUndefined<bool>,
8886    /// The position of the item in the users list.
8887    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8888    pub sort_order: MaybeUndefined<f64>,
8889}
8890/// Input for updating an existing team membership.
8891#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8892#[serde(rename_all = "camelCase")]
8893pub struct TeamMembershipUpdateInput {
8894    /// Internal. Whether the user is the owner of the team.
8895    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8896    pub owner: MaybeUndefined<bool>,
8897    /// The position of the item in the users list.
8898    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8899    pub sort_order: MaybeUndefined<f64>,
8900}
8901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8902#[serde(rename_all = "camelCase")]
8903pub struct TeamSecuritySettingsInput {
8904    /// The minimum team role required to share issues with non-team-members.
8905    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8906    pub issue_sharing: MaybeUndefined<TeamRoleType>,
8907    /// The minimum team role required to manage labels in the team.
8908    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8909    pub label_management: MaybeUndefined<TeamRoleType>,
8910    /// The minimum team role required to manage full workspace members (non-guests) in the team.
8911    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8912    pub member_management: MaybeUndefined<TeamRoleType>,
8913    /// The minimum team role required to manage team settings.
8914    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8915    pub team_management: MaybeUndefined<TeamRoleType>,
8916    /// The minimum team role required to manage templates in the team.
8917    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8918    pub template_management: MaybeUndefined<TeamRoleType>,
8919}
8920/// Issue team sorting options.
8921#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8922#[serde(rename_all = "camelCase")]
8923pub struct TeamSort {
8924    /// Whether nulls should be sorted first or last
8925    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8926    pub nulls: MaybeUndefined<PaginationNulls>,
8927    /// The order for the individual sort
8928    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8929    pub order: MaybeUndefined<PaginationSortOrder>,
8930}
8931#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8932#[serde(rename_all = "camelCase")]
8933pub struct TeamUpdateInput {
8934    /// The name of the team.
8935    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8936    pub name: MaybeUndefined<String>,
8937    /// The description of the team.
8938    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8939    pub description: MaybeUndefined<String>,
8940    /// The key of the team.
8941    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8942    pub key: MaybeUndefined<String>,
8943    /// The icon of the team.
8944    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8945    pub icon: MaybeUndefined<String>,
8946    /// The color of the team.
8947    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8948    pub color: MaybeUndefined<String>,
8949    /// Whether the team uses cycles.
8950    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8951    pub cycles_enabled: MaybeUndefined<bool>,
8952    /// The day of the week that a new cycle starts.
8953    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8954    pub cycle_start_day: MaybeUndefined<f64>,
8955    /// The duration of each cycle in weeks.
8956    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8957    pub cycle_duration: MaybeUndefined<i64>,
8958    /// The cooldown time after each cycle in weeks.
8959    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8960    pub cycle_cooldown_time: MaybeUndefined<i64>,
8961    /// Auto assign started issues to current active cycle setting.
8962    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8963    pub cycle_issue_auto_assign_started: MaybeUndefined<bool>,
8964    /// Auto assign completed issues to current active cycle setting.
8965    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8966    pub cycle_issue_auto_assign_completed: MaybeUndefined<bool>,
8967    /// Only allow issues with cycles in Active Issues.
8968    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8969    pub cycle_lock_to_active: MaybeUndefined<bool>,
8970    /// The time at which to begin cycles.
8971    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8972    pub cycle_enabled_start_date: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
8973    /// How many upcoming cycles to create.
8974    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8975    pub upcoming_cycle_count: MaybeUndefined<f64>,
8976    /// The timezone of the team.
8977    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8978    pub timezone: MaybeUndefined<String>,
8979    /// Whether the team should inherit estimation settings from its parent. Only applies to sub-teams.
8980    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8981    pub inherit_issue_estimation: MaybeUndefined<bool>,
8982    /// The issue estimation type to use. Must be one of "notUsed", "exponential", "fibonacci", "linear", "tShirt".
8983    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8984    pub issue_estimation_type: MaybeUndefined<String>,
8985    /// Whether to allow zeros in issues estimates.
8986    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8987    pub issue_estimation_allow_zero: MaybeUndefined<bool>,
8988    /// Whether to move issues to bottom of the column when changing state.
8989    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8990    pub set_issue_sort_order_on_state_change: MaybeUndefined<String>,
8991    /// Whether to add additional points to the estimate scale.
8992    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8993    pub issue_estimation_extended: MaybeUndefined<bool>,
8994    /// What to use as an default estimate for unestimated issues.
8995    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8996    pub default_issue_estimate: MaybeUndefined<f64>,
8997    /// Whether to send new issue notifications to Slack.
8998    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
8999    pub slack_new_issue: MaybeUndefined<bool>,
9000    /// Whether to send new issue comment notifications to Slack.
9001    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9002    pub slack_issue_comments: MaybeUndefined<bool>,
9003    /// Whether to send issue status update notifications to Slack.
9004    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9005    pub slack_issue_statuses: MaybeUndefined<bool>,
9006    /// Whether to group recent issue history entries.
9007    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9008    pub group_issue_history: MaybeUndefined<bool>,
9009    /// Whether to enable resolved thread AI summaries.
9010    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9011    pub ai_thread_summaries_enabled: MaybeUndefined<bool>,
9012    /// Whether to enable AI discussion summaries for issues.
9013    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9014    pub ai_discussion_summaries_enabled: MaybeUndefined<bool>,
9015    /// The identifier of the default template for members of this team.
9016    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9017    pub default_template_for_members_id: MaybeUndefined<String>,
9018    /// The identifier of the default template for non-members of this team.
9019    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9020    pub default_template_for_non_members_id: MaybeUndefined<String>,
9021    /// The identifier of the default project template of this team.
9022    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9023    pub default_project_template_id: MaybeUndefined<String>,
9024    /// Whether the team is private or not.
9025    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9026    pub private: MaybeUndefined<bool>,
9027    /// Whether triage mode is enabled for the team.
9028    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9029    pub triage_enabled: MaybeUndefined<bool>,
9030    /// Whether an issue needs to have a priority set before leaving triage.
9031    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9032    pub require_priority_to_leave_triage: MaybeUndefined<bool>,
9033    /// Default status for newly created issues.
9034    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9035    pub default_issue_state_id: MaybeUndefined<String>,
9036    /// Period after which issues are automatically closed, in months.
9037    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9038    pub auto_close_period: MaybeUndefined<f64>,
9039    /// The canceled workflow state which auto closed issues will be set to.
9040    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9041    pub auto_close_state_id: MaybeUndefined<String>,
9042    /// Whether to automatically close a parent issue in this team if all its sub-issues are closed.
9043    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9044    pub auto_close_parent_issues: MaybeUndefined<bool>,
9045    /// Whether to automatically close all sub-issues when a parent issue in this team is closed.
9046    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9047    pub auto_close_child_issues: MaybeUndefined<bool>,
9048    /// Period after which closed (completed, canceled, or duplicate) issues are automatically archived, in months.
9049    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9050    pub auto_archive_period: MaybeUndefined<f64>,
9051    /// The workflow state into which issues are moved when they are marked as a duplicate of another issue.
9052    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9053    pub marked_as_duplicate_workflow_state_id: MaybeUndefined<String>,
9054    /// Whether new users should join this team by default. Mutation restricted to workspace admins or owners!
9055    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9056    pub join_by_default: MaybeUndefined<bool>,
9057    /// Whether the team is managed by SCIM integration. Mutation restricted to workspace admins or owners and only unsetting is allowed!
9058    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9059    pub scim_managed: MaybeUndefined<bool>,
9060    /// The parent team ID.
9061    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9062    pub parent_id: MaybeUndefined<String>,
9063    /// `Internal` Whether the team should inherit workflow statuses from its parent.
9064    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9065    pub inherit_workflow_statuses: MaybeUndefined<bool>,
9066    /// `Internal` Whether the team should inherit its product intelligence scope from its parent. Only applies to sub-teams.
9067    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9068    pub inherit_product_intelligence_scope: MaybeUndefined<bool>,
9069    /// `Internal` The scope of product intelligence suggestion data for the team.
9070    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9071    pub product_intelligence_scope: MaybeUndefined<ProductIntelligenceScope>,
9072    /// Whether issue sharing is enabled for this team.
9073    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9074    pub issue_sharing_enabled: MaybeUndefined<bool>,
9075    /// `Internal` Whether the team should inherit its Slack auto-create project channel setting from its parent. Only applies to sub-teams.
9076    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9077    pub inherit_slack_auto_create_project_channel: MaybeUndefined<bool>,
9078    /// `Internal` Whether to automatically create a Slack channel when a new project is created in this team.
9079    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9080    pub slack_auto_create_project_channel: MaybeUndefined<bool>,
9081    /// The security settings for the team.
9082    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9083    pub security_settings: MaybeUndefined<TeamSecuritySettingsInput>,
9084    /// Whether all members in the workspace can join the team. Only used for public teams.
9085    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9086    pub all_members_can_join: MaybeUndefined<bool>,
9087    /// When the team was retired.
9088    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9089    pub retired_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
9090    /// `Internal` How to handle sub-teams when retiring. Required if the team has active sub-teams.
9091    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9092    pub handle_sub_teams_on_retirement: MaybeUndefined<TeamRetirementSubTeamHandling>,
9093}
9094/// Input for creating a new template. A name, type, and template data are required. If no team is specified, the template is shared across the workspace.
9095#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9096#[serde(rename_all = "camelCase")]
9097pub struct TemplateCreateInput {
9098    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9099    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9100    pub id: MaybeUndefined<String>,
9101    /// The template type, e.g. 'issue', 'project', or 'document'.
9102    pub r#type: String,
9103    /// The identifier or key of the team associated with the template. If not given, the template will be shared across all teams.
9104    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9105    pub team_id: MaybeUndefined<String>,
9106    /// The template name.
9107    pub name: String,
9108    /// The template description.
9109    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9110    pub description: MaybeUndefined<String>,
9111    /// The icon of the template.
9112    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9113    pub icon: MaybeUndefined<String>,
9114    /// The color of the template icon.
9115    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9116    pub color: MaybeUndefined<String>,
9117    /// The template data as JSON-encoded attributes of the target entity type, such as pre-filled issue fields, project configuration, or document content.
9118    pub template_data: serde_json::Value,
9119    /// The sort position of the template in the templates list.
9120    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9121    pub sort_order: MaybeUndefined<f64>,
9122}
9123/// Input for updating an existing template. All fields are optional; only provided fields will be updated.
9124#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9125#[serde(rename_all = "camelCase")]
9126pub struct TemplateUpdateInput {
9127    /// The template name.
9128    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9129    pub name: MaybeUndefined<String>,
9130    /// The template description.
9131    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9132    pub description: MaybeUndefined<String>,
9133    /// The icon of the template.
9134    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9135    pub icon: MaybeUndefined<String>,
9136    /// The color of the template icon.
9137    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9138    pub color: MaybeUndefined<String>,
9139    /// The identifier or key of the team associated with the template. If set to null, the template will be shared across all teams.
9140    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9141    pub team_id: MaybeUndefined<String>,
9142    /// The template data as JSON-encoded attributes of the target entity type, such as pre-filled issue fields, project configuration, or document content.
9143    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9144    pub template_data: MaybeUndefined<serde_json::Value>,
9145    /// The position of the template in the templates list.
9146    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9147    pub sort_order: MaybeUndefined<f64>,
9148}
9149/// Customer tier sorting options.
9150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9151#[serde(rename_all = "camelCase")]
9152pub struct TierSort {
9153    /// Whether nulls should be sorted first or last
9154    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9155    pub nulls: MaybeUndefined<PaginationNulls>,
9156    /// The order for the individual sort
9157    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9158    pub order: MaybeUndefined<PaginationSortOrder>,
9159}
9160/// Issue time in status sorting options.
9161#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9162#[serde(rename_all = "camelCase")]
9163pub struct TimeInStatusSort {
9164    /// Whether nulls should be sorted first or last
9165    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9166    pub nulls: MaybeUndefined<PaginationNulls>,
9167    /// The order for the individual sort
9168    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9169    pub order: MaybeUndefined<PaginationSortOrder>,
9170}
9171/// Input for creating a new time schedule.
9172#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9173#[serde(rename_all = "camelCase")]
9174pub struct TimeScheduleCreateInput {
9175    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9176    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9177    pub id: MaybeUndefined<String>,
9178    /// The name of the schedule.
9179    pub name: String,
9180    /// The schedule entries.
9181    pub entries: Vec<TimeScheduleEntryInput>,
9182    /// The unique identifier of the external schedule.
9183    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9184    pub external_id: MaybeUndefined<String>,
9185    /// The URL to the external schedule.
9186    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9187    pub external_url: MaybeUndefined<String>,
9188}
9189#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9190#[serde(rename_all = "camelCase")]
9191pub struct TimeScheduleEntryInput {
9192    /// The start time of the schedule entry in ISO 8601 date-time format.
9193    pub starts_at: chrono::DateTime<chrono::Utc>,
9194    /// The end time of the schedule entry in ISO 8601 date-time format.
9195    pub ends_at: chrono::DateTime<chrono::Utc>,
9196    /// The Linear user id of the user on schedule. If the user cannot be mapped to a Linear user then `userEmail` can be used as a reference.
9197    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9198    pub user_id: MaybeUndefined<String>,
9199    /// The email, name or reference to the user on schedule. This is used in case the external user could not be mapped to a Linear user id.
9200    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9201    pub user_email: MaybeUndefined<String>,
9202}
9203/// Input for updating an existing time schedule.
9204#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9205#[serde(rename_all = "camelCase")]
9206pub struct TimeScheduleUpdateInput {
9207    /// The name of the schedule.
9208    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9209    pub name: MaybeUndefined<String>,
9210    /// The schedule entries.
9211    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9212    pub entries: MaybeUndefined<Vec<TimeScheduleEntryInput>>,
9213    /// The unique identifier of the external schedule.
9214    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9215    pub external_id: MaybeUndefined<String>,
9216    /// The URL to the external schedule.
9217    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9218    pub external_url: MaybeUndefined<String>,
9219}
9220/// Issue title sorting options.
9221#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9222#[serde(rename_all = "camelCase")]
9223pub struct TitleSort {
9224    /// Whether nulls should be sorted first or last
9225    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9226    pub nulls: MaybeUndefined<PaginationNulls>,
9227    /// The order for the individual sort
9228    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9229    pub order: MaybeUndefined<PaginationSortOrder>,
9230}
9231#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9232#[serde(rename_all = "camelCase")]
9233pub struct TokenUserAccountAuthInput {
9234    /// The email which to login via the magic login code.
9235    pub email: String,
9236    /// The magic login code.
9237    pub token: String,
9238    /// The timezone of the user's browser.
9239    pub timezone: String,
9240    /// An optional invite link for a workspace.
9241    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9242    pub invite_link: MaybeUndefined<String>,
9243    /// Auth code for the client initiating the login sequence.
9244    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9245    pub client_auth_code: MaybeUndefined<String>,
9246}
9247/// Input for creating a new triage responsibility.
9248#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9249#[serde(rename_all = "camelCase")]
9250pub struct TriageResponsibilityCreateInput {
9251    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9252    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9253    pub id: MaybeUndefined<String>,
9254    /// The identifier of the team associated with the triage responsibility.
9255    pub team_id: String,
9256    /// The action to take when an issue is added to triage.
9257    pub action: String,
9258    /// The manual selection of users responsible for triage.
9259    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9260    pub manual_selection: MaybeUndefined<TriageResponsibilityManualSelectionInput>,
9261    /// The identifier of the time schedule used for scheduling triage responsibility
9262    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9263    pub time_schedule_id: MaybeUndefined<String>,
9264}
9265/// Manual triage responsibility using a set of users.
9266#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9267#[serde(rename_all = "camelCase")]
9268pub struct TriageResponsibilityManualSelectionInput {
9269    /// The set of users responsible for triage.
9270    pub user_ids: Vec<String>,
9271    /// `Internal` The index of the current userId used for the assign action when having more than one user.
9272    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9273    pub assignment_index: MaybeUndefined<i64>,
9274}
9275/// Input for updating an existing triage responsibility.
9276#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9277#[serde(rename_all = "camelCase")]
9278pub struct TriageResponsibilityUpdateInput {
9279    /// The action to take when an issue is added to triage.
9280    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9281    pub action: MaybeUndefined<String>,
9282    /// The manual selection of users responsible for triage.
9283    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9284    pub manual_selection: MaybeUndefined<TriageResponsibilityManualSelectionInput>,
9285    /// The identifier of the time schedule used for scheduling triage responsibility.
9286    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9287    pub time_schedule_id: MaybeUndefined<String>,
9288}
9289/// Issue update date sorting options.
9290#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9291#[serde(rename_all = "camelCase")]
9292pub struct UpdatedAtSort {
9293    /// Whether nulls should be sorted first or last
9294    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9295    pub nulls: MaybeUndefined<PaginationNulls>,
9296    /// The order for the individual sort
9297    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9298    pub order: MaybeUndefined<PaginationSortOrder>,
9299}
9300/// User filtering options.
9301#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9302#[serde(rename_all = "camelCase")]
9303pub struct UserCollectionFilter {
9304    /// Comparator for the identifier.
9305    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9306    pub id: MaybeUndefined<IDComparator>,
9307    /// Comparator for the created at date.
9308    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9309    pub created_at: MaybeUndefined<DateComparator>,
9310    /// Comparator for the updated at date.
9311    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9312    pub updated_at: MaybeUndefined<DateComparator>,
9313    /// Comparator for the user's name.
9314    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9315    pub name: MaybeUndefined<StringComparator>,
9316    /// Comparator for the user's display name.
9317    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9318    pub display_name: MaybeUndefined<StringComparator>,
9319    /// Comparator for the user's email.
9320    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9321    pub email: MaybeUndefined<StringComparator>,
9322    /// Comparator for the user's activity status.
9323    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9324    pub active: MaybeUndefined<BooleanComparator>,
9325    /// Filters that the users assigned issues must satisfy.
9326    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9327    pub assigned_issues: MaybeUndefined<Box<IssueCollectionFilter>>,
9328    /// Comparator for the user's admin status.
9329    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9330    pub admin: MaybeUndefined<BooleanComparator>,
9331    /// Comparator for the user's owner status.
9332    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9333    pub owner: MaybeUndefined<BooleanComparator>,
9334    /// Comparator for the user's invited status.
9335    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9336    pub invited: MaybeUndefined<BooleanComparator>,
9337    /// Comparator for the user's invited status.
9338    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9339    pub is_invited: MaybeUndefined<BooleanComparator>,
9340    /// Comparator for the user's app status.
9341    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9342    pub app: MaybeUndefined<BooleanComparator>,
9343    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
9344    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9345    pub is_me: MaybeUndefined<BooleanComparator>,
9346    /// Compound filters, all of which need to be matched by the user.
9347    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9348    pub and: MaybeUndefined<Vec<UserCollectionFilter>>,
9349    /// Compound filters, one of which need to be matched by the user.
9350    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9351    pub or: MaybeUndefined<Vec<UserCollectionFilter>>,
9352    /// Filters that needs to be matched by some users.
9353    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9354    pub some: MaybeUndefined<Box<UserFilter>>,
9355    /// Filters that needs to be matched by all users.
9356    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9357    pub every: MaybeUndefined<Box<UserFilter>>,
9358    /// Comparator for the collection length.
9359    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9360    pub length: MaybeUndefined<NumberComparator>,
9361}
9362/// User display name sorting options.
9363#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9364#[serde(rename_all = "camelCase")]
9365pub struct UserDisplayNameSort {
9366    /// Whether nulls should be sorted first or last
9367    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9368    pub nulls: MaybeUndefined<PaginationNulls>,
9369    /// The order for the individual sort
9370    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9371    pub order: MaybeUndefined<PaginationSortOrder>,
9372}
9373/// User filtering options.
9374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9375#[serde(rename_all = "camelCase")]
9376pub struct UserFilter {
9377    /// Comparator for the identifier.
9378    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9379    pub id: MaybeUndefined<IDComparator>,
9380    /// Comparator for the created at date.
9381    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9382    pub created_at: MaybeUndefined<DateComparator>,
9383    /// Comparator for the updated at date.
9384    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9385    pub updated_at: MaybeUndefined<DateComparator>,
9386    /// Comparator for the user's name.
9387    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9388    pub name: MaybeUndefined<StringComparator>,
9389    /// Comparator for the user's display name.
9390    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9391    pub display_name: MaybeUndefined<StringComparator>,
9392    /// Comparator for the user's email.
9393    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9394    pub email: MaybeUndefined<StringComparator>,
9395    /// Comparator for the user's activity status.
9396    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9397    pub active: MaybeUndefined<BooleanComparator>,
9398    /// Filters that the users assigned issues must satisfy.
9399    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9400    pub assigned_issues: MaybeUndefined<Box<IssueCollectionFilter>>,
9401    /// Comparator for the user's admin status.
9402    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9403    pub admin: MaybeUndefined<BooleanComparator>,
9404    /// Comparator for the user's owner status.
9405    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9406    pub owner: MaybeUndefined<BooleanComparator>,
9407    /// Comparator for the user's invited status.
9408    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9409    pub invited: MaybeUndefined<BooleanComparator>,
9410    /// Comparator for the user's invited status.
9411    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9412    pub is_invited: MaybeUndefined<BooleanComparator>,
9413    /// Comparator for the user's app status.
9414    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9415    pub app: MaybeUndefined<BooleanComparator>,
9416    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
9417    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9418    pub is_me: MaybeUndefined<BooleanComparator>,
9419    /// Compound filters, all of which need to be matched by the user.
9420    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9421    pub and: MaybeUndefined<Vec<UserFilter>>,
9422    /// Compound filters, one of which need to be matched by the user.
9423    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9424    pub or: MaybeUndefined<Vec<UserFilter>>,
9425}
9426/// User name sorting options.
9427#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9428#[serde(rename_all = "camelCase")]
9429pub struct UserNameSort {
9430    /// Whether nulls should be sorted first or last
9431    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9432    pub nulls: MaybeUndefined<PaginationNulls>,
9433    /// The order for the individual sort
9434    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9435    pub order: MaybeUndefined<PaginationSortOrder>,
9436}
9437#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9438#[serde(rename_all = "camelCase")]
9439pub struct UserSettingsUpdateInput {
9440    /// The user's settings.
9441    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9442    pub settings: MaybeUndefined<serde_json::Value>,
9443    /// Whether this user is subscribed to changelog email or not.
9444    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9445    pub subscribed_to_changelog: MaybeUndefined<bool>,
9446    /// Whether this user is subscribed to DPA emails or not.
9447    #[serde(
9448        rename = "subscribedToDPA",
9449        default,
9450        skip_serializing_if = "MaybeUndefined::is_undefined"
9451    )]
9452    pub subscribed_to_dpa: MaybeUndefined<bool>,
9453    /// Whether this user is subscribed to invite accepted emails or not.
9454    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9455    pub subscribed_to_invite_accepted: MaybeUndefined<bool>,
9456    /// Whether this user is subscribed to privacy and legal update emails or not.
9457    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9458    pub subscribed_to_privacy_legal_updates: MaybeUndefined<bool>,
9459    /// Whether this user is subscribed to general marketing communications or not.
9460    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9461    pub subscribed_to_general_marketing_communications: MaybeUndefined<bool>,
9462    /// The user's notification category preferences.
9463    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9464    pub notification_category_preferences: MaybeUndefined<NotificationCategoryPreferencesInput>,
9465    /// The user's notification channel preferences.
9466    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9467    pub notification_channel_preferences:
9468        MaybeUndefined<PartialNotificationChannelPreferencesInput>,
9469    /// The user's notification delivery preferences.
9470    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9471    pub notification_delivery_preferences: MaybeUndefined<NotificationDeliveryPreferencesInput>,
9472    /// `Internal` The user's usage warning history.
9473    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9474    pub usage_warning_history: MaybeUndefined<serde_json::Value>,
9475    /// `Internal` How often to generate a feed summary.
9476    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9477    pub feed_summary_schedule: MaybeUndefined<FeedSummarySchedule>,
9478    /// `Internal` The user's last seen time for the pulse feed.
9479    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9480    pub feed_last_seen_time: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
9481}
9482/// User sorting options.
9483#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9484#[serde(rename_all = "camelCase")]
9485pub struct UserSortInput {
9486    /// Sort by user name
9487    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9488    pub name: MaybeUndefined<UserNameSort>,
9489    /// Sort by user display name
9490    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9491    pub display_name: MaybeUndefined<UserDisplayNameSort>,
9492}
9493/// Input for updating the authenticated user.
9494#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9495#[serde(rename_all = "camelCase")]
9496pub struct UserUpdateInput {
9497    /// The name of the user.
9498    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9499    pub name: MaybeUndefined<String>,
9500    /// The display name of the user.
9501    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9502    pub display_name: MaybeUndefined<String>,
9503    /// The avatar image URL of the user.
9504    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9505    pub avatar_url: MaybeUndefined<String>,
9506    /// The user description or a short bio.
9507    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9508    pub description: MaybeUndefined<String>,
9509    /// The user's job title.
9510    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9511    pub title: MaybeUndefined<String>,
9512    /// The emoji part of the user status.
9513    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9514    pub status_emoji: MaybeUndefined<String>,
9515    /// The label part of the user status.
9516    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9517    pub status_label: MaybeUndefined<String>,
9518    /// When the user status should be cleared.
9519    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9520    pub status_until_at: MaybeUndefined<chrono::DateTime<chrono::Utc>>,
9521    /// The local timezone of the user.
9522    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9523    pub timezone: MaybeUndefined<String>,
9524}
9525/// Input for creating view preferences.
9526#[derive(Debug, Clone, Serialize, Deserialize)]
9527#[serde(rename_all = "camelCase")]
9528pub struct ViewPreferencesCreateInput {
9529    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9530    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9531    pub id: MaybeUndefined<String>,
9532    /// The type of view preferences (either user or workspace level preferences).
9533    pub r#type: ViewPreferencesType,
9534    /// The view type of the view preferences are associated with.
9535    pub view_type: ViewType,
9536    /// View preferences object.
9537    pub preferences: serde_json::Value,
9538    /// The default parameters for the insight on that view.
9539    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9540    pub insights: MaybeUndefined<serde_json::Value>,
9541    /// The team these view preferences are associated with.
9542    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9543    pub team_id: MaybeUndefined<String>,
9544    /// The project these view preferences are associated with.
9545    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9546    pub project_id: MaybeUndefined<String>,
9547    /// `Internal` The initiative these view preferences are associated with.
9548    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9549    pub initiative_id: MaybeUndefined<String>,
9550    /// The label these view preferences are associated with.
9551    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9552    pub label_id: MaybeUndefined<String>,
9553    /// The project label these view preferences are associated with.
9554    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9555    pub project_label_id: MaybeUndefined<String>,
9556    /// The release pipeline these view preferences are associated with.
9557    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9558    pub release_pipeline_id: MaybeUndefined<String>,
9559    /// The custom view these view preferences are associated with.
9560    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9561    pub custom_view_id: MaybeUndefined<String>,
9562    /// The user profile these view preferences are associated with.
9563    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9564    pub user_id: MaybeUndefined<String>,
9565}
9566/// Input for updating view preferences.
9567#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9568#[serde(rename_all = "camelCase")]
9569pub struct ViewPreferencesUpdateInput {
9570    /// View preferences.
9571    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9572    pub preferences: MaybeUndefined<serde_json::Value>,
9573    /// The default parameters for the insight on that view.
9574    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9575    pub insights: MaybeUndefined<serde_json::Value>,
9576}
9577/// Input for creating a new webhook.
9578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9579#[serde(rename_all = "camelCase")]
9580pub struct WebhookCreateInput {
9581    /// Label for the webhook.
9582    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9583    pub label: MaybeUndefined<String>,
9584    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9585    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9586    pub id: MaybeUndefined<String>,
9587    /// Whether this webhook is enabled.
9588    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9589    pub enabled: MaybeUndefined<bool>,
9590    /// A secret token used to sign the webhook payload.
9591    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9592    pub secret: MaybeUndefined<String>,
9593    /// The URL that will be called on data changes.
9594    pub url: String,
9595    /// List of resources the webhook should subscribe to.
9596    pub resource_types: Vec<String>,
9597    /// The identifier or key of the team associated with the Webhook.
9598    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9599    pub team_id: MaybeUndefined<String>,
9600    /// Whether this webhook is enabled for all public teams.
9601    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9602    pub all_public_teams: MaybeUndefined<bool>,
9603}
9604/// Input for updating an existing webhook.
9605#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9606#[serde(rename_all = "camelCase")]
9607pub struct WebhookUpdateInput {
9608    /// Label for the webhook.
9609    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9610    pub label: MaybeUndefined<String>,
9611    /// A secret token used to sign the webhook payload.
9612    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9613    pub secret: MaybeUndefined<String>,
9614    /// Whether this webhook is enabled.
9615    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9616    pub enabled: MaybeUndefined<bool>,
9617    /// The URL that will be called on data changes.
9618    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9619    pub url: MaybeUndefined<String>,
9620    /// List of resources the webhook should subscribe to.
9621    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9622    pub resource_types: MaybeUndefined<Vec<String>>,
9623}
9624/// Input for creating a new workflow state (issue status) in a team. The name, type, color, and team are required.
9625#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9626#[serde(rename_all = "camelCase")]
9627pub struct WorkflowStateCreateInput {
9628    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9629    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9630    pub id: MaybeUndefined<String>,
9631    /// The workflow state type, which categorizes the state. Valid values: backlog, unstarted, started, completed, canceled. The type determines how the state is treated in workflow progression and reporting.
9632    pub r#type: String,
9633    /// The name of the state.
9634    pub name: String,
9635    /// The color of the state.
9636    pub color: String,
9637    /// The description of the state.
9638    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9639    pub description: MaybeUndefined<String>,
9640    /// The position of the state.
9641    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9642    pub position: MaybeUndefined<f64>,
9643    /// The team associated with the state.
9644    pub team_id: String,
9645}
9646/// Workflow state filtering options.
9647#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9648#[serde(rename_all = "camelCase")]
9649pub struct WorkflowStateFilter {
9650    /// Comparator for the identifier.
9651    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9652    pub id: MaybeUndefined<IDComparator>,
9653    /// Comparator for the created at date.
9654    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9655    pub created_at: MaybeUndefined<DateComparator>,
9656    /// Comparator for the updated at date.
9657    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9658    pub updated_at: MaybeUndefined<DateComparator>,
9659    /// Comparator for the workflow state name.
9660    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9661    pub name: MaybeUndefined<StringComparator>,
9662    /// Comparator for the workflow state description.
9663    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9664    pub description: MaybeUndefined<StringComparator>,
9665    /// Comparator for the workflow state position.
9666    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9667    pub position: MaybeUndefined<NumberComparator>,
9668    /// Comparator for the workflow state type. Possible values are "triage", "backlog", "unstarted", "started", "completed", "canceled", "duplicate".
9669    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9670    pub r#type: MaybeUndefined<StringComparator>,
9671    /// Filters that the workflow states team must satisfy.
9672    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9673    pub team: MaybeUndefined<Box<TeamFilter>>,
9674    /// Filters that the workflow states issues must satisfy.
9675    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9676    pub issues: MaybeUndefined<Box<IssueCollectionFilter>>,
9677    /// Compound filters, all of which need to be matched by the workflow state.
9678    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9679    pub and: MaybeUndefined<Vec<WorkflowStateFilter>>,
9680    /// Compound filters, one of which need to be matched by the workflow state.
9681    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9682    pub or: MaybeUndefined<Vec<WorkflowStateFilter>>,
9683}
9684/// Issue workflow state sorting options.
9685#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9686#[serde(rename_all = "camelCase")]
9687pub struct WorkflowStateSort {
9688    /// Whether nulls should be sorted first or last
9689    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9690    pub nulls: MaybeUndefined<PaginationNulls>,
9691    /// The order for the individual sort
9692    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9693    pub order: MaybeUndefined<PaginationSortOrder>,
9694    /// Whether to sort closed issues by recency
9695    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9696    pub closed_issues_ordered_by_recency: MaybeUndefined<bool>,
9697}
9698/// Input for updating an existing workflow state. All fields are optional; only provided fields will be updated. The state type cannot be changed after creation.
9699#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9700#[serde(rename_all = "camelCase")]
9701pub struct WorkflowStateUpdateInput {
9702    /// The name of the state.
9703    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9704    pub name: MaybeUndefined<String>,
9705    /// The color of the state.
9706    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9707    pub color: MaybeUndefined<String>,
9708    /// The description of the state.
9709    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9710    pub description: MaybeUndefined<String>,
9711    /// The position of the state.
9712    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9713    pub position: MaybeUndefined<f64>,
9714}
9715#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9716#[serde(rename_all = "camelCase")]
9717pub struct ZendeskSettingsInput {
9718    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
9719    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9720    pub send_note_on_status_change: MaybeUndefined<bool>,
9721    /// Whether an internal message should be added when someone comments on an issue.
9722    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9723    pub send_note_on_comment: MaybeUndefined<bool>,
9724    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
9725    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9726    pub automate_ticket_reopening_on_completion: MaybeUndefined<bool>,
9727    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
9728    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9729    pub automate_ticket_reopening_on_cancellation: MaybeUndefined<bool>,
9730    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
9731    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9732    pub automate_ticket_reopening_on_comment: MaybeUndefined<bool>,
9733    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
9734    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9735    pub disable_customer_requests_auto_creation: MaybeUndefined<bool>,
9736    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
9737    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9738    pub automate_ticket_reopening_on_project_completion: MaybeUndefined<bool>,
9739    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
9740    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9741    pub automate_ticket_reopening_on_project_cancellation: MaybeUndefined<bool>,
9742    /// Whether Linear Agent should be enabled for this integration.
9743    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9744    pub enable_ai_intake: MaybeUndefined<bool>,
9745    /// The subdomain of the Zendesk organization being connected.
9746    pub subdomain: String,
9747    /// The URL of the connected Zendesk organization.
9748    pub url: String,
9749    /// The ID of the Linear bot user.
9750    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9751    pub bot_user_id: MaybeUndefined<String>,
9752    /// `INTERNAL` Temporary flag indicating if the integration has the necessary scopes for Customers
9753    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9754    pub can_read_customers: MaybeUndefined<bool>,
9755    /// `INTERNAL` Flag indicating if the integration supports OAuth refresh tokens
9756    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9757    pub supports_o_auth_refresh: MaybeUndefined<bool>,
9758    /// The host mappings from Zendesk brands.
9759    #[serde(default, skip_serializing_if = "MaybeUndefined::is_undefined")]
9760    pub host_mappings: MaybeUndefined<Vec<String>>,
9761}