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 serde::{Deserialize, Serialize};
6/// Activity collection filtering options.
7#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct ActivityCollectionFilter {
10    /// Comparator for the identifier.
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub id: Option<Box<IDComparator>>,
13    /// Comparator for the created at date.
14    #[serde(default, skip_serializing_if = "Option::is_none")]
15    pub created_at: Option<Box<DateComparator>>,
16    /// Comparator for the updated at date.
17    #[serde(default, skip_serializing_if = "Option::is_none")]
18    pub updated_at: Option<Box<DateComparator>>,
19    /// Filters that the activity's user must satisfy.
20    #[serde(default, skip_serializing_if = "Option::is_none")]
21    pub user: Option<Box<UserFilter>>,
22    /// Compound filters, all of which need to be matched by the activity.
23    #[serde(default, skip_serializing_if = "Option::is_none")]
24    pub and: Option<Vec<Box<ActivityCollectionFilter>>>,
25    /// Compound filters, one of which need to be matched by the activity.
26    #[serde(default, skip_serializing_if = "Option::is_none")]
27    pub or: Option<Vec<Box<ActivityCollectionFilter>>>,
28    /// Filters that needs to be matched by some activities.
29    #[serde(default, skip_serializing_if = "Option::is_none")]
30    pub some: Option<Box<ActivityFilter>>,
31    /// Filters that needs to be matched by all activities.
32    #[serde(default, skip_serializing_if = "Option::is_none")]
33    pub every: Option<Box<ActivityFilter>>,
34    /// Comparator for the collection length.
35    #[serde(default, skip_serializing_if = "Option::is_none")]
36    pub length: Option<Box<NumberComparator>>,
37}
38/// Activity filtering options.
39#[derive(Debug, Clone, Default, Serialize, Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub struct ActivityFilter {
42    /// Comparator for the identifier.
43    #[serde(default, skip_serializing_if = "Option::is_none")]
44    pub id: Option<Box<IDComparator>>,
45    /// Comparator for the created at date.
46    #[serde(default, skip_serializing_if = "Option::is_none")]
47    pub created_at: Option<Box<DateComparator>>,
48    /// Comparator for the updated at date.
49    #[serde(default, skip_serializing_if = "Option::is_none")]
50    pub updated_at: Option<Box<DateComparator>>,
51    /// Filters that the activity's user must satisfy.
52    #[serde(default, skip_serializing_if = "Option::is_none")]
53    pub user: Option<Box<UserFilter>>,
54    /// Compound filters, all of which need to be matched by the activity.
55    #[serde(default, skip_serializing_if = "Option::is_none")]
56    pub and: Option<Vec<Box<ActivityFilter>>>,
57    /// Compound filters, one of which need to be matched by the activity.
58    #[serde(default, skip_serializing_if = "Option::is_none")]
59    pub or: Option<Vec<Box<ActivityFilter>>>,
60}
61#[derive(Debug, Clone, Default, Serialize, Deserialize)]
62#[serde(rename_all = "camelCase")]
63pub struct AgentActivityCreateInput {
64    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub id: Option<String>,
67    /// The agent session this activity belongs to.
68    #[serde(default, skip_serializing_if = "Option::is_none")]
69    pub agent_session_id: Option<String>,
70    /// An optional modifier that provides additional instructions on how the activity should be interpreted.
71    #[serde(default, skip_serializing_if = "Option::is_none")]
72    pub signal: Option<AgentActivitySignal>,
73    /// Metadata about this agent activity's signal.
74    #[serde(default, skip_serializing_if = "Option::is_none")]
75    pub signal_metadata: Option<serde_json::Value>,
76    /// `Internal` Metadata about user-provided contextual information for this agent activity.
77    #[serde(default, skip_serializing_if = "Option::is_none")]
78    pub contextual_metadata: Option<serde_json::Value>,
79    /// The content payload of the agent activity. This object is not strictly typed.
80    /// See <https://linear.app/developers/agent-interaction#activity-content-payload> for typing details.
81    #[serde(default, skip_serializing_if = "Option::is_none")]
82    pub content: Option<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 = "Option::is_none")]
85    pub ephemeral: Option<bool>,
86}
87/// `Internal` Input for creating prompt-type agent activities (created by users).
88#[derive(Debug, Clone, Default, 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 = "Option::is_none")]
93    pub id: Option<String>,
94    /// The agent session this activity belongs to.
95    #[serde(default, skip_serializing_if = "Option::is_none")]
96    pub agent_session_id: Option<String>,
97    /// An optional modifier that provides additional instructions on how the activity should be interpreted.
98    #[serde(default, skip_serializing_if = "Option::is_none")]
99    pub signal: Option<AgentActivitySignal>,
100    /// Metadata about this agent activity's signal.
101    #[serde(default, skip_serializing_if = "Option::is_none")]
102    pub signal_metadata: Option<serde_json::Value>,
103    /// `Internal` Metadata about user-provided contextual information for this agent activity.
104    #[serde(default, skip_serializing_if = "Option::is_none")]
105    pub contextual_metadata: Option<serde_json::Value>,
106    /// The content payload of the prompt agent activity.
107    #[serde(default, skip_serializing_if = "Option::is_none")]
108    pub content: Option<Box<AgentActivityPromptCreateInputContent>>,
109    /// The comment that contains the content of this activity.
110    #[serde(default, skip_serializing_if = "Option::is_none")]
111    pub source_comment_id: Option<String>,
112}
113/// Agent activity filtering options.
114#[derive(Debug, Clone, Default, Serialize, Deserialize)]
115#[serde(rename_all = "camelCase")]
116pub struct AgentActivityFilter {
117    /// Comparator for the identifier.
118    #[serde(default, skip_serializing_if = "Option::is_none")]
119    pub id: Option<Box<IDComparator>>,
120    /// Comparator for the created at date.
121    #[serde(default, skip_serializing_if = "Option::is_none")]
122    pub created_at: Option<Box<DateComparator>>,
123    /// Comparator for the updated at date.
124    #[serde(default, skip_serializing_if = "Option::is_none")]
125    pub updated_at: Option<Box<DateComparator>>,
126    /// Comparator for the agent session ID.
127    #[serde(default, skip_serializing_if = "Option::is_none")]
128    pub agent_session_id: Option<Box<StringComparator>>,
129    /// Comparator for the agent activity's content type.
130    #[serde(default, skip_serializing_if = "Option::is_none")]
131    pub r#type: Option<Box<StringComparator>>,
132    /// Filters that the source comment must satisfy.
133    #[serde(default, skip_serializing_if = "Option::is_none")]
134    pub source_comment: Option<Box<NullableCommentFilter>>,
135    /// Compound filters, all of which need to be matched by the agent activity.
136    #[serde(default, skip_serializing_if = "Option::is_none")]
137    pub and: Option<Vec<Box<AgentActivityFilter>>>,
138    /// Compound filters, one of which need to be matched by the agent activity.
139    #[serde(default, skip_serializing_if = "Option::is_none")]
140    pub or: Option<Vec<Box<AgentActivityFilter>>>,
141}
142/// `Internal` Input for creating prompt-type agent activities (created by users).
143#[derive(Debug, Clone, Default, Serialize, Deserialize)]
144#[serde(rename_all = "camelCase")]
145pub struct AgentActivityPromptCreateInputContent {
146    /// The type of activity.
147    #[serde(default, skip_serializing_if = "Option::is_none")]
148    pub r#type: Option<AgentActivityType>,
149    /// A message requesting additional information or action from user in markdown format.
150    #[serde(default, skip_serializing_if = "Option::is_none")]
151    pub body: Option<String>,
152    /// `Internal` The prompt content as a ProseMirror document.
153    #[serde(default, skip_serializing_if = "Option::is_none")]
154    pub body_data: Option<serde_json::Value>,
155}
156#[derive(Debug, Clone, Default, Serialize, Deserialize)]
157#[serde(rename_all = "camelCase")]
158pub struct AgentSessionCreateInput {
159    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
160    #[serde(default, skip_serializing_if = "Option::is_none")]
161    pub id: Option<String>,
162    /// The issue that this session will be associated with. Can be a UUID or issue identifier (e.g., 'LIN-123').
163    #[serde(default, skip_serializing_if = "Option::is_none")]
164    pub issue_id: Option<String>,
165    /// The app user (agent) to create a session for.
166    #[serde(default, skip_serializing_if = "Option::is_none")]
167    pub app_user_id: Option<String>,
168    /// `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).
169    #[serde(default, skip_serializing_if = "Option::is_none")]
170    pub context: Option<serde_json::Value>,
171}
172#[derive(Debug, Clone, Default, Serialize, Deserialize)]
173#[serde(rename_all = "camelCase")]
174pub struct AgentSessionCreateOnComment {
175    /// The root comment that this session will be associated with.
176    #[serde(default, skip_serializing_if = "Option::is_none")]
177    pub comment_id: Option<String>,
178    /// The URL of an external agent-hosted page associated with this session.
179    #[serde(default, skip_serializing_if = "Option::is_none")]
180    pub external_link: Option<String>,
181    /// URLs of external resources associated with this session.
182    #[serde(default, skip_serializing_if = "Option::is_none")]
183    pub external_urls: Option<Vec<Box<AgentSessionExternalUrlInput>>>,
184}
185#[derive(Debug, Clone, Default, Serialize, Deserialize)]
186#[serde(rename_all = "camelCase")]
187pub struct AgentSessionCreateOnIssue {
188    /// The issue that this session will be associated with. Can be a UUID or issue identifier (e.g., 'LIN-123').
189    #[serde(default, skip_serializing_if = "Option::is_none")]
190    pub issue_id: Option<String>,
191    /// The URL of an external agent-hosted page associated with this session.
192    #[serde(default, skip_serializing_if = "Option::is_none")]
193    pub external_link: Option<String>,
194    /// URLs of external resources associated with this session.
195    #[serde(default, skip_serializing_if = "Option::is_none")]
196    pub external_urls: Option<Vec<Box<AgentSessionExternalUrlInput>>>,
197}
198/// Input for an external URL associated with an agent session.
199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
200#[serde(rename_all = "camelCase")]
201pub struct AgentSessionExternalUrlInput {
202    /// The URL of the external resource.
203    #[serde(default, skip_serializing_if = "Option::is_none")]
204    pub url: Option<String>,
205    /// Label for the URL.
206    #[serde(default, skip_serializing_if = "Option::is_none")]
207    pub label: Option<String>,
208}
209#[derive(Debug, Clone, Default, Serialize, Deserialize)]
210#[serde(rename_all = "camelCase")]
211pub struct AgentSessionUpdateExternalUrlInput {
212    /// The URL of an external agent-hosted page associated with this session.
213    #[serde(default, skip_serializing_if = "Option::is_none")]
214    pub external_link: Option<String>,
215    /// URLs of external resources associated with this session. Replaces existing URLs.
216    #[serde(default, skip_serializing_if = "Option::is_none")]
217    pub external_urls: Option<Vec<Box<AgentSessionExternalUrlInput>>>,
218    /// URLs of external resources to be added to this session.
219    #[serde(default, skip_serializing_if = "Option::is_none")]
220    pub added_external_urls: Option<Vec<Box<AgentSessionExternalUrlInput>>>,
221    /// URLs to be removed from this session.
222    #[serde(default, skip_serializing_if = "Option::is_none")]
223    pub removed_external_urls: Option<Vec<String>>,
224}
225#[derive(Debug, Clone, Default, Serialize, Deserialize)]
226#[serde(rename_all = "camelCase")]
227pub struct AgentSessionUpdateInput {
228    /// The URL of an external agent-hosted page associated with this session. Only updatable by the OAuth application that owns the session.
229    #[serde(default, skip_serializing_if = "Option::is_none")]
230    pub external_link: Option<String>,
231    /// 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.
232    #[serde(default, skip_serializing_if = "Option::is_none")]
233    pub external_urls: Option<Vec<Box<AgentSessionExternalUrlInput>>>,
234    /// URLs of external resources to be added to this session. Only updatable by the OAuth application that owns the session.
235    #[serde(default, skip_serializing_if = "Option::is_none")]
236    pub added_external_urls: Option<Vec<Box<AgentSessionExternalUrlInput>>>,
237    /// URLs to be removed from this session. Only updatable by the OAuth application that owns the session.
238    #[serde(default, skip_serializing_if = "Option::is_none")]
239    pub removed_external_urls: Option<Vec<String>>,
240    /// A dynamically updated list of the agent's execution strategy. Only updatable by the OAuth application that owns the session.
241    #[serde(default, skip_serializing_if = "Option::is_none")]
242    pub plan: Option<serde_json::Value>,
243    /// `Internal` The time the agent session was dismissed. Only updatable by internal clients.
244    #[serde(default, skip_serializing_if = "Option::is_none")]
245    pub dismissed_at: Option<chrono::DateTime<chrono::Utc>>,
246    /// `Internal` User-specific state for the agent session. Only updatable by internal clients.
247    #[serde(default, skip_serializing_if = "Option::is_none")]
248    pub user_state: Option<Vec<Box<AgentSessionUserStateInput>>>,
249}
250#[derive(Debug, Clone, Default, Serialize, Deserialize)]
251#[serde(rename_all = "camelCase")]
252pub struct AgentSessionUserStateInput {
253    /// The ID of the user this state belongs to.
254    #[serde(default, skip_serializing_if = "Option::is_none")]
255    pub user_id: Option<String>,
256    /// The time at which the user most recently viewed the session.
257    #[serde(default, skip_serializing_if = "Option::is_none")]
258    pub last_read_at: Option<chrono::DateTime<chrono::Utc>>,
259}
260#[derive(Debug, Clone, Default, Serialize, Deserialize)]
261#[serde(rename_all = "camelCase")]
262pub struct AirbyteConfigurationInput {
263    /// Linear export API key.
264    #[serde(default, skip_serializing_if = "Option::is_none")]
265    pub api_key: Option<String>,
266}
267/// Customer approximate need count sorting options.
268#[derive(Debug, Clone, Default, Serialize, Deserialize)]
269#[serde(rename_all = "camelCase")]
270pub struct ApproximateNeedCountSort {
271    /// Whether nulls should be sorted first or last
272    #[serde(default, skip_serializing_if = "Option::is_none")]
273    pub nulls: Option<PaginationNulls>,
274    /// The order for the individual sort
275    #[serde(default, skip_serializing_if = "Option::is_none")]
276    pub order: Option<PaginationSortOrder>,
277}
278#[derive(Debug, Clone, Default, Serialize, Deserialize)]
279#[serde(rename_all = "camelCase")]
280pub struct AsksWebPageCreateInput {
281    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
282    #[serde(default, skip_serializing_if = "Option::is_none")]
283    pub id: Option<String>,
284    /// The identifier of the Asks web settings this page belongs to.
285    #[serde(default, skip_serializing_if = "Option::is_none")]
286    pub asks_web_settings_id: Option<String>,
287    /// The title of the page.
288    #[serde(default, skip_serializing_if = "Option::is_none")]
289    pub title: Option<String>,
290    /// The description of the page.
291    #[serde(default, skip_serializing_if = "Option::is_none")]
292    pub description: Option<String>,
293    /// The auto-reply message for issue created. If not set, the default reply will be used.
294    #[serde(default, skip_serializing_if = "Option::is_none")]
295    pub issue_created_auto_reply: Option<String>,
296    /// Whether the auto-reply for issue created is enabled.
297    #[serde(default, skip_serializing_if = "Option::is_none")]
298    pub issue_created_auto_reply_enabled: Option<bool>,
299    /// The auto-reply message for issue completed. If not set, the default reply will be used.
300    #[serde(default, skip_serializing_if = "Option::is_none")]
301    pub issue_completed_auto_reply: Option<String>,
302    /// Whether the auto-reply for issue completed is enabled.
303    #[serde(default, skip_serializing_if = "Option::is_none")]
304    pub issue_completed_auto_reply_enabled: Option<bool>,
305    /// The auto-reply message for issue canceled. If not set, the default reply will be used.
306    #[serde(default, skip_serializing_if = "Option::is_none")]
307    pub issue_canceled_auto_reply: Option<String>,
308    /// Whether the auto-reply for issue canceled is enabled.
309    #[serde(default, skip_serializing_if = "Option::is_none")]
310    pub issue_canceled_auto_reply_enabled: Option<bool>,
311}
312#[derive(Debug, Clone, Default, Serialize, Deserialize)]
313#[serde(rename_all = "camelCase")]
314pub struct AsksWebPageUpdateInput {
315    /// The title of the page.
316    #[serde(default, skip_serializing_if = "Option::is_none")]
317    pub title: Option<String>,
318    /// The description of the page.
319    #[serde(default, skip_serializing_if = "Option::is_none")]
320    pub description: Option<String>,
321    /// The auto-reply message for issue created. If not set, the default reply will be used.
322    #[serde(default, skip_serializing_if = "Option::is_none")]
323    pub issue_created_auto_reply: Option<String>,
324    /// Whether the auto-reply for issue created is enabled.
325    #[serde(default, skip_serializing_if = "Option::is_none")]
326    pub issue_created_auto_reply_enabled: Option<bool>,
327    /// The auto-reply message for issue completed. If not set, the default reply will be used.
328    #[serde(default, skip_serializing_if = "Option::is_none")]
329    pub issue_completed_auto_reply: Option<String>,
330    /// Whether the auto-reply for issue completed is enabled.
331    #[serde(default, skip_serializing_if = "Option::is_none")]
332    pub issue_completed_auto_reply_enabled: Option<bool>,
333    /// The auto-reply message for issue canceled. If not set, the default reply will be used.
334    #[serde(default, skip_serializing_if = "Option::is_none")]
335    pub issue_canceled_auto_reply: Option<String>,
336    /// Whether the auto-reply for issue canceled is enabled.
337    #[serde(default, skip_serializing_if = "Option::is_none")]
338    pub issue_canceled_auto_reply_enabled: Option<bool>,
339}
340#[derive(Debug, Clone, Default, Serialize, Deserialize)]
341#[serde(rename_all = "camelCase")]
342pub struct AsksWebSettingsCreateInput {
343    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
344    #[serde(default, skip_serializing_if = "Option::is_none")]
345    pub id: Option<String>,
346    /// The custom domain for the Asks web form. If null, the default Linear-hosted domain will be used.
347    #[serde(default, skip_serializing_if = "Option::is_none")]
348    pub domain: Option<String>,
349}
350#[derive(Debug, Clone, Default, Serialize, Deserialize)]
351#[serde(rename_all = "camelCase")]
352pub struct AsksWebSettingsEmailIntakeAddressInput {
353    /// The sender name for outgoing emails.
354    #[serde(default, skip_serializing_if = "Option::is_none")]
355    pub sender_name: Option<String>,
356    /// The email address for forwarding.
357    #[serde(default, skip_serializing_if = "Option::is_none")]
358    pub forwarding_email_address: Option<String>,
359}
360#[derive(Debug, Clone, Default, Serialize, Deserialize)]
361#[serde(rename_all = "camelCase")]
362pub struct AsksWebSettingsUpdateInput {
363    /// The custom domain for the Asks web form. If null, the default Linear-hosted domain will be used.
364    #[serde(default, skip_serializing_if = "Option::is_none")]
365    pub domain: Option<String>,
366}
367/// Issue assignee sorting options.
368#[derive(Debug, Clone, Default, Serialize, Deserialize)]
369#[serde(rename_all = "camelCase")]
370pub struct AssigneeSort {
371    /// Whether nulls should be sorted first or last
372    #[serde(default, skip_serializing_if = "Option::is_none")]
373    pub nulls: Option<PaginationNulls>,
374    /// The order for the individual sort
375    #[serde(default, skip_serializing_if = "Option::is_none")]
376    pub order: Option<PaginationSortOrder>,
377}
378/// Attachment collection filtering options.
379#[derive(Debug, Clone, Default, Serialize, Deserialize)]
380#[serde(rename_all = "camelCase")]
381pub struct AttachmentCollectionFilter {
382    /// Comparator for the identifier.
383    #[serde(default, skip_serializing_if = "Option::is_none")]
384    pub id: Option<Box<IDComparator>>,
385    /// Comparator for the created at date.
386    #[serde(default, skip_serializing_if = "Option::is_none")]
387    pub created_at: Option<Box<DateComparator>>,
388    /// Comparator for the updated at date.
389    #[serde(default, skip_serializing_if = "Option::is_none")]
390    pub updated_at: Option<Box<DateComparator>>,
391    /// Comparator for the title.
392    #[serde(default, skip_serializing_if = "Option::is_none")]
393    pub title: Option<Box<StringComparator>>,
394    /// Comparator for the subtitle.
395    #[serde(default, skip_serializing_if = "Option::is_none")]
396    pub subtitle: Option<Box<NullableStringComparator>>,
397    /// Comparator for the url.
398    #[serde(default, skip_serializing_if = "Option::is_none")]
399    pub url: Option<Box<StringComparator>>,
400    /// Filters that the attachments creator must satisfy.
401    #[serde(default, skip_serializing_if = "Option::is_none")]
402    pub creator: Option<Box<NullableUserFilter>>,
403    /// Comparator for the source type.
404    #[serde(default, skip_serializing_if = "Option::is_none")]
405    pub source_type: Option<Box<SourceTypeComparator>>,
406    /// Compound filters, all of which need to be matched by the attachment.
407    #[serde(default, skip_serializing_if = "Option::is_none")]
408    pub and: Option<Vec<Box<AttachmentCollectionFilter>>>,
409    /// Compound filters, one of which need to be matched by the attachment.
410    #[serde(default, skip_serializing_if = "Option::is_none")]
411    pub or: Option<Vec<Box<AttachmentCollectionFilter>>>,
412    /// Filters that needs to be matched by some attachments.
413    #[serde(default, skip_serializing_if = "Option::is_none")]
414    pub some: Option<Box<AttachmentFilter>>,
415    /// Filters that needs to be matched by all attachments.
416    #[serde(default, skip_serializing_if = "Option::is_none")]
417    pub every: Option<Box<AttachmentFilter>>,
418    /// Comparator for the collection length.
419    #[serde(default, skip_serializing_if = "Option::is_none")]
420    pub length: Option<Box<NumberComparator>>,
421}
422#[derive(Debug, Clone, Default, Serialize, Deserialize)]
423#[serde(rename_all = "camelCase")]
424pub struct AttachmentCreateInput {
425    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
426    #[serde(default, skip_serializing_if = "Option::is_none")]
427    pub id: Option<String>,
428    /// The attachment title.
429    #[serde(default, skip_serializing_if = "Option::is_none")]
430    pub title: Option<String>,
431    /// The attachment subtitle.
432    #[serde(default, skip_serializing_if = "Option::is_none")]
433    pub subtitle: Option<String>,
434    /// 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.
435    #[serde(default, skip_serializing_if = "Option::is_none")]
436    pub url: Option<String>,
437    /// The issue to associate the attachment with. Can be a UUID or issue identifier (e.g., 'LIN-123').
438    #[serde(default, skip_serializing_if = "Option::is_none")]
439    pub issue_id: Option<String>,
440    /// 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.
441    #[serde(default, skip_serializing_if = "Option::is_none")]
442    pub icon_url: Option<String>,
443    /// Attachment metadata object with string and number values.
444    #[serde(default, skip_serializing_if = "Option::is_none")]
445    pub metadata: Option<serde_json::Value>,
446    /// Indicates if attachments for the same source application should be grouped in the Linear UI.
447    #[serde(default, skip_serializing_if = "Option::is_none")]
448    pub group_by_source: Option<bool>,
449    /// Create a linked comment with markdown body.
450    #[serde(default, skip_serializing_if = "Option::is_none")]
451    pub comment_body: Option<String>,
452    /// `Internal` Create a linked comment with Prosemirror body. Please use `commentBody` instead.
453    #[serde(default, skip_serializing_if = "Option::is_none")]
454    pub comment_body_data: Option<serde_json::Value>,
455    /// Create attachment as a user with the provided name. This option is only available to OAuth applications creating attachments in `actor=application` mode.
456    #[serde(default, skip_serializing_if = "Option::is_none")]
457    pub create_as_user: Option<String>,
458}
459/// Attachment filtering options.
460#[derive(Debug, Clone, Default, Serialize, Deserialize)]
461#[serde(rename_all = "camelCase")]
462pub struct AttachmentFilter {
463    /// Comparator for the identifier.
464    #[serde(default, skip_serializing_if = "Option::is_none")]
465    pub id: Option<Box<IDComparator>>,
466    /// Comparator for the created at date.
467    #[serde(default, skip_serializing_if = "Option::is_none")]
468    pub created_at: Option<Box<DateComparator>>,
469    /// Comparator for the updated at date.
470    #[serde(default, skip_serializing_if = "Option::is_none")]
471    pub updated_at: Option<Box<DateComparator>>,
472    /// Comparator for the title.
473    #[serde(default, skip_serializing_if = "Option::is_none")]
474    pub title: Option<Box<StringComparator>>,
475    /// Comparator for the subtitle.
476    #[serde(default, skip_serializing_if = "Option::is_none")]
477    pub subtitle: Option<Box<NullableStringComparator>>,
478    /// Comparator for the url.
479    #[serde(default, skip_serializing_if = "Option::is_none")]
480    pub url: Option<Box<StringComparator>>,
481    /// Filters that the attachments creator must satisfy.
482    #[serde(default, skip_serializing_if = "Option::is_none")]
483    pub creator: Option<Box<NullableUserFilter>>,
484    /// Comparator for the source type.
485    #[serde(default, skip_serializing_if = "Option::is_none")]
486    pub source_type: Option<Box<SourceTypeComparator>>,
487    /// Compound filters, all of which need to be matched by the attachment.
488    #[serde(default, skip_serializing_if = "Option::is_none")]
489    pub and: Option<Vec<Box<AttachmentFilter>>>,
490    /// Compound filters, one of which need to be matched by the attachment.
491    #[serde(default, skip_serializing_if = "Option::is_none")]
492    pub or: Option<Vec<Box<AttachmentFilter>>>,
493}
494#[derive(Debug, Clone, Default, Serialize, Deserialize)]
495#[serde(rename_all = "camelCase")]
496pub struct AttachmentUpdateInput {
497    /// The attachment title.
498    #[serde(default, skip_serializing_if = "Option::is_none")]
499    pub title: Option<String>,
500    /// The attachment subtitle.
501    #[serde(default, skip_serializing_if = "Option::is_none")]
502    pub subtitle: Option<String>,
503    /// Attachment metadata object with string and number values.
504    #[serde(default, skip_serializing_if = "Option::is_none")]
505    pub metadata: Option<serde_json::Value>,
506    /// 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.
507    #[serde(default, skip_serializing_if = "Option::is_none")]
508    pub icon_url: Option<String>,
509}
510/// Audit entry filtering options.
511#[derive(Debug, Clone, Default, Serialize, Deserialize)]
512#[serde(rename_all = "camelCase")]
513pub struct AuditEntryFilter {
514    /// Comparator for the identifier.
515    #[serde(default, skip_serializing_if = "Option::is_none")]
516    pub id: Option<Box<IDComparator>>,
517    /// Comparator for the created at date.
518    #[serde(default, skip_serializing_if = "Option::is_none")]
519    pub created_at: Option<Box<DateComparator>>,
520    /// Comparator for the updated at date.
521    #[serde(default, skip_serializing_if = "Option::is_none")]
522    pub updated_at: Option<Box<DateComparator>>,
523    /// Comparator for the type.
524    #[serde(default, skip_serializing_if = "Option::is_none")]
525    pub r#type: Option<Box<StringComparator>>,
526    /// Comparator for the IP address.
527    #[serde(default, skip_serializing_if = "Option::is_none")]
528    pub ip: Option<Box<StringComparator>>,
529    /// Comparator for the country code.
530    #[serde(default, skip_serializing_if = "Option::is_none")]
531    pub country_code: Option<Box<StringComparator>>,
532    /// Filters that the audit entry actor must satisfy.
533    #[serde(default, skip_serializing_if = "Option::is_none")]
534    pub actor: Option<Box<NullableUserFilter>>,
535    /// Compound filters, all of which need to be matched by the issue.
536    #[serde(default, skip_serializing_if = "Option::is_none")]
537    pub and: Option<Vec<Box<AuditEntryFilter>>>,
538    /// Compound filters, one of which need to be matched by the issue.
539    #[serde(default, skip_serializing_if = "Option::is_none")]
540    pub or: Option<Vec<Box<AuditEntryFilter>>>,
541}
542/// Comparator for booleans.
543#[derive(Debug, Clone, Default, Serialize, Deserialize)]
544#[serde(rename_all = "camelCase")]
545pub struct BooleanComparator {
546    /// Equals constraint.
547    #[serde(default, skip_serializing_if = "Option::is_none")]
548    pub eq: Option<bool>,
549    /// Not equals constraint.
550    #[serde(default, skip_serializing_if = "Option::is_none")]
551    pub neq: Option<bool>,
552}
553#[derive(Debug, Clone, Default, Serialize, Deserialize)]
554#[serde(rename_all = "camelCase")]
555pub struct CandidateRepository {
556    /// The full name of the repository in owner/name format (e.g., 'acme/backend').
557    #[serde(default, skip_serializing_if = "Option::is_none")]
558    pub repository_full_name: Option<String>,
559    /// Hostname of the Git service (e.g., 'github.com', 'github.company.com').
560    #[serde(default, skip_serializing_if = "Option::is_none")]
561    pub hostname: Option<String>,
562}
563/// Comment filtering options.
564#[derive(Debug, Clone, Default, Serialize, Deserialize)]
565#[serde(rename_all = "camelCase")]
566pub struct CommentCollectionFilter {
567    /// Comparator for the identifier.
568    #[serde(default, skip_serializing_if = "Option::is_none")]
569    pub id: Option<Box<IDComparator>>,
570    /// Comparator for the created at date.
571    #[serde(default, skip_serializing_if = "Option::is_none")]
572    pub created_at: Option<Box<DateComparator>>,
573    /// Comparator for the updated at date.
574    #[serde(default, skip_serializing_if = "Option::is_none")]
575    pub updated_at: Option<Box<DateComparator>>,
576    /// Comparator for the comment's body.
577    #[serde(default, skip_serializing_if = "Option::is_none")]
578    pub body: Option<Box<StringComparator>>,
579    /// Filters that the comment's creator must satisfy.
580    #[serde(default, skip_serializing_if = "Option::is_none")]
581    pub user: Option<Box<UserFilter>>,
582    /// Filters that the comment's issue must satisfy.
583    #[serde(default, skip_serializing_if = "Option::is_none")]
584    pub issue: Option<Box<NullableIssueFilter>>,
585    /// Filters that the comment's project update must satisfy.
586    #[serde(default, skip_serializing_if = "Option::is_none")]
587    pub project_update: Option<Box<NullableProjectUpdateFilter>>,
588    /// Filters that the comment parent must satisfy.
589    #[serde(default, skip_serializing_if = "Option::is_none")]
590    pub parent: Option<Box<NullableCommentFilter>>,
591    /// Filters that the comment's document content must satisfy.
592    #[serde(default, skip_serializing_if = "Option::is_none")]
593    pub document_content: Option<Box<NullableDocumentContentFilter>>,
594    /// Filters that the comment's reactions must satisfy.
595    #[serde(default, skip_serializing_if = "Option::is_none")]
596    pub reactions: Option<Box<ReactionCollectionFilter>>,
597    /// Filters that the comment's customer needs must satisfy.
598    #[serde(default, skip_serializing_if = "Option::is_none")]
599    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
600    /// Compound filters, all of which need to be matched by the comment.
601    #[serde(default, skip_serializing_if = "Option::is_none")]
602    pub and: Option<Vec<Box<CommentCollectionFilter>>>,
603    /// Compound filters, one of which need to be matched by the comment.
604    #[serde(default, skip_serializing_if = "Option::is_none")]
605    pub or: Option<Vec<Box<CommentCollectionFilter>>>,
606    /// Filters that needs to be matched by some comments.
607    #[serde(default, skip_serializing_if = "Option::is_none")]
608    pub some: Option<Box<CommentFilter>>,
609    /// Filters that needs to be matched by all comments.
610    #[serde(default, skip_serializing_if = "Option::is_none")]
611    pub every: Option<Box<CommentFilter>>,
612    /// Comparator for the collection length.
613    #[serde(default, skip_serializing_if = "Option::is_none")]
614    pub length: Option<Box<NumberComparator>>,
615}
616#[derive(Debug, Clone, Default, Serialize, Deserialize)]
617#[serde(rename_all = "camelCase")]
618pub struct CommentCreateInput {
619    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
620    #[serde(default, skip_serializing_if = "Option::is_none")]
621    pub id: Option<String>,
622    /// The comment content in markdown format.
623    #[serde(default, skip_serializing_if = "Option::is_none")]
624    pub body: Option<String>,
625    /// `Internal` The comment content as a Prosemirror document.
626    #[serde(default, skip_serializing_if = "Option::is_none")]
627    pub body_data: Option<serde_json::Value>,
628    /// The issue to associate the comment with. Can be a UUID or issue identifier (e.g., 'LIN-123').
629    #[serde(default, skip_serializing_if = "Option::is_none")]
630    pub issue_id: Option<String>,
631    /// The project update to associate the comment with.
632    #[serde(default, skip_serializing_if = "Option::is_none")]
633    pub project_update_id: Option<String>,
634    /// The initiative update to associate the comment with.
635    #[serde(default, skip_serializing_if = "Option::is_none")]
636    pub initiative_update_id: Option<String>,
637    /// The post to associate the comment with.
638    #[serde(default, skip_serializing_if = "Option::is_none")]
639    pub post_id: Option<String>,
640    /// The document content to associate the comment with.
641    #[serde(default, skip_serializing_if = "Option::is_none")]
642    pub document_content_id: Option<String>,
643    /// The parent comment under which to nest a current comment.
644    #[serde(default, skip_serializing_if = "Option::is_none")]
645    pub parent_id: Option<String>,
646    /// Create comment as a user with the provided name. This option is only available to OAuth applications creating comments in `actor=app` mode.
647    #[serde(default, skip_serializing_if = "Option::is_none")]
648    pub create_as_user: Option<String>,
649    /// 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.
650    #[serde(default, skip_serializing_if = "Option::is_none")]
651    pub display_icon_url: Option<String>,
652    /// The date when the comment was created (e.g. if importing from another system). Must be a date in the past. If none is provided, the backend will generate the time as now.
653    #[serde(default, skip_serializing_if = "Option::is_none")]
654    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
655    /// Flag to prevent auto subscription to the issue the comment is created on.
656    #[serde(default, skip_serializing_if = "Option::is_none")]
657    pub do_not_subscribe_to_issue: Option<bool>,
658    /// 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.
659    #[serde(default, skip_serializing_if = "Option::is_none")]
660    pub create_on_synced_slack_thread: Option<bool>,
661    /// The text that this comment references. Only defined for inline comments.
662    #[serde(default, skip_serializing_if = "Option::is_none")]
663    pub quoted_text: Option<String>,
664    /// `INTERNAL` The identifiers of the users subscribing to this comment thread.
665    #[serde(default, skip_serializing_if = "Option::is_none")]
666    pub subscriber_ids: Option<Vec<String>>,
667}
668/// Comment filtering options.
669#[derive(Debug, Clone, Default, Serialize, Deserialize)]
670#[serde(rename_all = "camelCase")]
671pub struct CommentFilter {
672    /// Comparator for the identifier.
673    #[serde(default, skip_serializing_if = "Option::is_none")]
674    pub id: Option<Box<IDComparator>>,
675    /// Comparator for the created at date.
676    #[serde(default, skip_serializing_if = "Option::is_none")]
677    pub created_at: Option<Box<DateComparator>>,
678    /// Comparator for the updated at date.
679    #[serde(default, skip_serializing_if = "Option::is_none")]
680    pub updated_at: Option<Box<DateComparator>>,
681    /// Comparator for the comment's body.
682    #[serde(default, skip_serializing_if = "Option::is_none")]
683    pub body: Option<Box<StringComparator>>,
684    /// Filters that the comment's creator must satisfy.
685    #[serde(default, skip_serializing_if = "Option::is_none")]
686    pub user: Option<Box<UserFilter>>,
687    /// Filters that the comment's issue must satisfy.
688    #[serde(default, skip_serializing_if = "Option::is_none")]
689    pub issue: Option<Box<NullableIssueFilter>>,
690    /// Filters that the comment's project update must satisfy.
691    #[serde(default, skip_serializing_if = "Option::is_none")]
692    pub project_update: Option<Box<NullableProjectUpdateFilter>>,
693    /// Filters that the comment parent must satisfy.
694    #[serde(default, skip_serializing_if = "Option::is_none")]
695    pub parent: Option<Box<NullableCommentFilter>>,
696    /// Filters that the comment's document content must satisfy.
697    #[serde(default, skip_serializing_if = "Option::is_none")]
698    pub document_content: Option<Box<NullableDocumentContentFilter>>,
699    /// Filters that the comment's reactions must satisfy.
700    #[serde(default, skip_serializing_if = "Option::is_none")]
701    pub reactions: Option<Box<ReactionCollectionFilter>>,
702    /// Filters that the comment's customer needs must satisfy.
703    #[serde(default, skip_serializing_if = "Option::is_none")]
704    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
705    /// Compound filters, all of which need to be matched by the comment.
706    #[serde(default, skip_serializing_if = "Option::is_none")]
707    pub and: Option<Vec<Box<CommentFilter>>>,
708    /// Compound filters, one of which need to be matched by the comment.
709    #[serde(default, skip_serializing_if = "Option::is_none")]
710    pub or: Option<Vec<Box<CommentFilter>>>,
711}
712#[derive(Debug, Clone, Default, Serialize, Deserialize)]
713#[serde(rename_all = "camelCase")]
714pub struct CommentUpdateInput {
715    /// The comment content.
716    #[serde(default, skip_serializing_if = "Option::is_none")]
717    pub body: Option<String>,
718    /// `Internal` The comment content as a Prosemirror document.
719    #[serde(default, skip_serializing_if = "Option::is_none")]
720    pub body_data: Option<serde_json::Value>,
721    /// `INTERNAL` The user who resolved this thread.
722    #[serde(default, skip_serializing_if = "Option::is_none")]
723    pub resolving_user_id: Option<String>,
724    /// `INTERNAL` The child comment that resolves this thread.
725    #[serde(default, skip_serializing_if = "Option::is_none")]
726    pub resolving_comment_id: Option<String>,
727    /// The text that this comment references. Only defined for inline comments.
728    #[serde(default, skip_serializing_if = "Option::is_none")]
729    pub quoted_text: Option<String>,
730    /// `INTERNAL` The identifiers of the users subscribing to this comment.
731    #[serde(default, skip_serializing_if = "Option::is_none")]
732    pub subscriber_ids: Option<Vec<String>>,
733    /// `INTERNAL` Flag to prevent auto subscription to the issue the comment is updated on.
734    #[serde(default, skip_serializing_if = "Option::is_none")]
735    pub do_not_subscribe_to_issue: Option<bool>,
736}
737/// Issue completion date sorting options.
738#[derive(Debug, Clone, Default, Serialize, Deserialize)]
739#[serde(rename_all = "camelCase")]
740pub struct CompletedAtSort {
741    /// Whether nulls should be sorted first or last
742    #[serde(default, skip_serializing_if = "Option::is_none")]
743    pub nulls: Option<PaginationNulls>,
744    /// The order for the individual sort
745    #[serde(default, skip_serializing_if = "Option::is_none")]
746    pub order: Option<PaginationSortOrder>,
747}
748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
749#[serde(rename_all = "camelCase")]
750pub struct ContactCreateInput {
751    /// The type of support contact.
752    #[serde(default, skip_serializing_if = "Option::is_none")]
753    pub r#type: Option<String>,
754    /// The message the user sent.
755    #[serde(default, skip_serializing_if = "Option::is_none")]
756    pub message: Option<String>,
757    /// User's operating system.
758    #[serde(default, skip_serializing_if = "Option::is_none")]
759    pub operating_system: Option<String>,
760    /// User's browser information.
761    #[serde(default, skip_serializing_if = "Option::is_none")]
762    pub browser: Option<String>,
763    /// User's device information.
764    #[serde(default, skip_serializing_if = "Option::is_none")]
765    pub device: Option<String>,
766    /// User's Linear client information.
767    #[serde(default, skip_serializing_if = "Option::is_none")]
768    pub client_version: Option<String>,
769    /// How disappointed the user would be if they could no longer use Linear.
770    #[serde(default, skip_serializing_if = "Option::is_none")]
771    pub disappointment_rating: Option<i64>,
772}
773/// `INTERNAL` Input for sending a message to the Linear Sales team.
774#[derive(Debug, Clone, Default, Serialize, Deserialize)]
775#[serde(rename_all = "camelCase")]
776pub struct ContactSalesCreateInput {
777    /// Name of the person requesting information.
778    #[serde(default, skip_serializing_if = "Option::is_none")]
779    pub name: Option<String>,
780    /// Work email of the person requesting information.
781    #[serde(default, skip_serializing_if = "Option::is_none")]
782    pub email: Option<String>,
783    /// Size of the company.
784    #[serde(default, skip_serializing_if = "Option::is_none")]
785    pub company_size: Option<String>,
786    /// The message the user sent.
787    #[serde(default, skip_serializing_if = "Option::is_none")]
788    pub message: Option<String>,
789    /// The URL this request was sent from.
790    #[serde(default, skip_serializing_if = "Option::is_none")]
791    pub url: Option<String>,
792    /// PostHog distinct ID for analytics correlation.
793    #[serde(default, skip_serializing_if = "Option::is_none")]
794    pub distinct_id: Option<String>,
795    /// Session ID for analytics correlation.
796    #[serde(default, skip_serializing_if = "Option::is_none")]
797    pub session_id: Option<String>,
798}
799/// `Internal` Comparator for content.
800#[derive(Debug, Clone, Default, Serialize, Deserialize)]
801#[serde(rename_all = "camelCase")]
802pub struct ContentComparator {
803    /// `Internal` Contains constraint.
804    #[serde(default, skip_serializing_if = "Option::is_none")]
805    pub contains: Option<String>,
806    /// `Internal` Not-contains constraint.
807    #[serde(default, skip_serializing_if = "Option::is_none")]
808    pub not_contains: Option<String>,
809}
810#[derive(Debug, Clone, Default, Serialize, Deserialize)]
811#[serde(rename_all = "camelCase")]
812pub struct CreateOrganizationInput {
813    /// The name of the organization.
814    #[serde(default, skip_serializing_if = "Option::is_none")]
815    pub name: Option<String>,
816    /// The URL key of the organization.
817    #[serde(default, skip_serializing_if = "Option::is_none")]
818    pub url_key: Option<String>,
819    /// Whether the organization should allow email domain access.
820    #[serde(default, skip_serializing_if = "Option::is_none")]
821    pub domain_access: Option<bool>,
822    /// The timezone of the organization, passed in by client.
823    #[serde(default, skip_serializing_if = "Option::is_none")]
824    pub timezone: Option<String>,
825    /// JSON serialized UTM parameters associated with the creation of the workspace.
826    #[serde(default, skip_serializing_if = "Option::is_none")]
827    pub utm: Option<String>,
828}
829/// Issue creation date sorting options.
830#[derive(Debug, Clone, Default, Serialize, Deserialize)]
831#[serde(rename_all = "camelCase")]
832pub struct CreatedAtSort {
833    /// Whether nulls should be sorted first or last
834    #[serde(default, skip_serializing_if = "Option::is_none")]
835    pub nulls: Option<PaginationNulls>,
836    /// The order for the individual sort
837    #[serde(default, skip_serializing_if = "Option::is_none")]
838    pub order: Option<PaginationSortOrder>,
839}
840#[derive(Debug, Clone, Default, Serialize, Deserialize)]
841#[serde(rename_all = "camelCase")]
842pub struct CustomViewCreateInput {
843    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
844    #[serde(default, skip_serializing_if = "Option::is_none")]
845    pub id: Option<String>,
846    /// The name of the custom view.
847    #[serde(default, skip_serializing_if = "Option::is_none")]
848    pub name: Option<String>,
849    /// The description of the custom view.
850    #[serde(default, skip_serializing_if = "Option::is_none")]
851    pub description: Option<String>,
852    /// The icon of the custom view.
853    #[serde(default, skip_serializing_if = "Option::is_none")]
854    pub icon: Option<String>,
855    /// The color of the icon of the custom view.
856    #[serde(default, skip_serializing_if = "Option::is_none")]
857    pub color: Option<String>,
858    /// The id of the team associated with the custom view.
859    #[serde(default, skip_serializing_if = "Option::is_none")]
860    pub team_id: Option<String>,
861    /// The id of the project associated with the custom view.
862    #[serde(default, skip_serializing_if = "Option::is_none")]
863    pub project_id: Option<String>,
864    /// The id of the initiative associated with the custom view.
865    #[serde(default, skip_serializing_if = "Option::is_none")]
866    pub initiative_id: Option<String>,
867    /// The owner of the custom view.
868    #[serde(default, skip_serializing_if = "Option::is_none")]
869    pub owner_id: Option<String>,
870    /// The filter applied to issues in the custom view.
871    #[serde(default, skip_serializing_if = "Option::is_none")]
872    pub filter_data: Option<Box<IssueFilter>>,
873    /// The project filter applied to issues in the custom view.
874    #[serde(default, skip_serializing_if = "Option::is_none")]
875    pub project_filter_data: Option<Box<ProjectFilter>>,
876    /// `ALPHA` The initiative filter applied to issues in the custom view.
877    #[serde(default, skip_serializing_if = "Option::is_none")]
878    pub initiative_filter_data: Option<Box<InitiativeFilter>>,
879    /// The feed item filter applied to issues in the custom view.
880    #[serde(default, skip_serializing_if = "Option::is_none")]
881    pub feed_item_filter_data: Option<Box<FeedItemFilter>>,
882    /// Whether the custom view is shared with everyone in the organization.
883    #[serde(default, skip_serializing_if = "Option::is_none")]
884    pub shared: Option<bool>,
885}
886/// Custom view creation date sorting options.
887#[derive(Debug, Clone, Default, Serialize, Deserialize)]
888#[serde(rename_all = "camelCase")]
889pub struct CustomViewCreatedAtSort {
890    /// Whether nulls should be sorted first or last
891    #[serde(default, skip_serializing_if = "Option::is_none")]
892    pub nulls: Option<PaginationNulls>,
893    /// The order for the individual sort
894    #[serde(default, skip_serializing_if = "Option::is_none")]
895    pub order: Option<PaginationSortOrder>,
896}
897/// Custom view filtering options.
898#[derive(Debug, Clone, Default, Serialize, Deserialize)]
899#[serde(rename_all = "camelCase")]
900pub struct CustomViewFilter {
901    /// Comparator for the identifier.
902    #[serde(default, skip_serializing_if = "Option::is_none")]
903    pub id: Option<Box<IDComparator>>,
904    /// Comparator for the created at date.
905    #[serde(default, skip_serializing_if = "Option::is_none")]
906    pub created_at: Option<Box<DateComparator>>,
907    /// Comparator for the updated at date.
908    #[serde(default, skip_serializing_if = "Option::is_none")]
909    pub updated_at: Option<Box<DateComparator>>,
910    /// Comparator for the custom view name.
911    #[serde(default, skip_serializing_if = "Option::is_none")]
912    pub name: Option<Box<StringComparator>>,
913    /// Comparator for the custom view model name.
914    #[serde(default, skip_serializing_if = "Option::is_none")]
915    pub model_name: Option<Box<StringComparator>>,
916    /// Filters that the custom view's team must satisfy.
917    #[serde(default, skip_serializing_if = "Option::is_none")]
918    pub team: Option<Box<NullableTeamFilter>>,
919    /// Filters that the custom view creator must satisfy.
920    #[serde(default, skip_serializing_if = "Option::is_none")]
921    pub creator: Option<Box<UserFilter>>,
922    /// Comparator for whether the custom view is shared.
923    #[serde(default, skip_serializing_if = "Option::is_none")]
924    pub shared: Option<Box<BooleanComparator>>,
925    /// `INTERNAL` Filter based on whether the custom view has a facet.
926    #[serde(default, skip_serializing_if = "Option::is_none")]
927    pub has_facet: Option<bool>,
928    /// Compound filters, all of which need to be matched by the custom view.
929    #[serde(default, skip_serializing_if = "Option::is_none")]
930    pub and: Option<Vec<Box<CustomViewFilter>>>,
931    /// Compound filters, one of which need to be matched by the custom view.
932    #[serde(default, skip_serializing_if = "Option::is_none")]
933    pub or: Option<Vec<Box<CustomViewFilter>>>,
934}
935/// Custom view name sorting options.
936#[derive(Debug, Clone, Default, Serialize, Deserialize)]
937#[serde(rename_all = "camelCase")]
938pub struct CustomViewNameSort {
939    /// Whether nulls should be sorted first or last
940    #[serde(default, skip_serializing_if = "Option::is_none")]
941    pub nulls: Option<PaginationNulls>,
942    /// The order for the individual sort
943    #[serde(default, skip_serializing_if = "Option::is_none")]
944    pub order: Option<PaginationSortOrder>,
945}
946/// Custom view shared status sorting options. Ascending order puts shared views last.
947#[derive(Debug, Clone, Default, Serialize, Deserialize)]
948#[serde(rename_all = "camelCase")]
949pub struct CustomViewSharedSort {
950    /// Whether nulls should be sorted first or last
951    #[serde(default, skip_serializing_if = "Option::is_none")]
952    pub nulls: Option<PaginationNulls>,
953    /// The order for the individual sort
954    #[serde(default, skip_serializing_if = "Option::is_none")]
955    pub order: Option<PaginationSortOrder>,
956}
957#[derive(Debug, Clone, Default, Serialize, Deserialize)]
958#[serde(rename_all = "camelCase")]
959pub struct CustomViewSortInput {
960    /// Sort by custom view name.
961    #[serde(default, skip_serializing_if = "Option::is_none")]
962    pub name: Option<Box<CustomViewNameSort>>,
963    /// Sort by custom view creation date.
964    #[serde(default, skip_serializing_if = "Option::is_none")]
965    pub created_at: Option<Box<CustomViewCreatedAtSort>>,
966    /// Sort by custom view shared status.
967    #[serde(default, skip_serializing_if = "Option::is_none")]
968    pub shared: Option<Box<CustomViewSharedSort>>,
969    /// Sort by custom view update date.
970    #[serde(default, skip_serializing_if = "Option::is_none")]
971    pub updated_at: Option<Box<CustomViewUpdatedAtSort>>,
972}
973#[derive(Debug, Clone, Default, Serialize, Deserialize)]
974#[serde(rename_all = "camelCase")]
975pub struct CustomViewUpdateInput {
976    /// The name of the custom view.
977    #[serde(default, skip_serializing_if = "Option::is_none")]
978    pub name: Option<String>,
979    /// The description of the custom view.
980    #[serde(default, skip_serializing_if = "Option::is_none")]
981    pub description: Option<String>,
982    /// The icon of the custom view.
983    #[serde(default, skip_serializing_if = "Option::is_none")]
984    pub icon: Option<String>,
985    /// The color of the icon of the custom view.
986    #[serde(default, skip_serializing_if = "Option::is_none")]
987    pub color: Option<String>,
988    /// The id of the team associated with the custom view.
989    #[serde(default, skip_serializing_if = "Option::is_none")]
990    pub team_id: Option<String>,
991    /// `Internal` The id of the project associated with the custom view.
992    #[serde(default, skip_serializing_if = "Option::is_none")]
993    pub project_id: Option<String>,
994    /// `Internal` The id of the initiative associated with the custom view.
995    #[serde(default, skip_serializing_if = "Option::is_none")]
996    pub initiative_id: Option<String>,
997    /// The owner of the custom view.
998    #[serde(default, skip_serializing_if = "Option::is_none")]
999    pub owner_id: Option<String>,
1000    /// The filter applied to issues in the custom view.
1001    #[serde(default, skip_serializing_if = "Option::is_none")]
1002    pub filter_data: Option<Box<IssueFilter>>,
1003    /// The project filter applied to issues in the custom view.
1004    #[serde(default, skip_serializing_if = "Option::is_none")]
1005    pub project_filter_data: Option<Box<ProjectFilter>>,
1006    /// `ALPHA` The initiative filter applied to issues in the custom view.
1007    #[serde(default, skip_serializing_if = "Option::is_none")]
1008    pub initiative_filter_data: Option<Box<InitiativeFilter>>,
1009    /// The feed item filter applied to issues in the custom view.
1010    #[serde(default, skip_serializing_if = "Option::is_none")]
1011    pub feed_item_filter_data: Option<Box<FeedItemFilter>>,
1012    /// Whether the custom view is shared with everyone in the organization.
1013    #[serde(default, skip_serializing_if = "Option::is_none")]
1014    pub shared: Option<bool>,
1015}
1016/// Custom view update date sorting options.
1017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1018#[serde(rename_all = "camelCase")]
1019pub struct CustomViewUpdatedAtSort {
1020    /// Whether nulls should be sorted first or last
1021    #[serde(default, skip_serializing_if = "Option::is_none")]
1022    pub nulls: Option<PaginationNulls>,
1023    /// The order for the individual sort
1024    #[serde(default, skip_serializing_if = "Option::is_none")]
1025    pub order: Option<PaginationSortOrder>,
1026}
1027/// Issue customer count sorting options.
1028#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1029#[serde(rename_all = "camelCase")]
1030pub struct CustomerCountSort {
1031    /// Whether nulls should be sorted first or last
1032    #[serde(default, skip_serializing_if = "Option::is_none")]
1033    pub nulls: Option<PaginationNulls>,
1034    /// The order for the individual sort
1035    #[serde(default, skip_serializing_if = "Option::is_none")]
1036    pub order: Option<PaginationSortOrder>,
1037}
1038#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1039#[serde(rename_all = "camelCase")]
1040pub struct CustomerCreateInput {
1041    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1042    #[serde(default, skip_serializing_if = "Option::is_none")]
1043    pub id: Option<String>,
1044    /// The name of the customer.
1045    #[serde(default, skip_serializing_if = "Option::is_none")]
1046    pub name: Option<String>,
1047    /// The domains associated with this customer.
1048    #[serde(default, skip_serializing_if = "Option::is_none")]
1049    pub domains: Option<Vec<String>>,
1050    /// The ids of the customers in external systems.
1051    #[serde(default, skip_serializing_if = "Option::is_none")]
1052    pub external_ids: Option<Vec<String>>,
1053    /// The ID of the Slack channel used to interact with the customer.
1054    #[serde(default, skip_serializing_if = "Option::is_none")]
1055    pub slack_channel_id: Option<String>,
1056    /// The user who owns the customer.
1057    #[serde(default, skip_serializing_if = "Option::is_none")]
1058    pub owner_id: Option<String>,
1059    /// The status of the customer.
1060    #[serde(default, skip_serializing_if = "Option::is_none")]
1061    pub status_id: Option<String>,
1062    /// The annual revenue generated by the customer.
1063    #[serde(default, skip_serializing_if = "Option::is_none")]
1064    pub revenue: Option<i64>,
1065    /// The size of the customer.
1066    #[serde(default, skip_serializing_if = "Option::is_none")]
1067    pub size: Option<i64>,
1068    /// The tier of the customer customer.
1069    #[serde(default, skip_serializing_if = "Option::is_none")]
1070    pub tier_id: Option<String>,
1071    /// The URL of the customer's logo.
1072    #[serde(default, skip_serializing_if = "Option::is_none")]
1073    pub logo_url: Option<String>,
1074    /// The main source of the customer, for customers with multiple sources. Must be one of externalIds.
1075    #[serde(default, skip_serializing_if = "Option::is_none")]
1076    pub main_source_id: Option<String>,
1077}
1078/// Customer creation date sorting options.
1079#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1080#[serde(rename_all = "camelCase")]
1081pub struct CustomerCreatedAtSort {
1082    /// Whether nulls should be sorted first or last
1083    #[serde(default, skip_serializing_if = "Option::is_none")]
1084    pub nulls: Option<PaginationNulls>,
1085    /// The order for the individual sort
1086    #[serde(default, skip_serializing_if = "Option::is_none")]
1087    pub order: Option<PaginationSortOrder>,
1088}
1089/// Customer filtering options.
1090#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1091#[serde(rename_all = "camelCase")]
1092pub struct CustomerFilter {
1093    /// Comparator for the identifier.
1094    #[serde(default, skip_serializing_if = "Option::is_none")]
1095    pub id: Option<Box<IDComparator>>,
1096    /// Comparator for the created at date.
1097    #[serde(default, skip_serializing_if = "Option::is_none")]
1098    pub created_at: Option<Box<DateComparator>>,
1099    /// Comparator for the updated at date.
1100    #[serde(default, skip_serializing_if = "Option::is_none")]
1101    pub updated_at: Option<Box<DateComparator>>,
1102    /// Comparator for the customer name.
1103    #[serde(default, skip_serializing_if = "Option::is_none")]
1104    pub name: Option<Box<StringComparator>>,
1105    /// Comparator for the customer slack channel ID.
1106    #[serde(default, skip_serializing_if = "Option::is_none")]
1107    pub slack_channel_id: Option<Box<StringComparator>>,
1108    /// Comparator for the customer's domains.
1109    #[serde(default, skip_serializing_if = "Option::is_none")]
1110    pub domains: Option<Box<StringArrayComparator>>,
1111    /// Comparator for the customer's external IDs.
1112    #[serde(default, skip_serializing_if = "Option::is_none")]
1113    pub external_ids: Option<Box<StringArrayComparator>>,
1114    /// Filters that the customer owner must satisfy.
1115    #[serde(default, skip_serializing_if = "Option::is_none")]
1116    pub owner: Option<Box<NullableUserFilter>>,
1117    /// Filters that the customer's needs must satisfy.
1118    #[serde(default, skip_serializing_if = "Option::is_none")]
1119    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
1120    /// Comparator for the customer generated revenue.
1121    #[serde(default, skip_serializing_if = "Option::is_none")]
1122    pub revenue: Option<Box<NumberComparator>>,
1123    /// Comparator for the customer size.
1124    #[serde(default, skip_serializing_if = "Option::is_none")]
1125    pub size: Option<Box<NumberComparator>>,
1126    /// Filters that the customer's status must satisfy.
1127    #[serde(default, skip_serializing_if = "Option::is_none")]
1128    pub status: Option<Box<CustomerStatusFilter>>,
1129    /// Filters that the customer's tier must satisfy.
1130    #[serde(default, skip_serializing_if = "Option::is_none")]
1131    pub tier: Option<Box<CustomerTierFilter>>,
1132    /// Compound filters, all of which need to be matched by the customer.
1133    #[serde(default, skip_serializing_if = "Option::is_none")]
1134    pub and: Option<Vec<Box<CustomerFilter>>>,
1135    /// Compound filters, one of which need to be matched by the customer.
1136    #[serde(default, skip_serializing_if = "Option::is_none")]
1137    pub or: Option<Vec<Box<CustomerFilter>>>,
1138}
1139/// Issue customer important count sorting options.
1140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1141#[serde(rename_all = "camelCase")]
1142pub struct CustomerImportantCountSort {
1143    /// Whether nulls should be sorted first or last
1144    #[serde(default, skip_serializing_if = "Option::is_none")]
1145    pub nulls: Option<PaginationNulls>,
1146    /// The order for the individual sort
1147    #[serde(default, skip_serializing_if = "Option::is_none")]
1148    pub order: Option<PaginationSortOrder>,
1149}
1150/// Customer needs filtering options.
1151#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1152#[serde(rename_all = "camelCase")]
1153pub struct CustomerNeedCollectionFilter {
1154    /// Comparator for the identifier.
1155    #[serde(default, skip_serializing_if = "Option::is_none")]
1156    pub id: Option<Box<IDComparator>>,
1157    /// Comparator for the created at date.
1158    #[serde(default, skip_serializing_if = "Option::is_none")]
1159    pub created_at: Option<Box<DateComparator>>,
1160    /// Comparator for the updated at date.
1161    #[serde(default, skip_serializing_if = "Option::is_none")]
1162    pub updated_at: Option<Box<DateComparator>>,
1163    /// Comparator for the customer need priority.
1164    #[serde(default, skip_serializing_if = "Option::is_none")]
1165    pub priority: Option<Box<NumberComparator>>,
1166    /// Filters that the need's project must satisfy.
1167    #[serde(default, skip_serializing_if = "Option::is_none")]
1168    pub project: Option<Box<NullableProjectFilter>>,
1169    /// Filters that the need's issue must satisfy.
1170    #[serde(default, skip_serializing_if = "Option::is_none")]
1171    pub issue: Option<Box<NullableIssueFilter>>,
1172    /// Filters that the need's comment must satisfy.
1173    #[serde(default, skip_serializing_if = "Option::is_none")]
1174    pub comment: Option<Box<NullableCommentFilter>>,
1175    /// Filters that the need's customer must satisfy.
1176    #[serde(default, skip_serializing_if = "Option::is_none")]
1177    pub customer: Option<Box<NullableCustomerFilter>>,
1178    /// Compound filters, all of which need to be matched by the customer needs.
1179    #[serde(default, skip_serializing_if = "Option::is_none")]
1180    pub and: Option<Vec<Box<CustomerNeedCollectionFilter>>>,
1181    /// Compound filters, one of which need to be matched by the customer needs.
1182    #[serde(default, skip_serializing_if = "Option::is_none")]
1183    pub or: Option<Vec<Box<CustomerNeedCollectionFilter>>>,
1184    /// Filters that needs to be matched by some customer needs.
1185    #[serde(default, skip_serializing_if = "Option::is_none")]
1186    pub some: Option<Box<CustomerNeedFilter>>,
1187    /// Filters that needs to be matched by all customer needs.
1188    #[serde(default, skip_serializing_if = "Option::is_none")]
1189    pub every: Option<Box<CustomerNeedFilter>>,
1190    /// Comparator for the collection length.
1191    #[serde(default, skip_serializing_if = "Option::is_none")]
1192    pub length: Option<Box<NumberComparator>>,
1193}
1194#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1195#[serde(rename_all = "camelCase")]
1196pub struct CustomerNeedCreateFromAttachmentInput {
1197    /// The attachment this need is created from.
1198    #[serde(default, skip_serializing_if = "Option::is_none")]
1199    pub attachment_id: Option<String>,
1200}
1201#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1202#[serde(rename_all = "camelCase")]
1203pub struct CustomerNeedCreateInput {
1204    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1205    #[serde(default, skip_serializing_if = "Option::is_none")]
1206    pub id: Option<String>,
1207    /// The uuid of the customer the need belongs to.
1208    #[serde(default, skip_serializing_if = "Option::is_none")]
1209    pub customer_id: Option<String>,
1210    /// The external ID of the customer the need belongs to.
1211    #[serde(default, skip_serializing_if = "Option::is_none")]
1212    pub customer_external_id: Option<String>,
1213    /// The issue this need is referencing. Can be a UUID or issue identifier (e.g., 'LIN-123').
1214    #[serde(default, skip_serializing_if = "Option::is_none")]
1215    pub issue_id: Option<String>,
1216    /// `INTERNAL` The project this need is referencing.
1217    #[serde(default, skip_serializing_if = "Option::is_none")]
1218    pub project_id: Option<String>,
1219    /// The comment this need is referencing.
1220    #[serde(default, skip_serializing_if = "Option::is_none")]
1221    pub comment_id: Option<String>,
1222    /// The attachment this need is referencing.
1223    #[serde(default, skip_serializing_if = "Option::is_none")]
1224    pub attachment_id: Option<String>,
1225    /// Whether the customer need is important or not. 0 = Not important, 1 = Important.
1226    #[serde(default, skip_serializing_if = "Option::is_none")]
1227    pub priority: Option<f64>,
1228    /// The content of the need in markdown format.
1229    #[serde(default, skip_serializing_if = "Option::is_none")]
1230    pub body: Option<String>,
1231    /// `Internal` The content of the need as a Prosemirror document.
1232    #[serde(default, skip_serializing_if = "Option::is_none")]
1233    pub body_data: Option<serde_json::Value>,
1234    /// Optional URL for the attachment associated with the customer need.
1235    #[serde(default, skip_serializing_if = "Option::is_none")]
1236    pub attachment_url: Option<String>,
1237    /// Create need as a user with the provided name. This option is only available to OAuth applications creating needs in `actor=app` mode.
1238    #[serde(default, skip_serializing_if = "Option::is_none")]
1239    pub create_as_user: Option<String>,
1240    /// 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 needs in `actor=app` mode.
1241    #[serde(default, skip_serializing_if = "Option::is_none")]
1242    pub display_icon_url: Option<String>,
1243}
1244/// Customer filtering options.
1245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1246#[serde(rename_all = "camelCase")]
1247pub struct CustomerNeedFilter {
1248    /// Comparator for the identifier.
1249    #[serde(default, skip_serializing_if = "Option::is_none")]
1250    pub id: Option<Box<IDComparator>>,
1251    /// Comparator for the created at date.
1252    #[serde(default, skip_serializing_if = "Option::is_none")]
1253    pub created_at: Option<Box<DateComparator>>,
1254    /// Comparator for the updated at date.
1255    #[serde(default, skip_serializing_if = "Option::is_none")]
1256    pub updated_at: Option<Box<DateComparator>>,
1257    /// Comparator for the customer need priority.
1258    #[serde(default, skip_serializing_if = "Option::is_none")]
1259    pub priority: Option<Box<NumberComparator>>,
1260    /// Filters that the need's project must satisfy.
1261    #[serde(default, skip_serializing_if = "Option::is_none")]
1262    pub project: Option<Box<NullableProjectFilter>>,
1263    /// Filters that the need's issue must satisfy.
1264    #[serde(default, skip_serializing_if = "Option::is_none")]
1265    pub issue: Option<Box<NullableIssueFilter>>,
1266    /// Filters that the need's comment must satisfy.
1267    #[serde(default, skip_serializing_if = "Option::is_none")]
1268    pub comment: Option<Box<NullableCommentFilter>>,
1269    /// Filters that the need's customer must satisfy.
1270    #[serde(default, skip_serializing_if = "Option::is_none")]
1271    pub customer: Option<Box<NullableCustomerFilter>>,
1272    /// Compound filters, all of which need to be matched by the customer need.
1273    #[serde(default, skip_serializing_if = "Option::is_none")]
1274    pub and: Option<Vec<Box<CustomerNeedFilter>>>,
1275    /// Compound filters, one of which need to be matched by the customer need.
1276    #[serde(default, skip_serializing_if = "Option::is_none")]
1277    pub or: Option<Vec<Box<CustomerNeedFilter>>>,
1278}
1279#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1280#[serde(rename_all = "camelCase")]
1281pub struct CustomerNeedUpdateInput {
1282    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1283    #[serde(default, skip_serializing_if = "Option::is_none")]
1284    pub id: Option<String>,
1285    /// The uuid of the customer the need belongs to.
1286    #[serde(default, skip_serializing_if = "Option::is_none")]
1287    pub customer_id: Option<String>,
1288    /// The external ID of the customer the need belongs to.
1289    #[serde(default, skip_serializing_if = "Option::is_none")]
1290    pub customer_external_id: Option<String>,
1291    /// The issue this need is referencing. Can be a UUID or issue identifier (e.g., 'LIN-123').
1292    #[serde(default, skip_serializing_if = "Option::is_none")]
1293    pub issue_id: Option<String>,
1294    /// `INTERNAL` The project this need is referencing.
1295    #[serde(default, skip_serializing_if = "Option::is_none")]
1296    pub project_id: Option<String>,
1297    /// Whether the customer need is important or not. 0 = Not important, 1 = Important.
1298    #[serde(default, skip_serializing_if = "Option::is_none")]
1299    pub priority: Option<f64>,
1300    /// Whether to also update the priority of needs from the same customer on the same issue/project.
1301    #[serde(default, skip_serializing_if = "Option::is_none")]
1302    pub apply_priority_to_related_needs: Option<bool>,
1303    /// The content of the need in markdown format.
1304    #[serde(default, skip_serializing_if = "Option::is_none")]
1305    pub body: Option<String>,
1306    /// `Internal` The content of the need as a Prosemirror document.
1307    #[serde(default, skip_serializing_if = "Option::is_none")]
1308    pub body_data: Option<serde_json::Value>,
1309    /// Optional URL for the attachment associated with the customer need.
1310    #[serde(default, skip_serializing_if = "Option::is_none")]
1311    pub attachment_url: Option<String>,
1312}
1313/// Issue customer revenue sorting options.
1314#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1315#[serde(rename_all = "camelCase")]
1316pub struct CustomerRevenueSort {
1317    /// Whether nulls should be sorted first or last
1318    #[serde(default, skip_serializing_if = "Option::is_none")]
1319    pub nulls: Option<PaginationNulls>,
1320    /// The order for the individual sort
1321    #[serde(default, skip_serializing_if = "Option::is_none")]
1322    pub order: Option<PaginationSortOrder>,
1323}
1324/// Issue customer sorting options.
1325#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1326#[serde(rename_all = "camelCase")]
1327pub struct CustomerSort {
1328    /// Whether nulls should be sorted first or last
1329    #[serde(default, skip_serializing_if = "Option::is_none")]
1330    pub nulls: Option<PaginationNulls>,
1331    /// The order for the individual sort
1332    #[serde(default, skip_serializing_if = "Option::is_none")]
1333    pub order: Option<PaginationSortOrder>,
1334}
1335/// Customer sorting options.
1336#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1337#[serde(rename_all = "camelCase")]
1338pub struct CustomerSortInput {
1339    /// Sort by name
1340    #[serde(default, skip_serializing_if = "Option::is_none")]
1341    pub name: Option<Box<NameSort>>,
1342    /// Sort by customer creation date
1343    #[serde(default, skip_serializing_if = "Option::is_none")]
1344    pub created_at: Option<Box<CustomerCreatedAtSort>>,
1345    /// Sort by owner name
1346    #[serde(default, skip_serializing_if = "Option::is_none")]
1347    pub owner: Option<Box<OwnerSort>>,
1348    /// Sort by customer status
1349    #[serde(default, skip_serializing_if = "Option::is_none")]
1350    pub status: Option<Box<CustomerStatusSort>>,
1351    /// Sort by customer generated revenue
1352    #[serde(default, skip_serializing_if = "Option::is_none")]
1353    pub revenue: Option<Box<RevenueSort>>,
1354    /// Sort by customer size
1355    #[serde(default, skip_serializing_if = "Option::is_none")]
1356    pub size: Option<Box<SizeSort>>,
1357    /// Sort by customer tier
1358    #[serde(default, skip_serializing_if = "Option::is_none")]
1359    pub tier: Option<Box<TierSort>>,
1360    /// Sort by approximate customer need count
1361    #[serde(default, skip_serializing_if = "Option::is_none")]
1362    pub approximate_need_count: Option<Box<ApproximateNeedCountSort>>,
1363}
1364#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1365#[serde(rename_all = "camelCase")]
1366pub struct CustomerStatusCreateInput {
1367    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1368    #[serde(default, skip_serializing_if = "Option::is_none")]
1369    pub id: Option<String>,
1370    /// The name of the status.
1371    #[serde(default, skip_serializing_if = "Option::is_none")]
1372    pub name: Option<String>,
1373    /// The UI color of the status as a HEX string.
1374    #[serde(default, skip_serializing_if = "Option::is_none")]
1375    pub color: Option<String>,
1376    /// Description of the status.
1377    #[serde(default, skip_serializing_if = "Option::is_none")]
1378    pub description: Option<String>,
1379    /// The position of the status in the workspace's customer flow.
1380    #[serde(default, skip_serializing_if = "Option::is_none")]
1381    pub position: Option<f64>,
1382    /// The display name of the status.
1383    #[serde(default, skip_serializing_if = "Option::is_none")]
1384    pub display_name: Option<String>,
1385}
1386/// Customer status filtering options.
1387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1388#[serde(rename_all = "camelCase")]
1389pub struct CustomerStatusFilter {
1390    /// Comparator for the identifier.
1391    #[serde(default, skip_serializing_if = "Option::is_none")]
1392    pub id: Option<Box<IDComparator>>,
1393    /// Comparator for the created at date.
1394    #[serde(default, skip_serializing_if = "Option::is_none")]
1395    pub created_at: Option<Box<DateComparator>>,
1396    /// Comparator for the updated at date.
1397    #[serde(default, skip_serializing_if = "Option::is_none")]
1398    pub updated_at: Option<Box<DateComparator>>,
1399    /// Comparator for the customer status name.
1400    #[serde(default, skip_serializing_if = "Option::is_none")]
1401    pub name: Option<Box<StringComparator>>,
1402    /// Comparator for the customer status description.
1403    #[serde(default, skip_serializing_if = "Option::is_none")]
1404    pub description: Option<Box<StringComparator>>,
1405    /// Comparator for the customer status position.
1406    #[serde(default, skip_serializing_if = "Option::is_none")]
1407    pub position: Option<Box<NumberComparator>>,
1408    /// Comparator for the customer status type.
1409    #[serde(default, skip_serializing_if = "Option::is_none")]
1410    pub r#type: Option<Box<StringComparator>>,
1411    /// Comparator for the customer status color.
1412    #[serde(default, skip_serializing_if = "Option::is_none")]
1413    pub color: Option<Box<StringComparator>>,
1414    /// Compound filters, all of which need to be matched by the customer status.
1415    #[serde(default, skip_serializing_if = "Option::is_none")]
1416    pub and: Option<Vec<Box<CustomerStatusFilter>>>,
1417    /// Compound filters, one of which needs to be matched by the customer status.
1418    #[serde(default, skip_serializing_if = "Option::is_none")]
1419    pub or: Option<Vec<Box<CustomerStatusFilter>>>,
1420}
1421/// Customer status sorting options.
1422#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1423#[serde(rename_all = "camelCase")]
1424pub struct CustomerStatusSort {
1425    /// Whether nulls should be sorted first or last
1426    #[serde(default, skip_serializing_if = "Option::is_none")]
1427    pub nulls: Option<PaginationNulls>,
1428    /// The order for the individual sort
1429    #[serde(default, skip_serializing_if = "Option::is_none")]
1430    pub order: Option<PaginationSortOrder>,
1431}
1432#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1433#[serde(rename_all = "camelCase")]
1434pub struct CustomerStatusUpdateInput {
1435    /// The name of the status.
1436    #[serde(default, skip_serializing_if = "Option::is_none")]
1437    pub name: Option<String>,
1438    /// The UI color of the status as a HEX string.
1439    #[serde(default, skip_serializing_if = "Option::is_none")]
1440    pub color: Option<String>,
1441    /// Description of the status.
1442    #[serde(default, skip_serializing_if = "Option::is_none")]
1443    pub description: Option<String>,
1444    /// The position of the status in the workspace's customer flow.
1445    #[serde(default, skip_serializing_if = "Option::is_none")]
1446    pub position: Option<f64>,
1447    /// The display name of the status.
1448    #[serde(default, skip_serializing_if = "Option::is_none")]
1449    pub display_name: Option<String>,
1450}
1451#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1452#[serde(rename_all = "camelCase")]
1453pub struct CustomerTierCreateInput {
1454    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1455    #[serde(default, skip_serializing_if = "Option::is_none")]
1456    pub id: Option<String>,
1457    /// The name of the tier.
1458    #[serde(default, skip_serializing_if = "Option::is_none")]
1459    pub name: Option<String>,
1460    /// The UI color of the tier as a HEX string.
1461    #[serde(default, skip_serializing_if = "Option::is_none")]
1462    pub color: Option<String>,
1463    /// Description of the tier.
1464    #[serde(default, skip_serializing_if = "Option::is_none")]
1465    pub description: Option<String>,
1466    /// The position of the tier in the workspace's customer flow.
1467    #[serde(default, skip_serializing_if = "Option::is_none")]
1468    pub position: Option<f64>,
1469    /// The display name of the tier.
1470    #[serde(default, skip_serializing_if = "Option::is_none")]
1471    pub display_name: Option<String>,
1472}
1473/// Customer tier filtering options.
1474#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1475#[serde(rename_all = "camelCase")]
1476pub struct CustomerTierFilter {
1477    /// Comparator for the identifier.
1478    #[serde(default, skip_serializing_if = "Option::is_none")]
1479    pub id: Option<Box<IDComparator>>,
1480    /// Comparator for the created at date.
1481    #[serde(default, skip_serializing_if = "Option::is_none")]
1482    pub created_at: Option<Box<DateComparator>>,
1483    /// Comparator for the updated at date.
1484    #[serde(default, skip_serializing_if = "Option::is_none")]
1485    pub updated_at: Option<Box<DateComparator>>,
1486    /// Comparator for the customer tier display name.
1487    #[serde(default, skip_serializing_if = "Option::is_none")]
1488    pub display_name: Option<Box<StringComparator>>,
1489    /// Comparator for the customer tier description.
1490    #[serde(default, skip_serializing_if = "Option::is_none")]
1491    pub description: Option<Box<StringComparator>>,
1492    /// Comparator for the customer tier position.
1493    #[serde(default, skip_serializing_if = "Option::is_none")]
1494    pub position: Option<Box<NumberComparator>>,
1495    /// Comparator for the customer tier color.
1496    #[serde(default, skip_serializing_if = "Option::is_none")]
1497    pub color: Option<Box<StringComparator>>,
1498    /// Compound filters, all of which need to be matched by the customer tier.
1499    #[serde(default, skip_serializing_if = "Option::is_none")]
1500    pub and: Option<Vec<Box<CustomerTierFilter>>>,
1501    /// Compound filters, one of which needs to be matched by the customer tier.
1502    #[serde(default, skip_serializing_if = "Option::is_none")]
1503    pub or: Option<Vec<Box<CustomerTierFilter>>>,
1504}
1505#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1506#[serde(rename_all = "camelCase")]
1507pub struct CustomerTierUpdateInput {
1508    /// The name of the tier.
1509    #[serde(default, skip_serializing_if = "Option::is_none")]
1510    pub name: Option<String>,
1511    /// The UI color of the tier as a HEX string.
1512    #[serde(default, skip_serializing_if = "Option::is_none")]
1513    pub color: Option<String>,
1514    /// Description of the tier.
1515    #[serde(default, skip_serializing_if = "Option::is_none")]
1516    pub description: Option<String>,
1517    /// The position of the tier in the workspace's customer flow.
1518    #[serde(default, skip_serializing_if = "Option::is_none")]
1519    pub position: Option<f64>,
1520    /// The display name of the tier.
1521    #[serde(default, skip_serializing_if = "Option::is_none")]
1522    pub display_name: Option<String>,
1523}
1524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1525#[serde(rename_all = "camelCase")]
1526pub struct CustomerUpdateInput {
1527    /// The name of the customer.
1528    #[serde(default, skip_serializing_if = "Option::is_none")]
1529    pub name: Option<String>,
1530    /// The domains associated with this customer.
1531    #[serde(default, skip_serializing_if = "Option::is_none")]
1532    pub domains: Option<Vec<String>>,
1533    /// The ids of the customers in external systems.
1534    #[serde(default, skip_serializing_if = "Option::is_none")]
1535    pub external_ids: Option<Vec<String>>,
1536    /// The ID of the Slack channel used to interact with the customer.
1537    #[serde(default, skip_serializing_if = "Option::is_none")]
1538    pub slack_channel_id: Option<String>,
1539    /// The user who owns the customer.
1540    #[serde(default, skip_serializing_if = "Option::is_none")]
1541    pub owner_id: Option<String>,
1542    /// The status of the customer.
1543    #[serde(default, skip_serializing_if = "Option::is_none")]
1544    pub status_id: Option<String>,
1545    /// The annual revenue generated by the customer.
1546    #[serde(default, skip_serializing_if = "Option::is_none")]
1547    pub revenue: Option<i64>,
1548    /// The size of the customer.
1549    #[serde(default, skip_serializing_if = "Option::is_none")]
1550    pub size: Option<i64>,
1551    /// The tier of the customer customer.
1552    #[serde(default, skip_serializing_if = "Option::is_none")]
1553    pub tier_id: Option<String>,
1554    /// The URL of the customer's logo.
1555    #[serde(default, skip_serializing_if = "Option::is_none")]
1556    pub logo_url: Option<String>,
1557    /// The main source of the customer, for customers with multiple sources. Must be one of externalIds.
1558    #[serde(default, skip_serializing_if = "Option::is_none")]
1559    pub main_source_id: Option<String>,
1560}
1561#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1562#[serde(rename_all = "camelCase")]
1563pub struct CustomerUpsertInput {
1564    /// The identifier in UUID v4 format.
1565    #[serde(default, skip_serializing_if = "Option::is_none")]
1566    pub id: Option<String>,
1567    /// The name of the customer.
1568    #[serde(default, skip_serializing_if = "Option::is_none")]
1569    pub name: Option<String>,
1570    /// The domains associated with this customer.
1571    #[serde(default, skip_serializing_if = "Option::is_none")]
1572    pub domains: Option<Vec<String>>,
1573    /// The id of the customers in external systems.
1574    #[serde(default, skip_serializing_if = "Option::is_none")]
1575    pub external_id: Option<String>,
1576    /// The ID of the Slack channel used to interact with the customer.
1577    #[serde(default, skip_serializing_if = "Option::is_none")]
1578    pub slack_channel_id: Option<String>,
1579    /// The user who owns the customer.
1580    #[serde(default, skip_serializing_if = "Option::is_none")]
1581    pub owner_id: Option<String>,
1582    /// The status of the customer.
1583    #[serde(default, skip_serializing_if = "Option::is_none")]
1584    pub status_id: Option<String>,
1585    /// The annual revenue generated by the customer.
1586    #[serde(default, skip_serializing_if = "Option::is_none")]
1587    pub revenue: Option<i64>,
1588    /// The size of the customer.
1589    #[serde(default, skip_serializing_if = "Option::is_none")]
1590    pub size: Option<i64>,
1591    /// The tier of the customer.
1592    #[serde(default, skip_serializing_if = "Option::is_none")]
1593    pub tier_id: Option<String>,
1594    /// The URL of the customer's logo.
1595    #[serde(default, skip_serializing_if = "Option::is_none")]
1596    pub logo_url: Option<String>,
1597    /// The name tier of the customer. Will be created if doesn't exist
1598    #[serde(default, skip_serializing_if = "Option::is_none")]
1599    pub tier_name: Option<String>,
1600}
1601#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1602#[serde(rename_all = "camelCase")]
1603pub struct CycleCreateInput {
1604    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1605    #[serde(default, skip_serializing_if = "Option::is_none")]
1606    pub id: Option<String>,
1607    /// The custom name of the cycle.
1608    #[serde(default, skip_serializing_if = "Option::is_none")]
1609    pub name: Option<String>,
1610    /// The description of the cycle.
1611    #[serde(default, skip_serializing_if = "Option::is_none")]
1612    pub description: Option<String>,
1613    /// The team to associate the cycle with.
1614    #[serde(default, skip_serializing_if = "Option::is_none")]
1615    pub team_id: Option<String>,
1616    /// The start date of the cycle.
1617    #[serde(default, skip_serializing_if = "Option::is_none")]
1618    pub starts_at: Option<chrono::DateTime<chrono::Utc>>,
1619    /// The end date of the cycle.
1620    #[serde(default, skip_serializing_if = "Option::is_none")]
1621    pub ends_at: Option<chrono::DateTime<chrono::Utc>>,
1622    /// The completion time of the cycle. If null, the cycle hasn't been completed.
1623    #[serde(default, skip_serializing_if = "Option::is_none")]
1624    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
1625}
1626/// Cycle filtering options.
1627#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1628#[serde(rename_all = "camelCase")]
1629pub struct CycleFilter {
1630    /// Comparator for the identifier.
1631    #[serde(default, skip_serializing_if = "Option::is_none")]
1632    pub id: Option<Box<IDComparator>>,
1633    /// Comparator for the created at date.
1634    #[serde(default, skip_serializing_if = "Option::is_none")]
1635    pub created_at: Option<Box<DateComparator>>,
1636    /// Comparator for the updated at date.
1637    #[serde(default, skip_serializing_if = "Option::is_none")]
1638    pub updated_at: Option<Box<DateComparator>>,
1639    /// Comparator for the cycle number.
1640    #[serde(default, skip_serializing_if = "Option::is_none")]
1641    pub number: Option<Box<NumberComparator>>,
1642    /// Comparator for the cycle name.
1643    #[serde(default, skip_serializing_if = "Option::is_none")]
1644    pub name: Option<Box<StringComparator>>,
1645    /// Comparator for the cycle start date.
1646    #[serde(default, skip_serializing_if = "Option::is_none")]
1647    pub starts_at: Option<Box<DateComparator>>,
1648    /// Comparator for the cycle ends at date.
1649    #[serde(default, skip_serializing_if = "Option::is_none")]
1650    pub ends_at: Option<Box<DateComparator>>,
1651    /// Comparator for the cycle completed at date.
1652    #[serde(default, skip_serializing_if = "Option::is_none")]
1653    pub completed_at: Option<Box<DateComparator>>,
1654    /// Comparator for the filtering active cycle.
1655    #[serde(default, skip_serializing_if = "Option::is_none")]
1656    pub is_active: Option<Box<BooleanComparator>>,
1657    /// Comparator for filtering for whether the cycle is currently in cooldown.
1658    #[serde(default, skip_serializing_if = "Option::is_none")]
1659    pub is_in_cooldown: Option<Box<BooleanComparator>>,
1660    /// Comparator for the filtering next cycle.
1661    #[serde(default, skip_serializing_if = "Option::is_none")]
1662    pub is_next: Option<Box<BooleanComparator>>,
1663    /// Comparator for the filtering previous cycle.
1664    #[serde(default, skip_serializing_if = "Option::is_none")]
1665    pub is_previous: Option<Box<BooleanComparator>>,
1666    /// Comparator for the filtering future cycles.
1667    #[serde(default, skip_serializing_if = "Option::is_none")]
1668    pub is_future: Option<Box<BooleanComparator>>,
1669    /// Comparator for the filtering past cycles.
1670    #[serde(default, skip_serializing_if = "Option::is_none")]
1671    pub is_past: Option<Box<BooleanComparator>>,
1672    /// Filters that the cycles team must satisfy.
1673    #[serde(default, skip_serializing_if = "Option::is_none")]
1674    pub team: Option<Box<TeamFilter>>,
1675    /// Filters that the cycles issues must satisfy.
1676    #[serde(default, skip_serializing_if = "Option::is_none")]
1677    pub issues: Option<Box<IssueCollectionFilter>>,
1678    /// Comparator for the inherited cycle ID.
1679    #[serde(default, skip_serializing_if = "Option::is_none")]
1680    pub inherited_from_id: Option<Box<IDComparator>>,
1681    /// Compound filters, all of which need to be matched by the cycle.
1682    #[serde(default, skip_serializing_if = "Option::is_none")]
1683    pub and: Option<Vec<Box<CycleFilter>>>,
1684    /// Compound filters, one of which need to be matched by the cycle.
1685    #[serde(default, skip_serializing_if = "Option::is_none")]
1686    pub or: Option<Vec<Box<CycleFilter>>>,
1687}
1688/// Comparator for period when issue was added to a cycle.
1689#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1690#[serde(rename_all = "camelCase")]
1691pub struct CyclePeriodComparator {
1692    /// Equals constraint.
1693    #[serde(default, skip_serializing_if = "Option::is_none")]
1694    pub eq: Option<CyclePeriod>,
1695    /// Not-equals constraint.
1696    #[serde(default, skip_serializing_if = "Option::is_none")]
1697    pub neq: Option<CyclePeriod>,
1698    /// In-array constraint.
1699    #[serde(default, skip_serializing_if = "Option::is_none")]
1700    pub r#in: Option<Vec<CyclePeriod>>,
1701    /// Not-in-array constraint.
1702    #[serde(default, skip_serializing_if = "Option::is_none")]
1703    pub nin: Option<Vec<CyclePeriod>>,
1704    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
1705    #[serde(default, skip_serializing_if = "Option::is_none")]
1706    pub null: Option<bool>,
1707}
1708/// Input for shifting all cycles from a certain cycle onwards by a certain number of days
1709#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1710#[serde(rename_all = "camelCase")]
1711pub struct CycleShiftAllInput {
1712    /// The cycle ID at which to start the shift.
1713    #[serde(default, skip_serializing_if = "Option::is_none")]
1714    pub id: Option<String>,
1715    /// The number of days to shift the cycles by.
1716    #[serde(default, skip_serializing_if = "Option::is_none")]
1717    pub days_to_shift: Option<f64>,
1718}
1719/// Issue cycle sorting options.
1720#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1721#[serde(rename_all = "camelCase")]
1722pub struct CycleSort {
1723    /// Whether nulls should be sorted first or last
1724    #[serde(default, skip_serializing_if = "Option::is_none")]
1725    pub nulls: Option<PaginationNulls>,
1726    /// The order for the individual sort
1727    #[serde(default, skip_serializing_if = "Option::is_none")]
1728    pub order: Option<PaginationSortOrder>,
1729    /// 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.
1730    #[serde(default, skip_serializing_if = "Option::is_none")]
1731    pub current_cycle_first: Option<bool>,
1732}
1733#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1734#[serde(rename_all = "camelCase")]
1735pub struct CycleUpdateInput {
1736    /// The custom name of the cycle.
1737    #[serde(default, skip_serializing_if = "Option::is_none")]
1738    pub name: Option<String>,
1739    /// The description of the cycle.
1740    #[serde(default, skip_serializing_if = "Option::is_none")]
1741    pub description: Option<String>,
1742    /// The start date of the cycle.
1743    #[serde(default, skip_serializing_if = "Option::is_none")]
1744    pub starts_at: Option<chrono::DateTime<chrono::Utc>>,
1745    /// The end date of the cycle.
1746    #[serde(default, skip_serializing_if = "Option::is_none")]
1747    pub ends_at: Option<chrono::DateTime<chrono::Utc>>,
1748    /// The end date of the cycle.
1749    #[serde(default, skip_serializing_if = "Option::is_none")]
1750    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
1751}
1752/// Comparator for dates.
1753#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1754#[serde(rename_all = "camelCase")]
1755pub struct DateComparator {
1756    /// Equals constraint.
1757    #[serde(default, skip_serializing_if = "Option::is_none")]
1758    pub eq: Option<serde_json::Value>,
1759    /// Not-equals constraint.
1760    #[serde(default, skip_serializing_if = "Option::is_none")]
1761    pub neq: Option<serde_json::Value>,
1762    /// In-array constraint.
1763    #[serde(default, skip_serializing_if = "Option::is_none")]
1764    pub r#in: Option<Vec<serde_json::Value>>,
1765    /// Not-in-array constraint.
1766    #[serde(default, skip_serializing_if = "Option::is_none")]
1767    pub nin: Option<Vec<serde_json::Value>>,
1768    /// Less-than constraint. Matches any values that are less than the given value.
1769    #[serde(default, skip_serializing_if = "Option::is_none")]
1770    pub lt: Option<serde_json::Value>,
1771    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
1772    #[serde(default, skip_serializing_if = "Option::is_none")]
1773    pub lte: Option<serde_json::Value>,
1774    /// Greater-than constraint. Matches any values that are greater than the given value.
1775    #[serde(default, skip_serializing_if = "Option::is_none")]
1776    pub gt: Option<serde_json::Value>,
1777    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
1778    #[serde(default, skip_serializing_if = "Option::is_none")]
1779    pub gte: Option<serde_json::Value>,
1780}
1781/// Issue delegate sorting options.
1782#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1783#[serde(rename_all = "camelCase")]
1784pub struct DelegateSort {
1785    /// Whether nulls should be sorted first or last
1786    #[serde(default, skip_serializing_if = "Option::is_none")]
1787    pub nulls: Option<PaginationNulls>,
1788    /// The order for the individual sort
1789    #[serde(default, skip_serializing_if = "Option::is_none")]
1790    pub order: Option<PaginationSortOrder>,
1791}
1792#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1793#[serde(rename_all = "camelCase")]
1794pub struct DeleteOrganizationInput {
1795    /// The deletion code to confirm operation.
1796    #[serde(default, skip_serializing_if = "Option::is_none")]
1797    pub deletion_code: Option<String>,
1798}
1799#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1800#[serde(rename_all = "camelCase")]
1801pub struct DocumentCreateInput {
1802    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1803    #[serde(default, skip_serializing_if = "Option::is_none")]
1804    pub id: Option<String>,
1805    /// The title of the document.
1806    #[serde(default, skip_serializing_if = "Option::is_none")]
1807    pub title: Option<String>,
1808    /// The icon of the document.
1809    #[serde(default, skip_serializing_if = "Option::is_none")]
1810    pub icon: Option<String>,
1811    /// The color of the icon.
1812    #[serde(default, skip_serializing_if = "Option::is_none")]
1813    pub color: Option<String>,
1814    /// The document content as markdown.
1815    #[serde(default, skip_serializing_if = "Option::is_none")]
1816    pub content: Option<String>,
1817    /// Related project for the document.
1818    #[serde(default, skip_serializing_if = "Option::is_none")]
1819    pub project_id: Option<String>,
1820    /// `Internal` Related initiative for the document.
1821    #[serde(default, skip_serializing_if = "Option::is_none")]
1822    pub initiative_id: Option<String>,
1823    /// `Internal` Related team for the document.
1824    #[serde(default, skip_serializing_if = "Option::is_none")]
1825    pub team_id: Option<String>,
1826    /// Related issue for the document. Can be a UUID or issue identifier (e.g., 'LIN-123').
1827    #[serde(default, skip_serializing_if = "Option::is_none")]
1828    pub issue_id: Option<String>,
1829    /// `Internal` Related release for the document.
1830    #[serde(default, skip_serializing_if = "Option::is_none")]
1831    pub release_id: Option<String>,
1832    /// `Internal` Related cycle for the document.
1833    #[serde(default, skip_serializing_if = "Option::is_none")]
1834    pub cycle_id: Option<String>,
1835    /// `Internal` The resource folder containing the document.
1836    #[serde(default, skip_serializing_if = "Option::is_none")]
1837    pub resource_folder_id: Option<String>,
1838    /// The ID of the last template applied to the document.
1839    #[serde(default, skip_serializing_if = "Option::is_none")]
1840    pub last_applied_template_id: Option<String>,
1841    /// The order of the item in the resources list.
1842    #[serde(default, skip_serializing_if = "Option::is_none")]
1843    pub sort_order: Option<f64>,
1844    /// `INTERNAL` The identifiers of the users subscribing to this document.
1845    #[serde(default, skip_serializing_if = "Option::is_none")]
1846    pub subscriber_ids: Option<Vec<String>>,
1847}
1848/// Document filtering options.
1849#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1850#[serde(rename_all = "camelCase")]
1851pub struct DocumentFilter {
1852    /// Comparator for the identifier.
1853    #[serde(default, skip_serializing_if = "Option::is_none")]
1854    pub id: Option<Box<IDComparator>>,
1855    /// Comparator for the created at date.
1856    #[serde(default, skip_serializing_if = "Option::is_none")]
1857    pub created_at: Option<Box<DateComparator>>,
1858    /// Comparator for the updated at date.
1859    #[serde(default, skip_serializing_if = "Option::is_none")]
1860    pub updated_at: Option<Box<DateComparator>>,
1861    /// Comparator for the document title.
1862    #[serde(default, skip_serializing_if = "Option::is_none")]
1863    pub title: Option<Box<StringComparator>>,
1864    /// Comparator for the document slug ID.
1865    #[serde(default, skip_serializing_if = "Option::is_none")]
1866    pub slug_id: Option<Box<StringComparator>>,
1867    /// Filters that the document's creator must satisfy.
1868    #[serde(default, skip_serializing_if = "Option::is_none")]
1869    pub creator: Option<Box<UserFilter>>,
1870    /// Filters that the document's project must satisfy.
1871    #[serde(default, skip_serializing_if = "Option::is_none")]
1872    pub project: Option<Box<ProjectFilter>>,
1873    /// Filters that the document's issue must satisfy.
1874    #[serde(default, skip_serializing_if = "Option::is_none")]
1875    pub issue: Option<Box<IssueFilter>>,
1876    /// Filters that the document's initiative must satisfy.
1877    #[serde(default, skip_serializing_if = "Option::is_none")]
1878    pub initiative: Option<Box<InitiativeFilter>>,
1879    /// Compound filters, all of which need to be matched by the document.
1880    #[serde(default, skip_serializing_if = "Option::is_none")]
1881    pub and: Option<Vec<Box<DocumentFilter>>>,
1882    /// Compound filters, one of which need to be matched by the document.
1883    #[serde(default, skip_serializing_if = "Option::is_none")]
1884    pub or: Option<Vec<Box<DocumentFilter>>>,
1885}
1886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1887#[serde(rename_all = "camelCase")]
1888pub struct DocumentUpdateInput {
1889    /// The title of the document.
1890    #[serde(default, skip_serializing_if = "Option::is_none")]
1891    pub title: Option<String>,
1892    /// The icon of the document.
1893    #[serde(default, skip_serializing_if = "Option::is_none")]
1894    pub icon: Option<String>,
1895    /// The color of the icon.
1896    #[serde(default, skip_serializing_if = "Option::is_none")]
1897    pub color: Option<String>,
1898    /// The document content as markdown.
1899    #[serde(default, skip_serializing_if = "Option::is_none")]
1900    pub content: Option<String>,
1901    /// Related project for the document.
1902    #[serde(default, skip_serializing_if = "Option::is_none")]
1903    pub project_id: Option<String>,
1904    /// `Internal` Related initiative for the document.
1905    #[serde(default, skip_serializing_if = "Option::is_none")]
1906    pub initiative_id: Option<String>,
1907    /// `Internal` Related team for the document.
1908    #[serde(default, skip_serializing_if = "Option::is_none")]
1909    pub team_id: Option<String>,
1910    /// Related issue for the document. Can be a UUID or issue identifier (e.g., 'LIN-123').
1911    #[serde(default, skip_serializing_if = "Option::is_none")]
1912    pub issue_id: Option<String>,
1913    /// `Internal` Related release for the document.
1914    #[serde(default, skip_serializing_if = "Option::is_none")]
1915    pub release_id: Option<String>,
1916    /// `Internal` Related cycle for the document.
1917    #[serde(default, skip_serializing_if = "Option::is_none")]
1918    pub cycle_id: Option<String>,
1919    /// `Internal` The resource folder containing the document.
1920    #[serde(default, skip_serializing_if = "Option::is_none")]
1921    pub resource_folder_id: Option<String>,
1922    /// The ID of the last template applied to the document.
1923    #[serde(default, skip_serializing_if = "Option::is_none")]
1924    pub last_applied_template_id: Option<String>,
1925    /// The time at which the document was hidden.
1926    #[serde(default, skip_serializing_if = "Option::is_none")]
1927    pub hidden_at: Option<chrono::DateTime<chrono::Utc>>,
1928    /// The order of the item in the resources list.
1929    #[serde(default, skip_serializing_if = "Option::is_none")]
1930    pub sort_order: Option<f64>,
1931    /// Whether the document has been trashed.
1932    #[serde(default, skip_serializing_if = "Option::is_none")]
1933    pub trashed: Option<bool>,
1934    /// `INTERNAL` The identifiers of the users subscribing to this document.
1935    #[serde(default, skip_serializing_if = "Option::is_none")]
1936    pub subscriber_ids: Option<Vec<String>>,
1937}
1938/// Issue due date sorting options.
1939#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1940#[serde(rename_all = "camelCase")]
1941pub struct DueDateSort {
1942    /// Whether nulls should be sorted first or last
1943    #[serde(default, skip_serializing_if = "Option::is_none")]
1944    pub nulls: Option<PaginationNulls>,
1945    /// The order for the individual sort
1946    #[serde(default, skip_serializing_if = "Option::is_none")]
1947    pub order: Option<PaginationSortOrder>,
1948}
1949#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1950#[serde(rename_all = "camelCase")]
1951pub struct EmailIntakeAddressCreateInput {
1952    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1953    #[serde(default, skip_serializing_if = "Option::is_none")]
1954    pub id: Option<String>,
1955    /// The type of the email address. If not provided, the backend will default to team or template.
1956    #[serde(default, skip_serializing_if = "Option::is_none")]
1957    pub r#type: Option<EmailIntakeAddressType>,
1958    /// The email address used to forward emails to the intake address.
1959    #[serde(default, skip_serializing_if = "Option::is_none")]
1960    pub forwarding_email_address: Option<String>,
1961    /// The name to be used for outgoing emails.
1962    #[serde(default, skip_serializing_if = "Option::is_none")]
1963    pub sender_name: Option<String>,
1964    /// The identifier or key of the team this email address will intake issues for.
1965    #[serde(default, skip_serializing_if = "Option::is_none")]
1966    pub team_id: Option<String>,
1967    /// The identifier of the template this email address will intake issues for.
1968    #[serde(default, skip_serializing_if = "Option::is_none")]
1969    pub template_id: Option<String>,
1970    /// Whether email replies are enabled.
1971    #[serde(default, skip_serializing_if = "Option::is_none")]
1972    pub replies_enabled: Option<bool>,
1973    /// Whether the commenter's name is included in the email replies.
1974    #[serde(default, skip_serializing_if = "Option::is_none")]
1975    pub use_user_names_in_replies: Option<bool>,
1976    /// Whether the issue created auto-reply is enabled.
1977    #[serde(default, skip_serializing_if = "Option::is_none")]
1978    pub issue_created_auto_reply_enabled: Option<bool>,
1979    /// The auto-reply message for issue created.
1980    #[serde(default, skip_serializing_if = "Option::is_none")]
1981    pub issue_created_auto_reply: Option<String>,
1982    /// Whether the issue completed auto-reply is enabled.
1983    #[serde(default, skip_serializing_if = "Option::is_none")]
1984    pub issue_completed_auto_reply_enabled: Option<bool>,
1985    /// The auto-reply message for issue completed.
1986    #[serde(default, skip_serializing_if = "Option::is_none")]
1987    pub issue_completed_auto_reply: Option<String>,
1988    /// Whether the issue canceled auto-reply is enabled.
1989    #[serde(default, skip_serializing_if = "Option::is_none")]
1990    pub issue_canceled_auto_reply_enabled: Option<bool>,
1991    /// The auto-reply message for issue canceled.
1992    #[serde(default, skip_serializing_if = "Option::is_none")]
1993    pub issue_canceled_auto_reply: Option<String>,
1994    /// Whether customer requests are enabled.
1995    #[serde(default, skip_serializing_if = "Option::is_none")]
1996    pub customer_requests_enabled: Option<bool>,
1997}
1998#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1999#[serde(rename_all = "camelCase")]
2000pub struct EmailIntakeAddressUpdateInput {
2001    /// Whether the email address is currently enabled. If set to false, the email address will be disabled and no longer accept incoming emails.
2002    #[serde(default, skip_serializing_if = "Option::is_none")]
2003    pub enabled: Option<bool>,
2004    /// The email address used to forward emails to the intake address.
2005    #[serde(default, skip_serializing_if = "Option::is_none")]
2006    pub forwarding_email_address: Option<String>,
2007    /// The name to be used for outgoing emails.
2008    #[serde(default, skip_serializing_if = "Option::is_none")]
2009    pub sender_name: Option<String>,
2010    /// The identifier or key of the team this email address will intake issues for.
2011    #[serde(default, skip_serializing_if = "Option::is_none")]
2012    pub team_id: Option<String>,
2013    /// The identifier of the template this email address will intake issues for.
2014    #[serde(default, skip_serializing_if = "Option::is_none")]
2015    pub template_id: Option<String>,
2016    /// Whether email replies are enabled.
2017    #[serde(default, skip_serializing_if = "Option::is_none")]
2018    pub replies_enabled: Option<bool>,
2019    /// Whether the commenter's name is included in the email replies.
2020    #[serde(default, skip_serializing_if = "Option::is_none")]
2021    pub use_user_names_in_replies: Option<bool>,
2022    /// Whether the issue created auto-reply is enabled.
2023    #[serde(default, skip_serializing_if = "Option::is_none")]
2024    pub issue_created_auto_reply_enabled: Option<bool>,
2025    /// The auto-reply message for issue created.
2026    #[serde(default, skip_serializing_if = "Option::is_none")]
2027    pub issue_created_auto_reply: Option<String>,
2028    /// Whether the issue completed auto-reply is enabled.
2029    #[serde(default, skip_serializing_if = "Option::is_none")]
2030    pub issue_completed_auto_reply_enabled: Option<bool>,
2031    /// Custom auto-reply message for issue completed.
2032    #[serde(default, skip_serializing_if = "Option::is_none")]
2033    pub issue_completed_auto_reply: Option<String>,
2034    /// Whether the issue canceled auto-reply is enabled.
2035    #[serde(default, skip_serializing_if = "Option::is_none")]
2036    pub issue_canceled_auto_reply_enabled: Option<bool>,
2037    /// Custom auto-reply message for issue canceled.
2038    #[serde(default, skip_serializing_if = "Option::is_none")]
2039    pub issue_canceled_auto_reply: Option<String>,
2040    /// Whether customer requests are enabled.
2041    #[serde(default, skip_serializing_if = "Option::is_none")]
2042    pub customer_requests_enabled: Option<bool>,
2043}
2044#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2045#[serde(rename_all = "camelCase")]
2046pub struct EmailUnsubscribeInput {
2047    /// Email type to unsubscribe from.
2048    #[serde(default, skip_serializing_if = "Option::is_none")]
2049    pub r#type: Option<String>,
2050    /// The user's email validation token.
2051    #[serde(default, skip_serializing_if = "Option::is_none")]
2052    pub token: Option<String>,
2053    /// The identifier of the user.
2054    #[serde(default, skip_serializing_if = "Option::is_none")]
2055    pub user_id: Option<String>,
2056}
2057#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2058#[serde(rename_all = "camelCase")]
2059pub struct EmailUserAccountAuthChallengeInput {
2060    /// The email for which to generate the magic login code.
2061    #[serde(default, skip_serializing_if = "Option::is_none")]
2062    pub email: Option<String>,
2063    /// Whether the login was requested from the desktop app.
2064    #[serde(default, skip_serializing_if = "Option::is_none")]
2065    pub is_desktop: Option<bool>,
2066    /// Auth code for the client initiating the sequence.
2067    #[serde(default, skip_serializing_if = "Option::is_none")]
2068    pub client_auth_code: Option<String>,
2069    /// The organization invite link to associate with this authentication.
2070    #[serde(default, skip_serializing_if = "Option::is_none")]
2071    pub invite_link: Option<String>,
2072    /// Whether to only return the login code. This is used by mobile apps to skip showing the login link.
2073    #[serde(default, skip_serializing_if = "Option::is_none")]
2074    pub login_code_only: Option<bool>,
2075    /// Response from the login challenge.
2076    #[serde(default, skip_serializing_if = "Option::is_none")]
2077    pub challenge_response: Option<String>,
2078}
2079#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2080#[serde(rename_all = "camelCase")]
2081pub struct EmojiCreateInput {
2082    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2083    #[serde(default, skip_serializing_if = "Option::is_none")]
2084    pub id: Option<String>,
2085    /// The name of the custom emoji.
2086    #[serde(default, skip_serializing_if = "Option::is_none")]
2087    pub name: Option<String>,
2088    /// The URL for the emoji.
2089    #[serde(default, skip_serializing_if = "Option::is_none")]
2090    pub url: Option<String>,
2091}
2092#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2093#[serde(rename_all = "camelCase")]
2094pub struct EntityExternalLinkCreateInput {
2095    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2096    #[serde(default, skip_serializing_if = "Option::is_none")]
2097    pub id: Option<String>,
2098    /// The URL of the link.
2099    #[serde(default, skip_serializing_if = "Option::is_none")]
2100    pub url: Option<String>,
2101    /// The label for the link.
2102    #[serde(default, skip_serializing_if = "Option::is_none")]
2103    pub label: Option<String>,
2104    /// The initiative associated with the link.
2105    #[serde(default, skip_serializing_if = "Option::is_none")]
2106    pub initiative_id: Option<String>,
2107    /// The project associated with the link.
2108    #[serde(default, skip_serializing_if = "Option::is_none")]
2109    pub project_id: Option<String>,
2110    /// `Internal` The team associated with the link.
2111    #[serde(default, skip_serializing_if = "Option::is_none")]
2112    pub team_id: Option<String>,
2113    /// `Internal` The release associated with the link.
2114    #[serde(default, skip_serializing_if = "Option::is_none")]
2115    pub release_id: Option<String>,
2116    /// `Internal` The cycle associated with the link.
2117    #[serde(default, skip_serializing_if = "Option::is_none")]
2118    pub cycle_id: Option<String>,
2119    /// `Internal` The resource folder containing the link.
2120    #[serde(default, skip_serializing_if = "Option::is_none")]
2121    pub resource_folder_id: Option<String>,
2122    /// The order of the item in the entities resources list.
2123    #[serde(default, skip_serializing_if = "Option::is_none")]
2124    pub sort_order: Option<f64>,
2125}
2126#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2127#[serde(rename_all = "camelCase")]
2128pub struct EntityExternalLinkUpdateInput {
2129    /// The URL of the link.
2130    #[serde(default, skip_serializing_if = "Option::is_none")]
2131    pub url: Option<String>,
2132    /// The label for the link.
2133    #[serde(default, skip_serializing_if = "Option::is_none")]
2134    pub label: Option<String>,
2135    /// The order of the item in the entities resources list.
2136    #[serde(default, skip_serializing_if = "Option::is_none")]
2137    pub sort_order: Option<f64>,
2138    /// `Internal` The resource folder containing the link.
2139    #[serde(default, skip_serializing_if = "Option::is_none")]
2140    pub resource_folder_id: Option<String>,
2141}
2142/// Comparator for estimates.
2143#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2144#[serde(rename_all = "camelCase")]
2145pub struct EstimateComparator {
2146    /// Equals constraint.
2147    #[serde(default, skip_serializing_if = "Option::is_none")]
2148    pub eq: Option<f64>,
2149    /// Not-equals constraint.
2150    #[serde(default, skip_serializing_if = "Option::is_none")]
2151    pub neq: Option<f64>,
2152    /// In-array constraint.
2153    #[serde(default, skip_serializing_if = "Option::is_none")]
2154    pub r#in: Option<Vec<f64>>,
2155    /// Not-in-array constraint.
2156    #[serde(default, skip_serializing_if = "Option::is_none")]
2157    pub nin: Option<Vec<f64>>,
2158    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
2159    #[serde(default, skip_serializing_if = "Option::is_none")]
2160    pub null: Option<bool>,
2161    /// Less-than constraint. Matches any values that are less than the given value.
2162    #[serde(default, skip_serializing_if = "Option::is_none")]
2163    pub lt: Option<f64>,
2164    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
2165    #[serde(default, skip_serializing_if = "Option::is_none")]
2166    pub lte: Option<f64>,
2167    /// Greater-than constraint. Matches any values that are greater than the given value.
2168    #[serde(default, skip_serializing_if = "Option::is_none")]
2169    pub gt: Option<f64>,
2170    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
2171    #[serde(default, skip_serializing_if = "Option::is_none")]
2172    pub gte: Option<f64>,
2173    /// Compound filters, all of which need to be matched by the estimate.
2174    #[serde(default, skip_serializing_if = "Option::is_none")]
2175    pub or: Option<Vec<Box<NullableNumberComparator>>>,
2176    /// Compound filters, one of which need to be matched by the estimate.
2177    #[serde(default, skip_serializing_if = "Option::is_none")]
2178    pub and: Option<Vec<Box<NullableNumberComparator>>>,
2179}
2180/// Issue estimate sorting options.
2181#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2182#[serde(rename_all = "camelCase")]
2183pub struct EstimateSort {
2184    /// Whether nulls should be sorted first or last
2185    #[serde(default, skip_serializing_if = "Option::is_none")]
2186    pub nulls: Option<PaginationNulls>,
2187    /// The order for the individual sort
2188    #[serde(default, skip_serializing_if = "Option::is_none")]
2189    pub order: Option<PaginationSortOrder>,
2190}
2191#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2192#[serde(rename_all = "camelCase")]
2193pub struct FavoriteCreateInput {
2194    /// The identifier. If none is provided, the backend will generate one.
2195    #[serde(default, skip_serializing_if = "Option::is_none")]
2196    pub id: Option<String>,
2197    /// The name of the favorite folder.
2198    #[serde(default, skip_serializing_if = "Option::is_none")]
2199    pub folder_name: Option<String>,
2200    /// The parent folder of the favorite.
2201    #[serde(default, skip_serializing_if = "Option::is_none")]
2202    pub parent_id: Option<String>,
2203    /// The identifier of the issue to favorite. Can be a UUID or issue identifier (e.g., 'LIN-123').
2204    #[serde(default, skip_serializing_if = "Option::is_none")]
2205    pub issue_id: Option<String>,
2206    /// The identifier of the facet to favorite.
2207    #[serde(default, skip_serializing_if = "Option::is_none")]
2208    pub facet_id: Option<String>,
2209    /// The identifier of the project to favorite.
2210    #[serde(default, skip_serializing_if = "Option::is_none")]
2211    pub project_id: Option<String>,
2212    /// The tab of the project to favorite.
2213    #[serde(default, skip_serializing_if = "Option::is_none")]
2214    pub project_tab: Option<ProjectTab>,
2215    /// The type of the predefined view to favorite.
2216    #[serde(default, skip_serializing_if = "Option::is_none")]
2217    pub predefined_view_type: Option<String>,
2218    /// The identifier of team for the predefined view to favorite.
2219    #[serde(default, skip_serializing_if = "Option::is_none")]
2220    pub predefined_view_team_id: Option<String>,
2221    /// The identifier of the cycle to favorite.
2222    #[serde(default, skip_serializing_if = "Option::is_none")]
2223    pub cycle_id: Option<String>,
2224    /// The identifier of the custom view to favorite.
2225    #[serde(default, skip_serializing_if = "Option::is_none")]
2226    pub custom_view_id: Option<String>,
2227    /// The identifier of the document to favorite.
2228    #[serde(default, skip_serializing_if = "Option::is_none")]
2229    pub document_id: Option<String>,
2230    /// `INTERNAL` The identifier of the initiative to favorite.
2231    #[serde(default, skip_serializing_if = "Option::is_none")]
2232    pub initiative_id: Option<String>,
2233    /// The tab of the initiative to favorite.
2234    #[serde(default, skip_serializing_if = "Option::is_none")]
2235    pub initiative_tab: Option<InitiativeTab>,
2236    /// The identifier of the label to favorite.
2237    #[serde(default, skip_serializing_if = "Option::is_none")]
2238    pub label_id: Option<String>,
2239    /// The identifier of the label to favorite.
2240    #[serde(default, skip_serializing_if = "Option::is_none")]
2241    pub project_label_id: Option<String>,
2242    /// The identifier of the user to favorite.
2243    #[serde(default, skip_serializing_if = "Option::is_none")]
2244    pub user_id: Option<String>,
2245    /// The position of the item in the favorites list.
2246    #[serde(default, skip_serializing_if = "Option::is_none")]
2247    pub sort_order: Option<f64>,
2248    /// The identifier of the customer to favorite.
2249    #[serde(default, skip_serializing_if = "Option::is_none")]
2250    pub customer_id: Option<String>,
2251    /// The identifier of the dashboard to favorite.
2252    #[serde(default, skip_serializing_if = "Option::is_none")]
2253    pub dashboard_id: Option<String>,
2254    /// The identifier of the pull request to favorite.
2255    #[serde(default, skip_serializing_if = "Option::is_none")]
2256    pub pull_request_id: Option<String>,
2257    /// `ALPHA` The identifier of the release to favorite.
2258    #[serde(default, skip_serializing_if = "Option::is_none")]
2259    pub release_id: Option<String>,
2260    /// `ALPHA` The identifier of the release pipeline to favorite.
2261    #[serde(default, skip_serializing_if = "Option::is_none")]
2262    pub release_pipeline_id: Option<String>,
2263}
2264#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2265#[serde(rename_all = "camelCase")]
2266pub struct FavoriteUpdateInput {
2267    /// The position of the item in the favorites list.
2268    #[serde(default, skip_serializing_if = "Option::is_none")]
2269    pub sort_order: Option<f64>,
2270    /// The identifier (in UUID v4 format) of the folder to move the favorite under.
2271    #[serde(default, skip_serializing_if = "Option::is_none")]
2272    pub parent_id: Option<String>,
2273    /// The name of the favorite folder.
2274    #[serde(default, skip_serializing_if = "Option::is_none")]
2275    pub folder_name: Option<String>,
2276}
2277/// Feed item filtering options
2278#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2279#[serde(rename_all = "camelCase")]
2280pub struct FeedItemFilter {
2281    /// Comparator for the identifier.
2282    #[serde(default, skip_serializing_if = "Option::is_none")]
2283    pub id: Option<Box<IDComparator>>,
2284    /// Comparator for the created at date.
2285    #[serde(default, skip_serializing_if = "Option::is_none")]
2286    pub created_at: Option<Box<DateComparator>>,
2287    /// Comparator for the updated at date.
2288    #[serde(default, skip_serializing_if = "Option::is_none")]
2289    pub updated_at: Option<Box<DateComparator>>,
2290    /// Filters that the feed item author must satisfy.
2291    #[serde(default, skip_serializing_if = "Option::is_none")]
2292    pub author: Option<Box<UserFilter>>,
2293    /// Comparator for the update type: initiative, project, team
2294    #[serde(default, skip_serializing_if = "Option::is_none")]
2295    pub update_type: Option<Box<StringComparator>>,
2296    /// Comparator for the project or initiative update health: onTrack, atRisk, offTrack
2297    #[serde(default, skip_serializing_if = "Option::is_none")]
2298    pub update_health: Option<Box<StringComparator>>,
2299    /// Filters that the feed item's project update must satisfy.
2300    #[serde(default, skip_serializing_if = "Option::is_none")]
2301    pub project_update: Option<Box<ProjectUpdateFilter>>,
2302    /// Filters that the related feed item initiatives must satisfy.
2303    #[serde(default, skip_serializing_if = "Option::is_none")]
2304    pub related_initiatives: Option<Box<InitiativeCollectionFilter>>,
2305    /// Filters that the related feed item team must satisfy.
2306    #[serde(default, skip_serializing_if = "Option::is_none")]
2307    pub related_teams: Option<Box<TeamCollectionFilter>>,
2308    /// Compound filters, all of which need to be matched by the feed item.
2309    #[serde(default, skip_serializing_if = "Option::is_none")]
2310    pub and: Option<Vec<Box<FeedItemFilter>>>,
2311    /// Compound filters, one of which need to be matched by the feed item.
2312    #[serde(default, skip_serializing_if = "Option::is_none")]
2313    pub or: Option<Vec<Box<FeedItemFilter>>>,
2314}
2315#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2316#[serde(rename_all = "camelCase")]
2317pub struct FrontSettingsInput {
2318    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
2319    #[serde(default, skip_serializing_if = "Option::is_none")]
2320    pub send_note_on_status_change: Option<bool>,
2321    /// Whether an internal message should be added when someone comments on an issue.
2322    #[serde(default, skip_serializing_if = "Option::is_none")]
2323    pub send_note_on_comment: Option<bool>,
2324    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
2325    #[serde(default, skip_serializing_if = "Option::is_none")]
2326    pub automate_ticket_reopening_on_completion: Option<bool>,
2327    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
2328    #[serde(default, skip_serializing_if = "Option::is_none")]
2329    pub automate_ticket_reopening_on_cancellation: Option<bool>,
2330    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
2331    #[serde(default, skip_serializing_if = "Option::is_none")]
2332    pub automate_ticket_reopening_on_comment: Option<bool>,
2333    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
2334    #[serde(default, skip_serializing_if = "Option::is_none")]
2335    pub disable_customer_requests_auto_creation: Option<bool>,
2336    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
2337    #[serde(default, skip_serializing_if = "Option::is_none")]
2338    pub automate_ticket_reopening_on_project_completion: Option<bool>,
2339    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
2340    #[serde(default, skip_serializing_if = "Option::is_none")]
2341    pub automate_ticket_reopening_on_project_cancellation: Option<bool>,
2342    /// Whether Linear Agent should be enabled for this integration.
2343    #[serde(default, skip_serializing_if = "Option::is_none")]
2344    pub enable_ai_intake: Option<bool>,
2345}
2346#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2347#[serde(rename_all = "camelCase")]
2348pub struct GitAutomationStateCreateInput {
2349    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2350    #[serde(default, skip_serializing_if = "Option::is_none")]
2351    pub id: Option<String>,
2352    /// The team associated with the automation state.
2353    #[serde(default, skip_serializing_if = "Option::is_none")]
2354    pub team_id: Option<String>,
2355    /// The associated workflow state. If null, will override default behaviour and take no action.
2356    #[serde(default, skip_serializing_if = "Option::is_none")]
2357    pub state_id: Option<String>,
2358    /// The associated target branch. If null, all branches are targeted.
2359    #[serde(default, skip_serializing_if = "Option::is_none")]
2360    pub target_branch_id: Option<String>,
2361    /// The event that triggers the automation.
2362    #[serde(default, skip_serializing_if = "Option::is_none")]
2363    pub event: Option<GitAutomationStates>,
2364}
2365#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2366#[serde(rename_all = "camelCase")]
2367pub struct GitAutomationStateUpdateInput {
2368    /// The associated workflow state.
2369    #[serde(default, skip_serializing_if = "Option::is_none")]
2370    pub state_id: Option<String>,
2371    /// The associated target branch. If null, all branches are targeted.
2372    #[serde(default, skip_serializing_if = "Option::is_none")]
2373    pub target_branch_id: Option<String>,
2374    /// The event that triggers the automation.
2375    #[serde(default, skip_serializing_if = "Option::is_none")]
2376    pub event: Option<GitAutomationStates>,
2377}
2378#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2379#[serde(rename_all = "camelCase")]
2380pub struct GitAutomationTargetBranchCreateInput {
2381    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2382    #[serde(default, skip_serializing_if = "Option::is_none")]
2383    pub id: Option<String>,
2384    /// The team associated with the Git target branch automation.
2385    #[serde(default, skip_serializing_if = "Option::is_none")]
2386    pub team_id: Option<String>,
2387    /// The target branch pattern.
2388    #[serde(default, skip_serializing_if = "Option::is_none")]
2389    pub branch_pattern: Option<String>,
2390    /// Whether the branch pattern is a regular expression.
2391    #[serde(default, skip_serializing_if = "Option::is_none")]
2392    pub is_regex: Option<bool>,
2393}
2394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2395#[serde(rename_all = "camelCase")]
2396pub struct GitAutomationTargetBranchUpdateInput {
2397    /// The target branch pattern.
2398    #[serde(default, skip_serializing_if = "Option::is_none")]
2399    pub branch_pattern: Option<String>,
2400    /// Whether the branch pattern is a regular expression.
2401    #[serde(default, skip_serializing_if = "Option::is_none")]
2402    pub is_regex: Option<bool>,
2403}
2404#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2405#[serde(rename_all = "camelCase")]
2406pub struct GitHubImportSettingsInput {
2407    /// The GitHub organization's name.
2408    #[serde(default, skip_serializing_if = "Option::is_none")]
2409    pub org_login: Option<String>,
2410    /// The avatar URL for the GitHub organization.
2411    #[serde(default, skip_serializing_if = "Option::is_none")]
2412    pub org_avatar_url: Option<String>,
2413    /// The names of the repositories connected for the GitHub integration.
2414    #[serde(default, skip_serializing_if = "Option::is_none")]
2415    pub repositories: Option<Vec<Box<GitHubRepoInput>>>,
2416    /// A map storing all available issue labels per repository
2417    #[serde(default, skip_serializing_if = "Option::is_none")]
2418    pub labels: Option<serde_json::Value>,
2419    /// The type of Github org
2420    #[serde(default, skip_serializing_if = "Option::is_none")]
2421    pub org_type: Option<GithubOrgType>,
2422}
2423#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2424#[serde(rename_all = "camelCase")]
2425pub struct GitHubPersonalSettingsInput {
2426    /// The GitHub user's name.
2427    #[serde(default, skip_serializing_if = "Option::is_none")]
2428    pub login: Option<String>,
2429}
2430#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2431#[serde(rename_all = "camelCase")]
2432pub struct GitHubRepoInput {
2433    /// The GitHub repo id.
2434    #[serde(default, skip_serializing_if = "Option::is_none")]
2435    pub id: Option<f64>,
2436    /// The full name of the repository.
2437    #[serde(default, skip_serializing_if = "Option::is_none")]
2438    pub full_name: Option<String>,
2439    /// Whether the repository is archived.
2440    #[serde(default, skip_serializing_if = "Option::is_none")]
2441    pub archived: Option<bool>,
2442}
2443#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2444#[serde(rename_all = "camelCase")]
2445pub struct GitHubRepoMappingInput {
2446    /// The unique identifier for this mapping.
2447    #[serde(default, skip_serializing_if = "Option::is_none")]
2448    pub id: Option<String>,
2449    /// The Linear team id to map to the given project.
2450    #[serde(default, skip_serializing_if = "Option::is_none")]
2451    pub linear_team_id: Option<String>,
2452    /// The GitHub repo id.
2453    #[serde(default, skip_serializing_if = "Option::is_none")]
2454    pub git_hub_repo_id: Option<f64>,
2455    /// Labels to filter incoming GitHub issue creation by.
2456    #[serde(default, skip_serializing_if = "Option::is_none")]
2457    pub git_hub_labels: Option<Vec<String>>,
2458    /// Whether the sync for this mapping is bidirectional.
2459    #[serde(default, skip_serializing_if = "Option::is_none")]
2460    pub bidirectional: Option<bool>,
2461    /// Whether this mapping is the default one for issue creation.
2462    #[serde(default, skip_serializing_if = "Option::is_none")]
2463    pub default: Option<bool>,
2464}
2465#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2466#[serde(rename_all = "camelCase")]
2467pub struct GitHubSettingsInput {
2468    #[serde(default, skip_serializing_if = "Option::is_none")]
2469    pub pull_request_review_tool: Option<PullRequestReviewTool>,
2470    /// The avatar URL for the GitHub organization.
2471    #[serde(default, skip_serializing_if = "Option::is_none")]
2472    pub org_avatar_url: Option<String>,
2473    /// The GitHub organization's name.
2474    #[serde(default, skip_serializing_if = "Option::is_none")]
2475    pub org_login: Option<String>,
2476    /// The names of the repositories connected for the GitHub integration.
2477    #[serde(default, skip_serializing_if = "Option::is_none")]
2478    pub repositories: Option<Vec<Box<GitHubRepoInput>>>,
2479    /// Mapping of team to repository for syncing.
2480    #[serde(default, skip_serializing_if = "Option::is_none")]
2481    pub repositories_mapping: Option<Vec<Box<GitHubRepoMappingInput>>>,
2482    /// The type of Github org
2483    #[serde(default, skip_serializing_if = "Option::is_none")]
2484    pub org_type: Option<GithubOrgType>,
2485    /// Whether the integration has code access
2486    #[serde(default, skip_serializing_if = "Option::is_none")]
2487    pub code_access: Option<bool>,
2488}
2489#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2490#[serde(rename_all = "camelCase")]
2491pub struct GitLabSettingsInput {
2492    /// The self-hosted URL of the GitLab instance.
2493    #[serde(default, skip_serializing_if = "Option::is_none")]
2494    pub url: Option<String>,
2495    /// Whether the token is limited to a read-only scope.
2496    #[serde(default, skip_serializing_if = "Option::is_none")]
2497    pub readonly: Option<bool>,
2498    /// The ISO timestamp the GitLab access token expires.
2499    #[serde(default, skip_serializing_if = "Option::is_none")]
2500    pub expires_at: Option<String>,
2501}
2502#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2503#[serde(rename_all = "camelCase")]
2504pub struct GongRecordingImportConfigInput {
2505    /// The team ID to create issues in for imported recordings. Set to null to disable import.
2506    #[serde(default, skip_serializing_if = "Option::is_none")]
2507    pub team_id: Option<String>,
2508}
2509#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2510#[serde(rename_all = "camelCase")]
2511pub struct GongSettingsInput {
2512    /// Configuration for recording import.
2513    #[serde(default, skip_serializing_if = "Option::is_none")]
2514    pub import_config: Option<Box<GongRecordingImportConfigInput>>,
2515}
2516#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2517#[serde(rename_all = "camelCase")]
2518pub struct GoogleSheetsExportSettings {
2519    /// Whether the export is enabled.
2520    #[serde(default, skip_serializing_if = "Option::is_none")]
2521    pub enabled: Option<bool>,
2522    /// The ID of the exported Google Sheet.
2523    #[serde(default, skip_serializing_if = "Option::is_none")]
2524    pub spreadsheet_id: Option<String>,
2525    /// The URL of the exported Google Sheet.
2526    #[serde(default, skip_serializing_if = "Option::is_none")]
2527    pub spreadsheet_url: Option<String>,
2528    /// The ID of the target sheet (tab) within the Google Sheet.
2529    #[serde(default, skip_serializing_if = "Option::is_none")]
2530    pub sheet_id: Option<f64>,
2531    /// The date of the most recent export.
2532    #[serde(default, skip_serializing_if = "Option::is_none")]
2533    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2534}
2535#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2536#[serde(rename_all = "camelCase")]
2537pub struct GoogleSheetsSettingsInput {
2538    /// `Deprecated` The ID of the exported Google Sheet.
2539    #[serde(default, skip_serializing_if = "Option::is_none")]
2540    pub spreadsheet_id: Option<String>,
2541    /// `Deprecated` The URL of the exported Google Sheet.
2542    #[serde(default, skip_serializing_if = "Option::is_none")]
2543    pub spreadsheet_url: Option<String>,
2544    /// `Deprecated` The ID of the target sheet (tab) within the Google Sheet.
2545    #[serde(default, skip_serializing_if = "Option::is_none")]
2546    pub sheet_id: Option<f64>,
2547    /// `Deprecated` The date of the most recent export.
2548    #[serde(default, skip_serializing_if = "Option::is_none")]
2549    pub updated_issues_at: Option<chrono::DateTime<chrono::Utc>>,
2550    /// The export settings for issues.
2551    #[serde(default, skip_serializing_if = "Option::is_none")]
2552    pub issue: Option<Box<GoogleSheetsExportSettings>>,
2553    /// The export settings for projects.
2554    #[serde(default, skip_serializing_if = "Option::is_none")]
2555    pub project: Option<Box<GoogleSheetsExportSettings>>,
2556    /// The export settings for initiatives.
2557    #[serde(default, skip_serializing_if = "Option::is_none")]
2558    pub initiative: Option<Box<GoogleSheetsExportSettings>>,
2559}
2560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2561#[serde(rename_all = "camelCase")]
2562pub struct GoogleUserAccountAuthInput {
2563    /// Code returned from Google's OAuth flow.
2564    #[serde(default, skip_serializing_if = "Option::is_none")]
2565    pub code: Option<String>,
2566    /// The URI to redirect the user to.
2567    #[serde(default, skip_serializing_if = "Option::is_none")]
2568    pub redirect_uri: Option<String>,
2569    /// The timezone of the user's browser.
2570    #[serde(default, skip_serializing_if = "Option::is_none")]
2571    pub timezone: Option<String>,
2572    /// An optional invite link for an organization used to populate available organizations.
2573    #[serde(default, skip_serializing_if = "Option::is_none")]
2574    pub invite_link: Option<String>,
2575    /// An optional parameter to disable new user signup and force login. Default: false.
2576    #[serde(default, skip_serializing_if = "Option::is_none")]
2577    pub disallow_signup: Option<bool>,
2578}
2579/// Comparator for identifiers.
2580#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2581#[serde(rename_all = "camelCase")]
2582pub struct IDComparator {
2583    /// Equals constraint.
2584    #[serde(default, skip_serializing_if = "Option::is_none")]
2585    pub eq: Option<String>,
2586    /// Not-equals constraint.
2587    #[serde(default, skip_serializing_if = "Option::is_none")]
2588    pub neq: Option<String>,
2589    /// In-array constraint.
2590    #[serde(default, skip_serializing_if = "Option::is_none")]
2591    pub r#in: Option<Vec<String>>,
2592    /// Not-in-array constraint.
2593    #[serde(default, skip_serializing_if = "Option::is_none")]
2594    pub nin: Option<Vec<String>>,
2595}
2596#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2597#[serde(rename_all = "camelCase")]
2598pub struct InheritanceEntityMapping {
2599    /// Mapping of the WorkflowState ID to the new WorkflowState ID.
2600    #[serde(default, skip_serializing_if = "Option::is_none")]
2601    pub workflow_states: Option<serde_json::Value>,
2602    /// Mapping of the IssueLabel ID to the new IssueLabel name.
2603    #[serde(default, skip_serializing_if = "Option::is_none")]
2604    pub issue_labels: Option<serde_json::Value>,
2605}
2606/// Initiative collection filtering options.
2607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2608#[serde(rename_all = "camelCase")]
2609pub struct InitiativeCollectionFilter {
2610    /// Comparator for the identifier.
2611    #[serde(default, skip_serializing_if = "Option::is_none")]
2612    pub id: Option<Box<IDComparator>>,
2613    /// Comparator for the created at date.
2614    #[serde(default, skip_serializing_if = "Option::is_none")]
2615    pub created_at: Option<Box<DateComparator>>,
2616    /// Comparator for the updated at date.
2617    #[serde(default, skip_serializing_if = "Option::is_none")]
2618    pub updated_at: Option<Box<DateComparator>>,
2619    /// Comparator for the initiative name.
2620    #[serde(default, skip_serializing_if = "Option::is_none")]
2621    pub name: Option<Box<StringComparator>>,
2622    /// Comparator for the initiative slug ID.
2623    #[serde(default, skip_serializing_if = "Option::is_none")]
2624    pub slug_id: Option<Box<StringComparator>>,
2625    /// Filters that the initiative creator must satisfy.
2626    #[serde(default, skip_serializing_if = "Option::is_none")]
2627    pub creator: Option<Box<NullableUserFilter>>,
2628    /// Comparator for the initiative status: Planned, Active, Completed
2629    #[serde(default, skip_serializing_if = "Option::is_none")]
2630    pub status: Option<Box<StringComparator>>,
2631    /// Filters that the initiative teams must satisfy.
2632    #[serde(default, skip_serializing_if = "Option::is_none")]
2633    pub teams: Option<Box<TeamCollectionFilter>>,
2634    /// Filters that the initiative owner must satisfy.
2635    #[serde(default, skip_serializing_if = "Option::is_none")]
2636    pub owner: Option<Box<NullableUserFilter>>,
2637    /// Comparator for the initiative target date.
2638    #[serde(default, skip_serializing_if = "Option::is_none")]
2639    pub target_date: Option<Box<NullableDateComparator>>,
2640    /// Comparator for the initiative health: onTrack, atRisk, offTrack
2641    #[serde(default, skip_serializing_if = "Option::is_none")]
2642    pub health: Option<Box<StringComparator>>,
2643    /// Comparator for the initiative health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
2644    #[serde(default, skip_serializing_if = "Option::is_none")]
2645    pub health_with_age: Option<Box<StringComparator>>,
2646    /// Comparator for the initiative activity type.
2647    #[serde(default, skip_serializing_if = "Option::is_none")]
2648    pub activity_type: Option<Box<StringComparator>>,
2649    /// Filters that the initiative must be an ancestor of.
2650    #[serde(default, skip_serializing_if = "Option::is_none")]
2651    pub ancestors: Option<Box<InitiativeCollectionFilter>>,
2652    /// Compound filters, all of which need to be matched by the initiative.
2653    #[serde(default, skip_serializing_if = "Option::is_none")]
2654    pub and: Option<Vec<Box<InitiativeCollectionFilter>>>,
2655    /// Compound filters, one of which need to be matched by the initiative.
2656    #[serde(default, skip_serializing_if = "Option::is_none")]
2657    pub or: Option<Vec<Box<InitiativeCollectionFilter>>>,
2658    /// Filters that needs to be matched by some initiatives.
2659    #[serde(default, skip_serializing_if = "Option::is_none")]
2660    pub some: Option<Box<InitiativeFilter>>,
2661    /// Filters that needs to be matched by all initiatives.
2662    #[serde(default, skip_serializing_if = "Option::is_none")]
2663    pub every: Option<Box<InitiativeFilter>>,
2664    /// Comparator for the collection length.
2665    #[serde(default, skip_serializing_if = "Option::is_none")]
2666    pub length: Option<Box<NumberComparator>>,
2667}
2668/// The properties of the initiative to create.
2669#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2670#[serde(rename_all = "camelCase")]
2671pub struct InitiativeCreateInput {
2672    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2673    #[serde(default, skip_serializing_if = "Option::is_none")]
2674    pub id: Option<String>,
2675    /// The name of the initiative.
2676    #[serde(default, skip_serializing_if = "Option::is_none")]
2677    pub name: Option<String>,
2678    /// The description of the initiative.
2679    #[serde(default, skip_serializing_if = "Option::is_none")]
2680    pub description: Option<String>,
2681    /// The owner of the initiative.
2682    #[serde(default, skip_serializing_if = "Option::is_none")]
2683    pub owner_id: Option<String>,
2684    /// The sort order of the initiative within the organization.
2685    #[serde(default, skip_serializing_if = "Option::is_none")]
2686    pub sort_order: Option<f64>,
2687    /// The initiative's color.
2688    #[serde(default, skip_serializing_if = "Option::is_none")]
2689    pub color: Option<String>,
2690    /// The initiative's icon.
2691    #[serde(default, skip_serializing_if = "Option::is_none")]
2692    pub icon: Option<String>,
2693    /// The initiative's status.
2694    #[serde(default, skip_serializing_if = "Option::is_none")]
2695    pub status: Option<InitiativeStatus>,
2696    /// The estimated completion date of the initiative.
2697    #[serde(default, skip_serializing_if = "Option::is_none")]
2698    pub target_date: Option<chrono::NaiveDate>,
2699    /// The resolution of the initiative's estimated completion date.
2700    #[serde(default, skip_serializing_if = "Option::is_none")]
2701    pub target_date_resolution: Option<DateResolutionType>,
2702    /// The initiative's content in markdown format.
2703    #[serde(default, skip_serializing_if = "Option::is_none")]
2704    pub content: Option<String>,
2705}
2706/// Initiative creation date sorting options.
2707#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2708#[serde(rename_all = "camelCase")]
2709pub struct InitiativeCreatedAtSort {
2710    /// Whether nulls should be sorted first or last
2711    #[serde(default, skip_serializing_if = "Option::is_none")]
2712    pub nulls: Option<PaginationNulls>,
2713    /// The order for the individual sort
2714    #[serde(default, skip_serializing_if = "Option::is_none")]
2715    pub order: Option<PaginationSortOrder>,
2716}
2717/// Initiative filtering options.
2718#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2719#[serde(rename_all = "camelCase")]
2720pub struct InitiativeFilter {
2721    /// Comparator for the identifier.
2722    #[serde(default, skip_serializing_if = "Option::is_none")]
2723    pub id: Option<Box<IDComparator>>,
2724    /// Comparator for the created at date.
2725    #[serde(default, skip_serializing_if = "Option::is_none")]
2726    pub created_at: Option<Box<DateComparator>>,
2727    /// Comparator for the updated at date.
2728    #[serde(default, skip_serializing_if = "Option::is_none")]
2729    pub updated_at: Option<Box<DateComparator>>,
2730    /// Comparator for the initiative name.
2731    #[serde(default, skip_serializing_if = "Option::is_none")]
2732    pub name: Option<Box<StringComparator>>,
2733    /// Comparator for the initiative slug ID.
2734    #[serde(default, skip_serializing_if = "Option::is_none")]
2735    pub slug_id: Option<Box<StringComparator>>,
2736    /// Filters that the initiative creator must satisfy.
2737    #[serde(default, skip_serializing_if = "Option::is_none")]
2738    pub creator: Option<Box<NullableUserFilter>>,
2739    /// Comparator for the initiative status: Planned, Active, Completed
2740    #[serde(default, skip_serializing_if = "Option::is_none")]
2741    pub status: Option<Box<StringComparator>>,
2742    /// Filters that the initiative teams must satisfy.
2743    #[serde(default, skip_serializing_if = "Option::is_none")]
2744    pub teams: Option<Box<TeamCollectionFilter>>,
2745    /// Filters that the initiative owner must satisfy.
2746    #[serde(default, skip_serializing_if = "Option::is_none")]
2747    pub owner: Option<Box<NullableUserFilter>>,
2748    /// Comparator for the initiative target date.
2749    #[serde(default, skip_serializing_if = "Option::is_none")]
2750    pub target_date: Option<Box<NullableDateComparator>>,
2751    /// Comparator for the initiative health: onTrack, atRisk, offTrack
2752    #[serde(default, skip_serializing_if = "Option::is_none")]
2753    pub health: Option<Box<StringComparator>>,
2754    /// Comparator for the initiative health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
2755    #[serde(default, skip_serializing_if = "Option::is_none")]
2756    pub health_with_age: Option<Box<StringComparator>>,
2757    /// Comparator for the initiative activity type.
2758    #[serde(default, skip_serializing_if = "Option::is_none")]
2759    pub activity_type: Option<Box<StringComparator>>,
2760    /// Filters that the initiative must be an ancestor of.
2761    #[serde(default, skip_serializing_if = "Option::is_none")]
2762    pub ancestors: Option<Box<InitiativeCollectionFilter>>,
2763    /// Compound filters, all of which need to be matched by the initiative.
2764    #[serde(default, skip_serializing_if = "Option::is_none")]
2765    pub and: Option<Vec<Box<InitiativeFilter>>>,
2766    /// Compound filters, one of which need to be matched by the initiative.
2767    #[serde(default, skip_serializing_if = "Option::is_none")]
2768    pub or: Option<Vec<Box<InitiativeFilter>>>,
2769}
2770/// Initiative health sorting options.
2771#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2772#[serde(rename_all = "camelCase")]
2773pub struct InitiativeHealthSort {
2774    /// Whether nulls should be sorted first or last
2775    #[serde(default, skip_serializing_if = "Option::is_none")]
2776    pub nulls: Option<PaginationNulls>,
2777    /// The order for the individual sort
2778    #[serde(default, skip_serializing_if = "Option::is_none")]
2779    pub order: Option<PaginationSortOrder>,
2780}
2781/// Initiative health update date sorting options.
2782#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2783#[serde(rename_all = "camelCase")]
2784pub struct InitiativeHealthUpdatedAtSort {
2785    /// Whether nulls should be sorted first or last
2786    #[serde(default, skip_serializing_if = "Option::is_none")]
2787    pub nulls: Option<PaginationNulls>,
2788    /// The order for the individual sort
2789    #[serde(default, skip_serializing_if = "Option::is_none")]
2790    pub order: Option<PaginationSortOrder>,
2791}
2792/// Initiative manual sorting options.
2793#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2794#[serde(rename_all = "camelCase")]
2795pub struct InitiativeManualSort {
2796    /// Whether nulls should be sorted first or last
2797    #[serde(default, skip_serializing_if = "Option::is_none")]
2798    pub nulls: Option<PaginationNulls>,
2799    /// The order for the individual sort
2800    #[serde(default, skip_serializing_if = "Option::is_none")]
2801    pub order: Option<PaginationSortOrder>,
2802}
2803/// Initiative name sorting options.
2804#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2805#[serde(rename_all = "camelCase")]
2806pub struct InitiativeNameSort {
2807    /// Whether nulls should be sorted first or last
2808    #[serde(default, skip_serializing_if = "Option::is_none")]
2809    pub nulls: Option<PaginationNulls>,
2810    /// The order for the individual sort
2811    #[serde(default, skip_serializing_if = "Option::is_none")]
2812    pub order: Option<PaginationSortOrder>,
2813}
2814/// Initiative owner sorting options.
2815#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2816#[serde(rename_all = "camelCase")]
2817pub struct InitiativeOwnerSort {
2818    /// Whether nulls should be sorted first or last
2819    #[serde(default, skip_serializing_if = "Option::is_none")]
2820    pub nulls: Option<PaginationNulls>,
2821    /// The order for the individual sort
2822    #[serde(default, skip_serializing_if = "Option::is_none")]
2823    pub order: Option<PaginationSortOrder>,
2824}
2825#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2826#[serde(rename_all = "camelCase")]
2827pub struct InitiativeRelationCreateInput {
2828    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2829    #[serde(default, skip_serializing_if = "Option::is_none")]
2830    pub id: Option<String>,
2831    /// The identifier of the parent initiative.
2832    #[serde(default, skip_serializing_if = "Option::is_none")]
2833    pub initiative_id: Option<String>,
2834    /// The identifier of the child initiative.
2835    #[serde(default, skip_serializing_if = "Option::is_none")]
2836    pub related_initiative_id: Option<String>,
2837    /// The sort order of the initiative relation.
2838    #[serde(default, skip_serializing_if = "Option::is_none")]
2839    pub sort_order: Option<f64>,
2840}
2841/// The properties of the initiativeRelation to update.
2842#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2843#[serde(rename_all = "camelCase")]
2844pub struct InitiativeRelationUpdateInput {
2845    /// The sort order of the initiative relation.
2846    #[serde(default, skip_serializing_if = "Option::is_none")]
2847    pub sort_order: Option<f64>,
2848}
2849/// Initiative sorting options.
2850#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2851#[serde(rename_all = "camelCase")]
2852pub struct InitiativeSortInput {
2853    /// Sort by initiative name.
2854    #[serde(default, skip_serializing_if = "Option::is_none")]
2855    pub name: Option<Box<InitiativeNameSort>>,
2856    /// Sort by manual order.
2857    #[serde(default, skip_serializing_if = "Option::is_none")]
2858    pub manual: Option<Box<InitiativeManualSort>>,
2859    /// Sort by initiative update date.
2860    #[serde(default, skip_serializing_if = "Option::is_none")]
2861    pub updated_at: Option<Box<InitiativeUpdatedAtSort>>,
2862    /// Sort by initiative creation date.
2863    #[serde(default, skip_serializing_if = "Option::is_none")]
2864    pub created_at: Option<Box<InitiativeCreatedAtSort>>,
2865    /// Sort by initiative target date.
2866    #[serde(default, skip_serializing_if = "Option::is_none")]
2867    pub target_date: Option<Box<InitiativeTargetDateSort>>,
2868    /// Sort by initiative health status.
2869    #[serde(default, skip_serializing_if = "Option::is_none")]
2870    pub health: Option<Box<InitiativeHealthSort>>,
2871    /// Sort by initiative health update date.
2872    #[serde(default, skip_serializing_if = "Option::is_none")]
2873    pub health_updated_at: Option<Box<InitiativeHealthUpdatedAtSort>>,
2874    /// Sort by initiative owner name.
2875    #[serde(default, skip_serializing_if = "Option::is_none")]
2876    pub owner: Option<Box<InitiativeOwnerSort>>,
2877}
2878/// Initiative target date sorting options.
2879#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2880#[serde(rename_all = "camelCase")]
2881pub struct InitiativeTargetDateSort {
2882    /// Whether nulls should be sorted first or last
2883    #[serde(default, skip_serializing_if = "Option::is_none")]
2884    pub nulls: Option<PaginationNulls>,
2885    /// The order for the individual sort
2886    #[serde(default, skip_serializing_if = "Option::is_none")]
2887    pub order: Option<PaginationSortOrder>,
2888}
2889/// The properties of the initiativeToProject to create.
2890#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2891#[serde(rename_all = "camelCase")]
2892pub struct InitiativeToProjectCreateInput {
2893    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2894    #[serde(default, skip_serializing_if = "Option::is_none")]
2895    pub id: Option<String>,
2896    /// The identifier of the project.
2897    #[serde(default, skip_serializing_if = "Option::is_none")]
2898    pub project_id: Option<String>,
2899    /// The identifier of the initiative.
2900    #[serde(default, skip_serializing_if = "Option::is_none")]
2901    pub initiative_id: Option<String>,
2902    /// The sort order for the project within its organization.
2903    #[serde(default, skip_serializing_if = "Option::is_none")]
2904    pub sort_order: Option<f64>,
2905}
2906/// The properties of the initiativeToProject to update.
2907#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2908#[serde(rename_all = "camelCase")]
2909pub struct InitiativeToProjectUpdateInput {
2910    /// The sort order for the project within its organization.
2911    #[serde(default, skip_serializing_if = "Option::is_none")]
2912    pub sort_order: Option<f64>,
2913}
2914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2915#[serde(rename_all = "camelCase")]
2916pub struct InitiativeUpdateCreateInput {
2917    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2918    #[serde(default, skip_serializing_if = "Option::is_none")]
2919    pub id: Option<String>,
2920    /// The content of the update in markdown format.
2921    #[serde(default, skip_serializing_if = "Option::is_none")]
2922    pub body: Option<String>,
2923    /// `Internal` The content of the update as a Prosemirror document.
2924    #[serde(default, skip_serializing_if = "Option::is_none")]
2925    pub body_data: Option<serde_json::Value>,
2926    /// The health of the initiative at the time of the update.
2927    #[serde(default, skip_serializing_if = "Option::is_none")]
2928    pub health: Option<InitiativeUpdateHealthType>,
2929    /// The initiative to associate the update with.
2930    #[serde(default, skip_serializing_if = "Option::is_none")]
2931    pub initiative_id: Option<String>,
2932    /// Whether the diff between the current update and the previous one should be hidden.
2933    #[serde(default, skip_serializing_if = "Option::is_none")]
2934    pub is_diff_hidden: Option<bool>,
2935}
2936/// Options for filtering initiative updates.
2937#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2938#[serde(rename_all = "camelCase")]
2939pub struct InitiativeUpdateFilter {
2940    /// Comparator for the identifier.
2941    #[serde(default, skip_serializing_if = "Option::is_none")]
2942    pub id: Option<Box<IDComparator>>,
2943    /// Comparator for the created at date.
2944    #[serde(default, skip_serializing_if = "Option::is_none")]
2945    pub created_at: Option<Box<DateComparator>>,
2946    /// Comparator for the updated at date.
2947    #[serde(default, skip_serializing_if = "Option::is_none")]
2948    pub updated_at: Option<Box<DateComparator>>,
2949    /// Filters that the initiative update creator must satisfy.
2950    #[serde(default, skip_serializing_if = "Option::is_none")]
2951    pub user: Option<Box<UserFilter>>,
2952    /// Filters that the initiative update initiative must satisfy.
2953    #[serde(default, skip_serializing_if = "Option::is_none")]
2954    pub initiative: Option<Box<InitiativeFilter>>,
2955    /// Filters that the initiative updates reactions must satisfy.
2956    #[serde(default, skip_serializing_if = "Option::is_none")]
2957    pub reactions: Option<Box<ReactionCollectionFilter>>,
2958    /// Compound filters, all of which need to be matched by the InitiativeUpdate.
2959    #[serde(default, skip_serializing_if = "Option::is_none")]
2960    pub and: Option<Vec<Box<InitiativeUpdateFilter>>>,
2961    /// Compound filters, one of which need to be matched by the InitiativeUpdate.
2962    #[serde(default, skip_serializing_if = "Option::is_none")]
2963    pub or: Option<Vec<Box<InitiativeUpdateFilter>>>,
2964}
2965/// The properties of the initiative to update.
2966#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2967#[serde(rename_all = "camelCase")]
2968pub struct InitiativeUpdateInput {
2969    /// The name of the initiative.
2970    #[serde(default, skip_serializing_if = "Option::is_none")]
2971    pub name: Option<String>,
2972    /// The description of the initiative.
2973    #[serde(default, skip_serializing_if = "Option::is_none")]
2974    pub description: Option<String>,
2975    /// The owner of the initiative.
2976    #[serde(default, skip_serializing_if = "Option::is_none")]
2977    pub owner_id: Option<String>,
2978    /// The sort order of the initiative within the organization.
2979    #[serde(default, skip_serializing_if = "Option::is_none")]
2980    pub sort_order: Option<f64>,
2981    /// The initiative's color.
2982    #[serde(default, skip_serializing_if = "Option::is_none")]
2983    pub color: Option<String>,
2984    /// The initiative's icon.
2985    #[serde(default, skip_serializing_if = "Option::is_none")]
2986    pub icon: Option<String>,
2987    /// The estimated completion date of the initiative.
2988    #[serde(default, skip_serializing_if = "Option::is_none")]
2989    pub target_date: Option<chrono::NaiveDate>,
2990    /// The initiative's status.
2991    #[serde(default, skip_serializing_if = "Option::is_none")]
2992    pub status: Option<InitiativeStatus>,
2993    /// The resolution of the initiative's estimated completion date.
2994    #[serde(default, skip_serializing_if = "Option::is_none")]
2995    pub target_date_resolution: Option<DateResolutionType>,
2996    /// Whether the initiative has been trashed.
2997    #[serde(default, skip_serializing_if = "Option::is_none")]
2998    pub trashed: Option<bool>,
2999    /// The initiative's content in markdown format.
3000    #[serde(default, skip_serializing_if = "Option::is_none")]
3001    pub content: Option<String>,
3002    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
3003    #[serde(default, skip_serializing_if = "Option::is_none")]
3004    pub update_reminder_frequency_in_weeks: Option<f64>,
3005    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
3006    #[serde(default, skip_serializing_if = "Option::is_none")]
3007    pub update_reminder_frequency: Option<f64>,
3008    /// The frequency resolution.
3009    #[serde(default, skip_serializing_if = "Option::is_none")]
3010    pub frequency_resolution: Option<FrequencyResolutionType>,
3011    /// The day at which to prompt for updates.
3012    #[serde(default, skip_serializing_if = "Option::is_none")]
3013    pub update_reminders_day: Option<Day>,
3014    /// The hour at which to prompt for updates.
3015    #[serde(default, skip_serializing_if = "Option::is_none")]
3016    pub update_reminders_hour: Option<i64>,
3017}
3018#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3019#[serde(rename_all = "camelCase")]
3020pub struct InitiativeUpdateUpdateInput {
3021    /// The content of the update in markdown format.
3022    #[serde(default, skip_serializing_if = "Option::is_none")]
3023    pub body: Option<String>,
3024    /// The content of the update as a Prosemirror document.
3025    #[serde(default, skip_serializing_if = "Option::is_none")]
3026    pub body_data: Option<serde_json::Value>,
3027    /// The health of the initiative at the time of the update.
3028    #[serde(default, skip_serializing_if = "Option::is_none")]
3029    pub health: Option<InitiativeUpdateHealthType>,
3030    /// Whether the diff between the current update and the previous one should be hidden.
3031    #[serde(default, skip_serializing_if = "Option::is_none")]
3032    pub is_diff_hidden: Option<bool>,
3033}
3034/// Initiative update date sorting options.
3035#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3036#[serde(rename_all = "camelCase")]
3037pub struct InitiativeUpdatedAtSort {
3038    /// Whether nulls should be sorted first or last
3039    #[serde(default, skip_serializing_if = "Option::is_none")]
3040    pub nulls: Option<PaginationNulls>,
3041    /// The order for the individual sort
3042    #[serde(default, skip_serializing_if = "Option::is_none")]
3043    pub order: Option<PaginationSortOrder>,
3044}
3045#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3046#[serde(rename_all = "camelCase")]
3047pub struct IntegrationCustomerDataAttributesRefreshInput {
3048    /// The integration service to refresh customer data attributes from.
3049    #[serde(default, skip_serializing_if = "Option::is_none")]
3050    pub service: Option<String>,
3051}
3052#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3053#[serde(rename_all = "camelCase")]
3054pub struct IntegrationRequestInput {
3055    /// Email associated with the request.
3056    #[serde(default, skip_serializing_if = "Option::is_none")]
3057    pub email: Option<String>,
3058    /// Name of the requested integration.
3059    #[serde(default, skip_serializing_if = "Option::is_none")]
3060    pub name: Option<String>,
3061}
3062#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3063#[serde(rename_all = "camelCase")]
3064pub struct IntegrationSettingsInput {
3065    #[serde(default, skip_serializing_if = "Option::is_none")]
3066    pub slack: Option<Box<SlackSettingsInput>>,
3067    #[serde(default, skip_serializing_if = "Option::is_none")]
3068    pub slack_asks: Option<Box<SlackAsksSettingsInput>>,
3069    #[serde(default, skip_serializing_if = "Option::is_none")]
3070    pub slack_post: Option<Box<SlackPostSettingsInput>>,
3071    #[serde(default, skip_serializing_if = "Option::is_none")]
3072    pub slack_project_post: Option<Box<SlackPostSettingsInput>>,
3073    #[serde(default, skip_serializing_if = "Option::is_none")]
3074    pub slack_initiative_post: Option<Box<SlackPostSettingsInput>>,
3075    #[serde(default, skip_serializing_if = "Option::is_none")]
3076    pub slack_custom_view_notifications: Option<Box<SlackPostSettingsInput>>,
3077    #[serde(default, skip_serializing_if = "Option::is_none")]
3078    pub slack_org_project_updates_post: Option<Box<SlackPostSettingsInput>>,
3079    #[serde(default, skip_serializing_if = "Option::is_none")]
3080    pub slack_org_initiative_updates_post: Option<Box<SlackPostSettingsInput>>,
3081    #[serde(default, skip_serializing_if = "Option::is_none")]
3082    pub google_sheets: Option<Box<GoogleSheetsSettingsInput>>,
3083    #[serde(default, skip_serializing_if = "Option::is_none")]
3084    pub git_hub: Option<Box<GitHubSettingsInput>>,
3085    #[serde(default, skip_serializing_if = "Option::is_none")]
3086    pub git_hub_import: Option<Box<GitHubImportSettingsInput>>,
3087    #[serde(default, skip_serializing_if = "Option::is_none")]
3088    pub git_hub_personal: Option<Box<GitHubPersonalSettingsInput>>,
3089    #[serde(default, skip_serializing_if = "Option::is_none")]
3090    pub git_lab: Option<Box<GitLabSettingsInput>>,
3091    #[serde(default, skip_serializing_if = "Option::is_none")]
3092    pub sentry: Option<Box<SentrySettingsInput>>,
3093    #[serde(default, skip_serializing_if = "Option::is_none")]
3094    pub zendesk: Option<Box<ZendeskSettingsInput>>,
3095    #[serde(default, skip_serializing_if = "Option::is_none")]
3096    pub intercom: Option<Box<IntercomSettingsInput>>,
3097    #[serde(default, skip_serializing_if = "Option::is_none")]
3098    pub front: Option<Box<FrontSettingsInput>>,
3099    #[serde(default, skip_serializing_if = "Option::is_none")]
3100    pub gong: Option<Box<GongSettingsInput>>,
3101    #[serde(default, skip_serializing_if = "Option::is_none")]
3102    pub microsoft_teams: Option<Box<MicrosoftTeamsSettingsInput>>,
3103    #[serde(default, skip_serializing_if = "Option::is_none")]
3104    pub jira: Option<Box<JiraSettingsInput>>,
3105    #[serde(default, skip_serializing_if = "Option::is_none")]
3106    pub notion: Option<Box<NotionSettingsInput>>,
3107    #[serde(default, skip_serializing_if = "Option::is_none")]
3108    pub opsgenie: Option<Box<OpsgenieInput>>,
3109    #[serde(default, skip_serializing_if = "Option::is_none")]
3110    pub pager_duty: Option<Box<PagerDutyInput>>,
3111    #[serde(default, skip_serializing_if = "Option::is_none")]
3112    pub launch_darkly: Option<Box<LaunchDarklySettingsInput>>,
3113    #[serde(default, skip_serializing_if = "Option::is_none")]
3114    pub jira_personal: Option<Box<JiraPersonalSettingsInput>>,
3115    #[serde(default, skip_serializing_if = "Option::is_none")]
3116    pub salesforce: Option<Box<SalesforceSettingsInput>>,
3117}
3118#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3119#[serde(rename_all = "camelCase")]
3120pub struct IntegrationTemplateCreateInput {
3121    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3122    #[serde(default, skip_serializing_if = "Option::is_none")]
3123    pub id: Option<String>,
3124    /// The identifier of the integration.
3125    #[serde(default, skip_serializing_if = "Option::is_none")]
3126    pub integration_id: Option<String>,
3127    /// The identifier of the template.
3128    #[serde(default, skip_serializing_if = "Option::is_none")]
3129    pub template_id: Option<String>,
3130    /// The foreign identifier in the other service.
3131    #[serde(default, skip_serializing_if = "Option::is_none")]
3132    pub foreign_entity_id: Option<String>,
3133}
3134#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3135#[serde(rename_all = "camelCase")]
3136pub struct IntegrationUpdateInput {
3137    /// The settings to update.
3138    #[serde(default, skip_serializing_if = "Option::is_none")]
3139    pub settings: Option<Box<IntegrationSettingsInput>>,
3140}
3141#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3142#[serde(rename_all = "camelCase")]
3143pub struct IntegrationsSettingsCreateInput {
3144    /// Whether to send a Slack message when a new issue is created for the project or the team.
3145    #[serde(default, skip_serializing_if = "Option::is_none")]
3146    pub slack_issue_created: Option<bool>,
3147    /// Whether to send a Slack message when an issue is added to a view.
3148    #[serde(default, skip_serializing_if = "Option::is_none")]
3149    pub slack_issue_added_to_view: Option<bool>,
3150    /// Whether to send a Slack message when a comment is created on any of the project or team's issues.
3151    #[serde(default, skip_serializing_if = "Option::is_none")]
3152    pub slack_issue_new_comment: Option<bool>,
3153    /// Whether to send a Slack message when any of the project or team's issues change to completed or cancelled.
3154    #[serde(default, skip_serializing_if = "Option::is_none")]
3155    pub slack_issue_status_changed_done: Option<bool>,
3156    /// Whether to send a Slack message when any of the project or team's issues has a change in status.
3157    #[serde(default, skip_serializing_if = "Option::is_none")]
3158    pub slack_issue_status_changed_all: Option<bool>,
3159    /// Whether to send a Slack message when a project update is created.
3160    #[serde(default, skip_serializing_if = "Option::is_none")]
3161    pub slack_project_update_created: Option<bool>,
3162    /// Whether to send a Slack message when a project update is created to team channels.
3163    #[serde(default, skip_serializing_if = "Option::is_none")]
3164    pub slack_project_update_created_to_team: Option<bool>,
3165    /// Whether to send a Slack message when a project update is created to workspace channel.
3166    #[serde(default, skip_serializing_if = "Option::is_none")]
3167    pub slack_project_update_created_to_workspace: Option<bool>,
3168    /// Whether to send a Slack message when an initiative update is created.
3169    #[serde(default, skip_serializing_if = "Option::is_none")]
3170    pub slack_initiative_update_created: Option<bool>,
3171    /// Whether to send a Slack message when a new issue is added to triage.
3172    #[serde(default, skip_serializing_if = "Option::is_none")]
3173    pub slack_issue_added_to_triage: Option<bool>,
3174    /// Whether to send a Slack message when an SLA is at high risk.
3175    #[serde(default, skip_serializing_if = "Option::is_none")]
3176    pub slack_issue_sla_high_risk: Option<bool>,
3177    /// Whether to receive notification when an SLA has breached on Slack.
3178    #[serde(default, skip_serializing_if = "Option::is_none")]
3179    pub slack_issue_sla_breached: Option<bool>,
3180    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3181    #[serde(default, skip_serializing_if = "Option::is_none")]
3182    pub id: Option<String>,
3183    /// The identifier of the team to create settings for.
3184    #[serde(default, skip_serializing_if = "Option::is_none")]
3185    pub team_id: Option<String>,
3186    /// The identifier of the project to create settings for.
3187    #[serde(default, skip_serializing_if = "Option::is_none")]
3188    pub project_id: Option<String>,
3189    /// The identifier of the initiative to create settings for.
3190    #[serde(default, skip_serializing_if = "Option::is_none")]
3191    pub initiative_id: Option<String>,
3192    /// The identifier of the custom view to create settings for.
3193    #[serde(default, skip_serializing_if = "Option::is_none")]
3194    pub custom_view_id: Option<String>,
3195    /// The type of view to which the integration settings context is associated with.
3196    #[serde(default, skip_serializing_if = "Option::is_none")]
3197    pub context_view_type: Option<ContextViewType>,
3198}
3199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3200#[serde(rename_all = "camelCase")]
3201pub struct IntegrationsSettingsUpdateInput {
3202    /// Whether to send a Slack message when a new issue is created for the project or the team.
3203    #[serde(default, skip_serializing_if = "Option::is_none")]
3204    pub slack_issue_created: Option<bool>,
3205    /// Whether to send a Slack message when an issue is added to a view.
3206    #[serde(default, skip_serializing_if = "Option::is_none")]
3207    pub slack_issue_added_to_view: Option<bool>,
3208    /// Whether to send a Slack message when a comment is created on any of the project or team's issues.
3209    #[serde(default, skip_serializing_if = "Option::is_none")]
3210    pub slack_issue_new_comment: Option<bool>,
3211    /// Whether to send a Slack message when any of the project or team's issues change to completed or cancelled.
3212    #[serde(default, skip_serializing_if = "Option::is_none")]
3213    pub slack_issue_status_changed_done: Option<bool>,
3214    /// Whether to send a Slack message when any of the project or team's issues has a change in status.
3215    #[serde(default, skip_serializing_if = "Option::is_none")]
3216    pub slack_issue_status_changed_all: Option<bool>,
3217    /// Whether to send a Slack message when a project update is created.
3218    #[serde(default, skip_serializing_if = "Option::is_none")]
3219    pub slack_project_update_created: Option<bool>,
3220    /// Whether to send a Slack message when a project update is created to team channels.
3221    #[serde(default, skip_serializing_if = "Option::is_none")]
3222    pub slack_project_update_created_to_team: Option<bool>,
3223    /// Whether to send a Slack message when a project update is created to workspace channel.
3224    #[serde(default, skip_serializing_if = "Option::is_none")]
3225    pub slack_project_update_created_to_workspace: Option<bool>,
3226    /// Whether to send a Slack message when an initiative update is created.
3227    #[serde(default, skip_serializing_if = "Option::is_none")]
3228    pub slack_initiative_update_created: Option<bool>,
3229    /// Whether to send a Slack message when a new issue is added to triage.
3230    #[serde(default, skip_serializing_if = "Option::is_none")]
3231    pub slack_issue_added_to_triage: Option<bool>,
3232    /// Whether to send a Slack message when an SLA is at high risk.
3233    #[serde(default, skip_serializing_if = "Option::is_none")]
3234    pub slack_issue_sla_high_risk: Option<bool>,
3235    /// Whether to receive notification when an SLA has breached on Slack.
3236    #[serde(default, skip_serializing_if = "Option::is_none")]
3237    pub slack_issue_sla_breached: Option<bool>,
3238}
3239#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3240#[serde(rename_all = "camelCase")]
3241pub struct IntercomSettingsInput {
3242    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
3243    #[serde(default, skip_serializing_if = "Option::is_none")]
3244    pub send_note_on_status_change: Option<bool>,
3245    /// Whether an internal message should be added when someone comments on an issue.
3246    #[serde(default, skip_serializing_if = "Option::is_none")]
3247    pub send_note_on_comment: Option<bool>,
3248    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
3249    #[serde(default, skip_serializing_if = "Option::is_none")]
3250    pub automate_ticket_reopening_on_completion: Option<bool>,
3251    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
3252    #[serde(default, skip_serializing_if = "Option::is_none")]
3253    pub automate_ticket_reopening_on_cancellation: Option<bool>,
3254    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
3255    #[serde(default, skip_serializing_if = "Option::is_none")]
3256    pub automate_ticket_reopening_on_comment: Option<bool>,
3257    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
3258    #[serde(default, skip_serializing_if = "Option::is_none")]
3259    pub disable_customer_requests_auto_creation: Option<bool>,
3260    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
3261    #[serde(default, skip_serializing_if = "Option::is_none")]
3262    pub automate_ticket_reopening_on_project_completion: Option<bool>,
3263    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
3264    #[serde(default, skip_serializing_if = "Option::is_none")]
3265    pub automate_ticket_reopening_on_project_cancellation: Option<bool>,
3266    /// Whether Linear Agent should be enabled for this integration.
3267    #[serde(default, skip_serializing_if = "Option::is_none")]
3268    pub enable_ai_intake: Option<bool>,
3269}
3270#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3271#[serde(rename_all = "camelCase")]
3272pub struct IssueBatchCreateInput {
3273    /// The issues to create.
3274    #[serde(default, skip_serializing_if = "Option::is_none")]
3275    pub issues: Option<Vec<Box<IssueCreateInput>>>,
3276}
3277/// Issue filtering options.
3278#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3279#[serde(rename_all = "camelCase")]
3280pub struct IssueCollectionFilter {
3281    /// Comparator for the identifier.
3282    #[serde(default, skip_serializing_if = "Option::is_none")]
3283    pub id: Option<Box<IssueIDComparator>>,
3284    /// Comparator for the created at date.
3285    #[serde(default, skip_serializing_if = "Option::is_none")]
3286    pub created_at: Option<Box<DateComparator>>,
3287    /// Comparator for the updated at date.
3288    #[serde(default, skip_serializing_if = "Option::is_none")]
3289    pub updated_at: Option<Box<DateComparator>>,
3290    /// Comparator for the issues number.
3291    #[serde(default, skip_serializing_if = "Option::is_none")]
3292    pub number: Option<Box<NumberComparator>>,
3293    /// Comparator for the issues title.
3294    #[serde(default, skip_serializing_if = "Option::is_none")]
3295    pub title: Option<Box<StringComparator>>,
3296    /// Comparator for the issues description.
3297    #[serde(default, skip_serializing_if = "Option::is_none")]
3298    pub description: Option<Box<NullableStringComparator>>,
3299    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
3300    #[serde(default, skip_serializing_if = "Option::is_none")]
3301    pub priority: Option<Box<NullableNumberComparator>>,
3302    /// Comparator for the issues estimate.
3303    #[serde(default, skip_serializing_if = "Option::is_none")]
3304    pub estimate: Option<Box<EstimateComparator>>,
3305    /// Comparator for the issues started at date.
3306    #[serde(default, skip_serializing_if = "Option::is_none")]
3307    pub started_at: Option<Box<NullableDateComparator>>,
3308    /// Comparator for the issues triaged at date.
3309    #[serde(default, skip_serializing_if = "Option::is_none")]
3310    pub triaged_at: Option<Box<NullableDateComparator>>,
3311    /// Comparator for the issues completed at date.
3312    #[serde(default, skip_serializing_if = "Option::is_none")]
3313    pub completed_at: Option<Box<NullableDateComparator>>,
3314    /// Comparator for the issues canceled at date.
3315    #[serde(default, skip_serializing_if = "Option::is_none")]
3316    pub canceled_at: Option<Box<NullableDateComparator>>,
3317    /// Comparator for the issues archived at date.
3318    #[serde(default, skip_serializing_if = "Option::is_none")]
3319    pub archived_at: Option<Box<NullableDateComparator>>,
3320    /// Comparator for the issues auto closed at date.
3321    #[serde(default, skip_serializing_if = "Option::is_none")]
3322    pub auto_closed_at: Option<Box<NullableDateComparator>>,
3323    /// Comparator for the issues auto archived at date.
3324    #[serde(default, skip_serializing_if = "Option::is_none")]
3325    pub auto_archived_at: Option<Box<NullableDateComparator>>,
3326    /// Comparator for the issues added to cycle at date.
3327    #[serde(default, skip_serializing_if = "Option::is_none")]
3328    pub added_to_cycle_at: Option<Box<NullableDateComparator>>,
3329    /// Comparator for the period when issue was added to a cycle.
3330    #[serde(default, skip_serializing_if = "Option::is_none")]
3331    pub added_to_cycle_period: Option<Box<CyclePeriodComparator>>,
3332    /// Comparator for the issues due date.
3333    #[serde(default, skip_serializing_if = "Option::is_none")]
3334    pub due_date: Option<Box<NullableTimelessDateComparator>>,
3335    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
3336    #[serde(default, skip_serializing_if = "Option::is_none")]
3337    pub accumulated_state_updated_at: Option<Box<NullableDateComparator>>,
3338    /// Comparator for the issues snoozed until date.
3339    #[serde(default, skip_serializing_if = "Option::is_none")]
3340    pub snoozed_until_at: Option<Box<NullableDateComparator>>,
3341    /// Filters that the issues assignee must satisfy.
3342    #[serde(default, skip_serializing_if = "Option::is_none")]
3343    pub assignee: Option<Box<NullableUserFilter>>,
3344    /// Filters that the issue's delegated agent must satisfy.
3345    #[serde(default, skip_serializing_if = "Option::is_none")]
3346    pub delegate: Option<Box<NullableUserFilter>>,
3347    /// Filters that the last applied template must satisfy.
3348    #[serde(default, skip_serializing_if = "Option::is_none")]
3349    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
3350    /// `ALPHA` Filters that the recurring issue template must satisfy.
3351    #[serde(default, skip_serializing_if = "Option::is_none")]
3352    pub recurring_issue_template: Option<Box<NullableTemplateFilter>>,
3353    /// Filters that the source must satisfy.
3354    #[serde(default, skip_serializing_if = "Option::is_none")]
3355    pub source_metadata: Option<Box<SourceMetadataComparator>>,
3356    /// Filters that the issues creator must satisfy.
3357    #[serde(default, skip_serializing_if = "Option::is_none")]
3358    pub creator: Option<Box<NullableUserFilter>>,
3359    /// Filters that the issue parent must satisfy.
3360    #[serde(default, skip_serializing_if = "Option::is_none")]
3361    pub parent: Option<Box<NullableIssueFilter>>,
3362    /// Filters that the issues snoozer must satisfy.
3363    #[serde(default, skip_serializing_if = "Option::is_none")]
3364    pub snoozed_by: Option<Box<NullableUserFilter>>,
3365    /// Filters that issue labels must satisfy.
3366    #[serde(default, skip_serializing_if = "Option::is_none")]
3367    pub labels: Option<Box<IssueLabelCollectionFilter>>,
3368    /// Filters that issue subscribers must satisfy.
3369    #[serde(default, skip_serializing_if = "Option::is_none")]
3370    pub subscribers: Option<Box<UserCollectionFilter>>,
3371    /// Comparator for filtering issues which have been shared with users outside of the team.
3372    #[serde(default, skip_serializing_if = "Option::is_none")]
3373    pub has_shared_users: Option<Box<RelationExistsComparator>>,
3374    /// Filters that users the issue has been shared with must satisfy.
3375    #[serde(default, skip_serializing_if = "Option::is_none")]
3376    pub shared_with: Option<Box<UserCollectionFilter>>,
3377    /// Filters that the issues team must satisfy.
3378    #[serde(default, skip_serializing_if = "Option::is_none")]
3379    pub team: Option<Box<TeamFilter>>,
3380    /// Filters that the issues project milestone must satisfy.
3381    #[serde(default, skip_serializing_if = "Option::is_none")]
3382    pub project_milestone: Option<Box<NullableProjectMilestoneFilter>>,
3383    /// Filters that the issues comments must satisfy.
3384    #[serde(default, skip_serializing_if = "Option::is_none")]
3385    pub comments: Option<Box<CommentCollectionFilter>>,
3386    /// Filters that the issue's activities must satisfy.
3387    #[serde(default, skip_serializing_if = "Option::is_none")]
3388    pub activity: Option<Box<ActivityCollectionFilter>>,
3389    /// `Internal` Filters that the issue's suggestions must satisfy.
3390    #[serde(default, skip_serializing_if = "Option::is_none")]
3391    pub suggestions: Option<Box<IssueSuggestionCollectionFilter>>,
3392    /// Filters that the issues cycle must satisfy.
3393    #[serde(default, skip_serializing_if = "Option::is_none")]
3394    pub cycle: Option<Box<NullableCycleFilter>>,
3395    /// Filters that the issues project must satisfy.
3396    #[serde(default, skip_serializing_if = "Option::is_none")]
3397    pub project: Option<Box<NullableProjectFilter>>,
3398    /// Filters that the issues state must satisfy.
3399    #[serde(default, skip_serializing_if = "Option::is_none")]
3400    pub state: Option<Box<WorkflowStateFilter>>,
3401    /// Filters that the child issues must satisfy.
3402    #[serde(default, skip_serializing_if = "Option::is_none")]
3403    pub children: Option<Box<IssueCollectionFilter>>,
3404    /// Filters that the issues attachments must satisfy.
3405    #[serde(default, skip_serializing_if = "Option::is_none")]
3406    pub attachments: Option<Box<AttachmentCollectionFilter>>,
3407    /// `Internal` Comparator for the issues content.
3408    #[serde(default, skip_serializing_if = "Option::is_none")]
3409    pub searchable_content: Option<Box<ContentComparator>>,
3410    /// Comparator for filtering issues with relations.
3411    #[serde(default, skip_serializing_if = "Option::is_none")]
3412    pub has_related_relations: Option<Box<RelationExistsComparator>>,
3413    /// Comparator for filtering issues which are duplicates.
3414    #[serde(default, skip_serializing_if = "Option::is_none")]
3415    pub has_duplicate_relations: Option<Box<RelationExistsComparator>>,
3416    /// Comparator for filtering issues which are blocked.
3417    #[serde(default, skip_serializing_if = "Option::is_none")]
3418    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
3419    /// Comparator for filtering issues which are blocking.
3420    #[serde(default, skip_serializing_if = "Option::is_none")]
3421    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
3422    /// `Internal` Comparator for filtering issues which have suggested related issues.
3423    #[serde(default, skip_serializing_if = "Option::is_none")]
3424    pub has_suggested_related_issues: Option<Box<RelationExistsComparator>>,
3425    /// `Internal` Comparator for filtering issues which have suggested similar issues.
3426    #[serde(default, skip_serializing_if = "Option::is_none")]
3427    pub has_suggested_similar_issues: Option<Box<RelationExistsComparator>>,
3428    /// `Internal` Comparator for filtering issues which have suggested assignees.
3429    #[serde(default, skip_serializing_if = "Option::is_none")]
3430    pub has_suggested_assignees: Option<Box<RelationExistsComparator>>,
3431    /// `Internal` Comparator for filtering issues which have suggested projects.
3432    #[serde(default, skip_serializing_if = "Option::is_none")]
3433    pub has_suggested_projects: Option<Box<RelationExistsComparator>>,
3434    /// `Internal` Comparator for filtering issues which have suggested labels.
3435    #[serde(default, skip_serializing_if = "Option::is_none")]
3436    pub has_suggested_labels: Option<Box<RelationExistsComparator>>,
3437    /// `Internal` Comparator for filtering issues which have suggested teams.
3438    #[serde(default, skip_serializing_if = "Option::is_none")]
3439    pub has_suggested_teams: Option<Box<RelationExistsComparator>>,
3440    /// Comparator for the issues sla status.
3441    #[serde(default, skip_serializing_if = "Option::is_none")]
3442    pub sla_status: Option<Box<SlaStatusComparator>>,
3443    /// Filters that the issues reactions must satisfy.
3444    #[serde(default, skip_serializing_if = "Option::is_none")]
3445    pub reactions: Option<Box<ReactionCollectionFilter>>,
3446    /// Filters that the issue's customer needs must satisfy.
3447    #[serde(default, skip_serializing_if = "Option::is_none")]
3448    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
3449    /// `ALPHA` Filters that the issue's releases must satisfy.
3450    #[serde(default, skip_serializing_if = "Option::is_none")]
3451    pub releases: Option<Box<ReleaseCollectionFilter>>,
3452    /// Count of customers
3453    #[serde(default, skip_serializing_if = "Option::is_none")]
3454    pub customer_count: Option<Box<NumberComparator>>,
3455    /// Count of important customers
3456    #[serde(default, skip_serializing_if = "Option::is_none")]
3457    pub customer_important_count: Option<Box<NumberComparator>>,
3458    /// `Internal` Lead time (created -> completed) comparator.
3459    #[serde(default, skip_serializing_if = "Option::is_none")]
3460    pub lead_time: Option<Box<NullableDurationComparator>>,
3461    /// `Internal` Cycle time (started -> completed) comparator.
3462    #[serde(default, skip_serializing_if = "Option::is_none")]
3463    pub cycle_time: Option<Box<NullableDurationComparator>>,
3464    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
3465    #[serde(default, skip_serializing_if = "Option::is_none")]
3466    pub age_time: Option<Box<NullableDurationComparator>>,
3467    /// `Internal` Triage time (entered triaged -> triaged) comparator.
3468    #[serde(default, skip_serializing_if = "Option::is_none")]
3469    pub triage_time: Option<Box<NullableDurationComparator>>,
3470    /// Compound filters, all of which need to be matched by the issue.
3471    #[serde(default, skip_serializing_if = "Option::is_none")]
3472    pub and: Option<Vec<Box<IssueCollectionFilter>>>,
3473    /// Compound filters, one of which need to be matched by the issue.
3474    #[serde(default, skip_serializing_if = "Option::is_none")]
3475    pub or: Option<Vec<Box<IssueCollectionFilter>>>,
3476    /// Filters that needs to be matched by some issues.
3477    #[serde(default, skip_serializing_if = "Option::is_none")]
3478    pub some: Option<Box<IssueFilter>>,
3479    /// Filters that needs to be matched by all issues.
3480    #[serde(default, skip_serializing_if = "Option::is_none")]
3481    pub every: Option<Box<IssueFilter>>,
3482    /// Comparator for the collection length.
3483    #[serde(default, skip_serializing_if = "Option::is_none")]
3484    pub length: Option<Box<NumberComparator>>,
3485}
3486#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3487#[serde(rename_all = "camelCase")]
3488pub struct IssueCreateInput {
3489    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3490    #[serde(default, skip_serializing_if = "Option::is_none")]
3491    pub id: Option<String>,
3492    /// The title of the issue.
3493    #[serde(default, skip_serializing_if = "Option::is_none")]
3494    pub title: Option<String>,
3495    /// The issue description in markdown format.
3496    #[serde(default, skip_serializing_if = "Option::is_none")]
3497    pub description: Option<String>,
3498    /// `Internal` The issue description as a Prosemirror document.
3499    #[serde(default, skip_serializing_if = "Option::is_none")]
3500    pub description_data: Option<serde_json::Value>,
3501    /// The identifier of the user to assign the issue to.
3502    #[serde(default, skip_serializing_if = "Option::is_none")]
3503    pub assignee_id: Option<String>,
3504    /// The identifier of the agent user to delegate the issue to.
3505    #[serde(default, skip_serializing_if = "Option::is_none")]
3506    pub delegate_id: Option<String>,
3507    /// The identifier of the parent issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3508    #[serde(default, skip_serializing_if = "Option::is_none")]
3509    pub parent_id: Option<String>,
3510    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
3511    #[serde(default, skip_serializing_if = "Option::is_none")]
3512    pub priority: Option<i64>,
3513    /// The estimated complexity of the issue.
3514    #[serde(default, skip_serializing_if = "Option::is_none")]
3515    pub estimate: Option<i64>,
3516    /// The identifiers of the users subscribing to this ticket.
3517    #[serde(default, skip_serializing_if = "Option::is_none")]
3518    pub subscriber_ids: Option<Vec<String>>,
3519    /// The identifiers of the issue labels associated with this ticket.
3520    #[serde(default, skip_serializing_if = "Option::is_none")]
3521    pub label_ids: Option<Vec<String>>,
3522    /// The identifier of the team associated with the issue.
3523    #[serde(default, skip_serializing_if = "Option::is_none")]
3524    pub team_id: Option<String>,
3525    /// The cycle associated with the issue.
3526    #[serde(default, skip_serializing_if = "Option::is_none")]
3527    pub cycle_id: Option<String>,
3528    /// The project associated with the issue.
3529    #[serde(default, skip_serializing_if = "Option::is_none")]
3530    pub project_id: Option<String>,
3531    /// The project milestone associated with the issue.
3532    #[serde(default, skip_serializing_if = "Option::is_none")]
3533    pub project_milestone_id: Option<String>,
3534    /// The ID of the last template applied to the issue.
3535    #[serde(default, skip_serializing_if = "Option::is_none")]
3536    pub last_applied_template_id: Option<String>,
3537    /// The team state of the issue.
3538    #[serde(default, skip_serializing_if = "Option::is_none")]
3539    pub state_id: Option<String>,
3540    /// The comment the issue is referencing.
3541    #[serde(default, skip_serializing_if = "Option::is_none")]
3542    pub reference_comment_id: Option<String>,
3543    /// The comment the issue is created from.
3544    #[serde(default, skip_serializing_if = "Option::is_none")]
3545    pub source_comment_id: Option<String>,
3546    /// `Internal` The pull request comment the issue is created from.
3547    #[serde(default, skip_serializing_if = "Option::is_none")]
3548    pub source_pull_request_comment_id: Option<String>,
3549    /// The position of the issue related to other issues.
3550    #[serde(default, skip_serializing_if = "Option::is_none")]
3551    pub sort_order: Option<f64>,
3552    /// The position of the issue related to other issues, when ordered by priority.
3553    #[serde(default, skip_serializing_if = "Option::is_none")]
3554    pub priority_sort_order: Option<f64>,
3555    /// The position of the issue in parent's sub-issue list.
3556    #[serde(default, skip_serializing_if = "Option::is_none")]
3557    pub sub_issue_sort_order: Option<f64>,
3558    /// The date at which the issue is due.
3559    #[serde(default, skip_serializing_if = "Option::is_none")]
3560    pub due_date: Option<chrono::NaiveDate>,
3561    /// Create issue as a user with the provided name. This option is only available to OAuth applications creating issues in `actor=app` mode.
3562    #[serde(default, skip_serializing_if = "Option::is_none")]
3563    pub create_as_user: Option<String>,
3564    /// 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.
3565    #[serde(default, skip_serializing_if = "Option::is_none")]
3566    pub display_icon_url: Option<String>,
3567    /// Whether the passed sort order should be preserved.
3568    #[serde(default, skip_serializing_if = "Option::is_none")]
3569    pub preserve_sort_order_on_create: Option<bool>,
3570    /// The date when the issue was created (e.g. if importing from another system). Must be a date in the past. If none is provided, the backend will generate the time as now.
3571    #[serde(default, skip_serializing_if = "Option::is_none")]
3572    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3573    /// `Internal` The timestamp at which an issue will be considered in breach of SLA.
3574    #[serde(default, skip_serializing_if = "Option::is_none")]
3575    pub sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
3576    /// `Internal` The timestamp at which the issue's SLA was started.
3577    #[serde(default, skip_serializing_if = "Option::is_none")]
3578    pub sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
3579    /// The identifier of a template the issue should be created from. If other values are provided in the input, they will override template values.
3580    #[serde(default, skip_serializing_if = "Option::is_none")]
3581    pub template_id: Option<String>,
3582    /// The date when the issue was completed (e.g. if importing from another system). Must be a date in the past and after createdAt date. Cannot be provided with an incompatible workflow state.
3583    #[serde(default, skip_serializing_if = "Option::is_none")]
3584    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
3585    /// The SLA day count type for the issue. Whether SLA should be business days only or calendar days (default).
3586    #[serde(default, skip_serializing_if = "Option::is_none")]
3587    pub sla_type: Option<SLADayCountType>,
3588    /// 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.
3589    #[serde(default, skip_serializing_if = "Option::is_none")]
3590    pub use_default_template: Option<bool>,
3591}
3592/// Issue filtering options.
3593#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3594#[serde(rename_all = "camelCase")]
3595pub struct IssueFilter {
3596    /// Comparator for the identifier.
3597    #[serde(default, skip_serializing_if = "Option::is_none")]
3598    pub id: Option<Box<IssueIDComparator>>,
3599    /// Comparator for the created at date.
3600    #[serde(default, skip_serializing_if = "Option::is_none")]
3601    pub created_at: Option<Box<DateComparator>>,
3602    /// Comparator for the updated at date.
3603    #[serde(default, skip_serializing_if = "Option::is_none")]
3604    pub updated_at: Option<Box<DateComparator>>,
3605    /// Comparator for the issues number.
3606    #[serde(default, skip_serializing_if = "Option::is_none")]
3607    pub number: Option<Box<NumberComparator>>,
3608    /// Comparator for the issues title.
3609    #[serde(default, skip_serializing_if = "Option::is_none")]
3610    pub title: Option<Box<StringComparator>>,
3611    /// Comparator for the issues description.
3612    #[serde(default, skip_serializing_if = "Option::is_none")]
3613    pub description: Option<Box<NullableStringComparator>>,
3614    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
3615    #[serde(default, skip_serializing_if = "Option::is_none")]
3616    pub priority: Option<Box<NullableNumberComparator>>,
3617    /// Comparator for the issues estimate.
3618    #[serde(default, skip_serializing_if = "Option::is_none")]
3619    pub estimate: Option<Box<EstimateComparator>>,
3620    /// Comparator for the issues started at date.
3621    #[serde(default, skip_serializing_if = "Option::is_none")]
3622    pub started_at: Option<Box<NullableDateComparator>>,
3623    /// Comparator for the issues triaged at date.
3624    #[serde(default, skip_serializing_if = "Option::is_none")]
3625    pub triaged_at: Option<Box<NullableDateComparator>>,
3626    /// Comparator for the issues completed at date.
3627    #[serde(default, skip_serializing_if = "Option::is_none")]
3628    pub completed_at: Option<Box<NullableDateComparator>>,
3629    /// Comparator for the issues canceled at date.
3630    #[serde(default, skip_serializing_if = "Option::is_none")]
3631    pub canceled_at: Option<Box<NullableDateComparator>>,
3632    /// Comparator for the issues archived at date.
3633    #[serde(default, skip_serializing_if = "Option::is_none")]
3634    pub archived_at: Option<Box<NullableDateComparator>>,
3635    /// Comparator for the issues auto closed at date.
3636    #[serde(default, skip_serializing_if = "Option::is_none")]
3637    pub auto_closed_at: Option<Box<NullableDateComparator>>,
3638    /// Comparator for the issues auto archived at date.
3639    #[serde(default, skip_serializing_if = "Option::is_none")]
3640    pub auto_archived_at: Option<Box<NullableDateComparator>>,
3641    /// Comparator for the issues added to cycle at date.
3642    #[serde(default, skip_serializing_if = "Option::is_none")]
3643    pub added_to_cycle_at: Option<Box<NullableDateComparator>>,
3644    /// Comparator for the period when issue was added to a cycle.
3645    #[serde(default, skip_serializing_if = "Option::is_none")]
3646    pub added_to_cycle_period: Option<Box<CyclePeriodComparator>>,
3647    /// Comparator for the issues due date.
3648    #[serde(default, skip_serializing_if = "Option::is_none")]
3649    pub due_date: Option<Box<NullableTimelessDateComparator>>,
3650    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
3651    #[serde(default, skip_serializing_if = "Option::is_none")]
3652    pub accumulated_state_updated_at: Option<Box<NullableDateComparator>>,
3653    /// Comparator for the issues snoozed until date.
3654    #[serde(default, skip_serializing_if = "Option::is_none")]
3655    pub snoozed_until_at: Option<Box<NullableDateComparator>>,
3656    /// Filters that the issues assignee must satisfy.
3657    #[serde(default, skip_serializing_if = "Option::is_none")]
3658    pub assignee: Option<Box<NullableUserFilter>>,
3659    /// Filters that the issue's delegated agent must satisfy.
3660    #[serde(default, skip_serializing_if = "Option::is_none")]
3661    pub delegate: Option<Box<NullableUserFilter>>,
3662    /// Filters that the last applied template must satisfy.
3663    #[serde(default, skip_serializing_if = "Option::is_none")]
3664    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
3665    /// `ALPHA` Filters that the recurring issue template must satisfy.
3666    #[serde(default, skip_serializing_if = "Option::is_none")]
3667    pub recurring_issue_template: Option<Box<NullableTemplateFilter>>,
3668    /// Filters that the source must satisfy.
3669    #[serde(default, skip_serializing_if = "Option::is_none")]
3670    pub source_metadata: Option<Box<SourceMetadataComparator>>,
3671    /// Filters that the issues creator must satisfy.
3672    #[serde(default, skip_serializing_if = "Option::is_none")]
3673    pub creator: Option<Box<NullableUserFilter>>,
3674    /// Filters that the issue parent must satisfy.
3675    #[serde(default, skip_serializing_if = "Option::is_none")]
3676    pub parent: Option<Box<NullableIssueFilter>>,
3677    /// Filters that the issues snoozer must satisfy.
3678    #[serde(default, skip_serializing_if = "Option::is_none")]
3679    pub snoozed_by: Option<Box<NullableUserFilter>>,
3680    /// Filters that issue labels must satisfy.
3681    #[serde(default, skip_serializing_if = "Option::is_none")]
3682    pub labels: Option<Box<IssueLabelCollectionFilter>>,
3683    /// Filters that issue subscribers must satisfy.
3684    #[serde(default, skip_serializing_if = "Option::is_none")]
3685    pub subscribers: Option<Box<UserCollectionFilter>>,
3686    /// Comparator for filtering issues which have been shared with users outside of the team.
3687    #[serde(default, skip_serializing_if = "Option::is_none")]
3688    pub has_shared_users: Option<Box<RelationExistsComparator>>,
3689    /// Filters that users the issue has been shared with must satisfy.
3690    #[serde(default, skip_serializing_if = "Option::is_none")]
3691    pub shared_with: Option<Box<UserCollectionFilter>>,
3692    /// Filters that the issues team must satisfy.
3693    #[serde(default, skip_serializing_if = "Option::is_none")]
3694    pub team: Option<Box<TeamFilter>>,
3695    /// Filters that the issues project milestone must satisfy.
3696    #[serde(default, skip_serializing_if = "Option::is_none")]
3697    pub project_milestone: Option<Box<NullableProjectMilestoneFilter>>,
3698    /// Filters that the issues comments must satisfy.
3699    #[serde(default, skip_serializing_if = "Option::is_none")]
3700    pub comments: Option<Box<CommentCollectionFilter>>,
3701    /// Filters that the issue's activities must satisfy.
3702    #[serde(default, skip_serializing_if = "Option::is_none")]
3703    pub activity: Option<Box<ActivityCollectionFilter>>,
3704    /// `Internal` Filters that the issue's suggestions must satisfy.
3705    #[serde(default, skip_serializing_if = "Option::is_none")]
3706    pub suggestions: Option<Box<IssueSuggestionCollectionFilter>>,
3707    /// Filters that the issues cycle must satisfy.
3708    #[serde(default, skip_serializing_if = "Option::is_none")]
3709    pub cycle: Option<Box<NullableCycleFilter>>,
3710    /// Filters that the issues project must satisfy.
3711    #[serde(default, skip_serializing_if = "Option::is_none")]
3712    pub project: Option<Box<NullableProjectFilter>>,
3713    /// Filters that the issues state must satisfy.
3714    #[serde(default, skip_serializing_if = "Option::is_none")]
3715    pub state: Option<Box<WorkflowStateFilter>>,
3716    /// Filters that the child issues must satisfy.
3717    #[serde(default, skip_serializing_if = "Option::is_none")]
3718    pub children: Option<Box<IssueCollectionFilter>>,
3719    /// Filters that the issues attachments must satisfy.
3720    #[serde(default, skip_serializing_if = "Option::is_none")]
3721    pub attachments: Option<Box<AttachmentCollectionFilter>>,
3722    /// `Internal` Comparator for the issues content.
3723    #[serde(default, skip_serializing_if = "Option::is_none")]
3724    pub searchable_content: Option<Box<ContentComparator>>,
3725    /// Comparator for filtering issues with relations.
3726    #[serde(default, skip_serializing_if = "Option::is_none")]
3727    pub has_related_relations: Option<Box<RelationExistsComparator>>,
3728    /// Comparator for filtering issues which are duplicates.
3729    #[serde(default, skip_serializing_if = "Option::is_none")]
3730    pub has_duplicate_relations: Option<Box<RelationExistsComparator>>,
3731    /// Comparator for filtering issues which are blocked.
3732    #[serde(default, skip_serializing_if = "Option::is_none")]
3733    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
3734    /// Comparator for filtering issues which are blocking.
3735    #[serde(default, skip_serializing_if = "Option::is_none")]
3736    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
3737    /// `Internal` Comparator for filtering issues which have suggested related issues.
3738    #[serde(default, skip_serializing_if = "Option::is_none")]
3739    pub has_suggested_related_issues: Option<Box<RelationExistsComparator>>,
3740    /// `Internal` Comparator for filtering issues which have suggested similar issues.
3741    #[serde(default, skip_serializing_if = "Option::is_none")]
3742    pub has_suggested_similar_issues: Option<Box<RelationExistsComparator>>,
3743    /// `Internal` Comparator for filtering issues which have suggested assignees.
3744    #[serde(default, skip_serializing_if = "Option::is_none")]
3745    pub has_suggested_assignees: Option<Box<RelationExistsComparator>>,
3746    /// `Internal` Comparator for filtering issues which have suggested projects.
3747    #[serde(default, skip_serializing_if = "Option::is_none")]
3748    pub has_suggested_projects: Option<Box<RelationExistsComparator>>,
3749    /// `Internal` Comparator for filtering issues which have suggested labels.
3750    #[serde(default, skip_serializing_if = "Option::is_none")]
3751    pub has_suggested_labels: Option<Box<RelationExistsComparator>>,
3752    /// `Internal` Comparator for filtering issues which have suggested teams.
3753    #[serde(default, skip_serializing_if = "Option::is_none")]
3754    pub has_suggested_teams: Option<Box<RelationExistsComparator>>,
3755    /// Comparator for the issues sla status.
3756    #[serde(default, skip_serializing_if = "Option::is_none")]
3757    pub sla_status: Option<Box<SlaStatusComparator>>,
3758    /// Filters that the issues reactions must satisfy.
3759    #[serde(default, skip_serializing_if = "Option::is_none")]
3760    pub reactions: Option<Box<ReactionCollectionFilter>>,
3761    /// Filters that the issue's customer needs must satisfy.
3762    #[serde(default, skip_serializing_if = "Option::is_none")]
3763    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
3764    /// `ALPHA` Filters that the issue's releases must satisfy.
3765    #[serde(default, skip_serializing_if = "Option::is_none")]
3766    pub releases: Option<Box<ReleaseCollectionFilter>>,
3767    /// Count of customers
3768    #[serde(default, skip_serializing_if = "Option::is_none")]
3769    pub customer_count: Option<Box<NumberComparator>>,
3770    /// Count of important customers
3771    #[serde(default, skip_serializing_if = "Option::is_none")]
3772    pub customer_important_count: Option<Box<NumberComparator>>,
3773    /// `Internal` Lead time (created -> completed) comparator.
3774    #[serde(default, skip_serializing_if = "Option::is_none")]
3775    pub lead_time: Option<Box<NullableDurationComparator>>,
3776    /// `Internal` Cycle time (started -> completed) comparator.
3777    #[serde(default, skip_serializing_if = "Option::is_none")]
3778    pub cycle_time: Option<Box<NullableDurationComparator>>,
3779    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
3780    #[serde(default, skip_serializing_if = "Option::is_none")]
3781    pub age_time: Option<Box<NullableDurationComparator>>,
3782    /// `Internal` Triage time (entered triaged -> triaged) comparator.
3783    #[serde(default, skip_serializing_if = "Option::is_none")]
3784    pub triage_time: Option<Box<NullableDurationComparator>>,
3785    /// Compound filters, all of which need to be matched by the issue.
3786    #[serde(default, skip_serializing_if = "Option::is_none")]
3787    pub and: Option<Vec<Box<IssueFilter>>>,
3788    /// Compound filters, one of which need to be matched by the issue.
3789    #[serde(default, skip_serializing_if = "Option::is_none")]
3790    pub or: Option<Vec<Box<IssueFilter>>>,
3791}
3792/// Comparator for issue identifiers.
3793#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3794#[serde(rename_all = "camelCase")]
3795pub struct IssueIDComparator {
3796    /// Equals constraint.
3797    #[serde(default, skip_serializing_if = "Option::is_none")]
3798    pub eq: Option<String>,
3799    /// Not-equals constraint.
3800    #[serde(default, skip_serializing_if = "Option::is_none")]
3801    pub neq: Option<String>,
3802    /// In-array constraint.
3803    #[serde(default, skip_serializing_if = "Option::is_none")]
3804    pub r#in: Option<Vec<String>>,
3805    /// Not-in-array constraint.
3806    #[serde(default, skip_serializing_if = "Option::is_none")]
3807    pub nin: Option<Vec<String>>,
3808}
3809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3810#[serde(rename_all = "camelCase")]
3811pub struct IssueImportUpdateInput {
3812    /// The mapping configuration for the import.
3813    #[serde(default, skip_serializing_if = "Option::is_none")]
3814    pub mapping: Option<serde_json::Value>,
3815}
3816/// Issue label filtering options.
3817#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3818#[serde(rename_all = "camelCase")]
3819pub struct IssueLabelCollectionFilter {
3820    /// Comparator for the identifier.
3821    #[serde(default, skip_serializing_if = "Option::is_none")]
3822    pub id: Option<Box<IDComparator>>,
3823    /// Comparator for the created at date.
3824    #[serde(default, skip_serializing_if = "Option::is_none")]
3825    pub created_at: Option<Box<DateComparator>>,
3826    /// Comparator for the updated at date.
3827    #[serde(default, skip_serializing_if = "Option::is_none")]
3828    pub updated_at: Option<Box<DateComparator>>,
3829    /// Comparator for the name.
3830    #[serde(default, skip_serializing_if = "Option::is_none")]
3831    pub name: Option<Box<StringComparator>>,
3832    /// Comparator for whether the label is a group label.
3833    #[serde(default, skip_serializing_if = "Option::is_none")]
3834    pub is_group: Option<Box<BooleanComparator>>,
3835    /// Filters that the issue labels creator must satisfy.
3836    #[serde(default, skip_serializing_if = "Option::is_none")]
3837    pub creator: Option<Box<NullableUserFilter>>,
3838    /// Filters that the issue labels team must satisfy.
3839    #[serde(default, skip_serializing_if = "Option::is_none")]
3840    pub team: Option<Box<NullableTeamFilter>>,
3841    /// Filters that the issue label's parent label must satisfy.
3842    #[serde(default, skip_serializing_if = "Option::is_none")]
3843    pub parent: Option<Box<IssueLabelFilter>>,
3844    /// Filter based on the existence of the relation.
3845    #[serde(default, skip_serializing_if = "Option::is_none")]
3846    pub null: Option<bool>,
3847    /// Compound filters, all of which need to be matched by the label.
3848    #[serde(default, skip_serializing_if = "Option::is_none")]
3849    pub and: Option<Vec<Box<IssueLabelCollectionFilter>>>,
3850    /// Compound filters, one of which need to be matched by the label.
3851    #[serde(default, skip_serializing_if = "Option::is_none")]
3852    pub or: Option<Vec<Box<IssueLabelCollectionFilter>>>,
3853    /// Filters that needs to be matched by some issue labels.
3854    #[serde(default, skip_serializing_if = "Option::is_none")]
3855    pub some: Option<Box<IssueLabelFilter>>,
3856    /// Filters that needs to be matched by all issue labels.
3857    #[serde(default, skip_serializing_if = "Option::is_none")]
3858    pub every: Option<Box<IssueLabelFilter>>,
3859    /// Comparator for the collection length.
3860    #[serde(default, skip_serializing_if = "Option::is_none")]
3861    pub length: Option<Box<NumberComparator>>,
3862}
3863#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3864#[serde(rename_all = "camelCase")]
3865pub struct IssueLabelCreateInput {
3866    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3867    #[serde(default, skip_serializing_if = "Option::is_none")]
3868    pub id: Option<String>,
3869    /// The name of the label.
3870    #[serde(default, skip_serializing_if = "Option::is_none")]
3871    pub name: Option<String>,
3872    /// The description of the label.
3873    #[serde(default, skip_serializing_if = "Option::is_none")]
3874    pub description: Option<String>,
3875    /// The color of the label.
3876    #[serde(default, skip_serializing_if = "Option::is_none")]
3877    pub color: Option<String>,
3878    /// The identifier of the parent label.
3879    #[serde(default, skip_serializing_if = "Option::is_none")]
3880    pub parent_id: Option<String>,
3881    /// The team associated with the label. If not given, the label will be associated with the entire workspace.
3882    #[serde(default, skip_serializing_if = "Option::is_none")]
3883    pub team_id: Option<String>,
3884    /// Whether the label is a group.
3885    #[serde(default, skip_serializing_if = "Option::is_none")]
3886    pub is_group: Option<bool>,
3887    /// When the label was retired.
3888    #[serde(default, skip_serializing_if = "Option::is_none")]
3889    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
3890}
3891/// Issue label filtering options.
3892#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3893#[serde(rename_all = "camelCase")]
3894pub struct IssueLabelFilter {
3895    /// Comparator for the identifier.
3896    #[serde(default, skip_serializing_if = "Option::is_none")]
3897    pub id: Option<Box<IDComparator>>,
3898    /// Comparator for the created at date.
3899    #[serde(default, skip_serializing_if = "Option::is_none")]
3900    pub created_at: Option<Box<DateComparator>>,
3901    /// Comparator for the updated at date.
3902    #[serde(default, skip_serializing_if = "Option::is_none")]
3903    pub updated_at: Option<Box<DateComparator>>,
3904    /// Comparator for the name.
3905    #[serde(default, skip_serializing_if = "Option::is_none")]
3906    pub name: Option<Box<StringComparator>>,
3907    /// Comparator for whether the label is a group label.
3908    #[serde(default, skip_serializing_if = "Option::is_none")]
3909    pub is_group: Option<Box<BooleanComparator>>,
3910    /// Filters that the issue labels creator must satisfy.
3911    #[serde(default, skip_serializing_if = "Option::is_none")]
3912    pub creator: Option<Box<NullableUserFilter>>,
3913    /// Filters that the issue labels team must satisfy.
3914    #[serde(default, skip_serializing_if = "Option::is_none")]
3915    pub team: Option<Box<NullableTeamFilter>>,
3916    /// Filters that the issue label's parent label must satisfy.
3917    #[serde(default, skip_serializing_if = "Option::is_none")]
3918    pub parent: Option<Box<IssueLabelFilter>>,
3919    /// Compound filters, all of which need to be matched by the label.
3920    #[serde(default, skip_serializing_if = "Option::is_none")]
3921    pub and: Option<Vec<Box<IssueLabelFilter>>>,
3922    /// Compound filters, one of which need to be matched by the label.
3923    #[serde(default, skip_serializing_if = "Option::is_none")]
3924    pub or: Option<Vec<Box<IssueLabelFilter>>>,
3925}
3926#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3927#[serde(rename_all = "camelCase")]
3928pub struct IssueLabelUpdateInput {
3929    /// The name of the label.
3930    #[serde(default, skip_serializing_if = "Option::is_none")]
3931    pub name: Option<String>,
3932    /// The description of the label.
3933    #[serde(default, skip_serializing_if = "Option::is_none")]
3934    pub description: Option<String>,
3935    /// The identifier of the parent label.
3936    #[serde(default, skip_serializing_if = "Option::is_none")]
3937    pub parent_id: Option<String>,
3938    /// The color of the label.
3939    #[serde(default, skip_serializing_if = "Option::is_none")]
3940    pub color: Option<String>,
3941    /// Whether the label is a group.
3942    #[serde(default, skip_serializing_if = "Option::is_none")]
3943    pub is_group: Option<bool>,
3944    /// When the label was retired.
3945    #[serde(default, skip_serializing_if = "Option::is_none")]
3946    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
3947}
3948/// A reference to an issue found during release creation.
3949#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3950#[serde(rename_all = "camelCase")]
3951pub struct IssueReferenceInput {
3952    /// The issue identifier (e.g. ENG-123).
3953    #[serde(default, skip_serializing_if = "Option::is_none")]
3954    pub identifier: Option<String>,
3955    /// The commit SHA where this issue reference was found.
3956    #[serde(default, skip_serializing_if = "Option::is_none")]
3957    pub commit_sha: Option<String>,
3958}
3959#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3960#[serde(rename_all = "camelCase")]
3961pub struct IssueRelationCreateInput {
3962    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3963    #[serde(default, skip_serializing_if = "Option::is_none")]
3964    pub id: Option<String>,
3965    /// The type of relation of the issue to the related issue.
3966    #[serde(default, skip_serializing_if = "Option::is_none")]
3967    pub r#type: Option<IssueRelationType>,
3968    /// The identifier of the issue that is related to another issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3969    #[serde(default, skip_serializing_if = "Option::is_none")]
3970    pub issue_id: Option<String>,
3971    /// The identifier of the related issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3972    #[serde(default, skip_serializing_if = "Option::is_none")]
3973    pub related_issue_id: Option<String>,
3974}
3975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3976#[serde(rename_all = "camelCase")]
3977pub struct IssueRelationUpdateInput {
3978    /// The type of relation of the issue to the related issue.
3979    #[serde(default, skip_serializing_if = "Option::is_none")]
3980    pub r#type: Option<String>,
3981    /// The identifier of the issue that is related to another issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3982    #[serde(default, skip_serializing_if = "Option::is_none")]
3983    pub issue_id: Option<String>,
3984    /// The identifier of the related issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3985    #[serde(default, skip_serializing_if = "Option::is_none")]
3986    pub related_issue_id: Option<String>,
3987}
3988/// Issue sorting options.
3989#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3990#[serde(rename_all = "camelCase")]
3991pub struct IssueSortInput {
3992    /// Sort by priority
3993    #[serde(default, skip_serializing_if = "Option::is_none")]
3994    pub priority: Option<Box<PrioritySort>>,
3995    /// Sort by estimate
3996    #[serde(default, skip_serializing_if = "Option::is_none")]
3997    pub estimate: Option<Box<EstimateSort>>,
3998    /// Sort by issue title
3999    #[serde(default, skip_serializing_if = "Option::is_none")]
4000    pub title: Option<Box<TitleSort>>,
4001    /// Sort by label
4002    #[serde(default, skip_serializing_if = "Option::is_none")]
4003    pub label: Option<Box<LabelSort>>,
4004    /// Sort by label group
4005    #[serde(default, skip_serializing_if = "Option::is_none")]
4006    pub label_group: Option<Box<LabelGroupSort>>,
4007    /// Sort by SLA status
4008    #[serde(default, skip_serializing_if = "Option::is_none")]
4009    pub sla_status: Option<Box<SlaStatusSort>>,
4010    /// Sort by issue creation date
4011    #[serde(default, skip_serializing_if = "Option::is_none")]
4012    pub created_at: Option<Box<CreatedAtSort>>,
4013    /// Sort by issue update date
4014    #[serde(default, skip_serializing_if = "Option::is_none")]
4015    pub updated_at: Option<Box<UpdatedAtSort>>,
4016    /// Sort by issue completion date
4017    #[serde(default, skip_serializing_if = "Option::is_none")]
4018    pub completed_at: Option<Box<CompletedAtSort>>,
4019    /// Sort by issue due date
4020    #[serde(default, skip_serializing_if = "Option::is_none")]
4021    pub due_date: Option<Box<DueDateSort>>,
4022    /// `Internal` Sort by the accumulated time in the current workflow state
4023    #[serde(default, skip_serializing_if = "Option::is_none")]
4024    pub accumulated_state_updated_at: Option<Box<TimeInStatusSort>>,
4025    /// Sort by Cycle start date
4026    #[serde(default, skip_serializing_if = "Option::is_none")]
4027    pub cycle: Option<Box<CycleSort>>,
4028    /// Sort by Project Milestone target date
4029    #[serde(default, skip_serializing_if = "Option::is_none")]
4030    pub milestone: Option<Box<MilestoneSort>>,
4031    /// Sort by assignee name
4032    #[serde(default, skip_serializing_if = "Option::is_none")]
4033    pub assignee: Option<Box<AssigneeSort>>,
4034    /// Sort by delegate name
4035    #[serde(default, skip_serializing_if = "Option::is_none")]
4036    pub delegate: Option<Box<DelegateSort>>,
4037    /// Sort by Project name
4038    #[serde(default, skip_serializing_if = "Option::is_none")]
4039    pub project: Option<Box<ProjectSort>>,
4040    /// Sort by Team name
4041    #[serde(default, skip_serializing_if = "Option::is_none")]
4042    pub team: Option<Box<TeamSort>>,
4043    /// Sort by manual order
4044    #[serde(default, skip_serializing_if = "Option::is_none")]
4045    pub manual: Option<Box<ManualSort>>,
4046    /// Sort by workflow state type
4047    #[serde(default, skip_serializing_if = "Option::is_none")]
4048    pub workflow_state: Option<Box<WorkflowStateSort>>,
4049    /// Sort by customer name
4050    #[serde(default, skip_serializing_if = "Option::is_none")]
4051    pub customer: Option<Box<CustomerSort>>,
4052    /// Sort by customer revenue
4053    #[serde(default, skip_serializing_if = "Option::is_none")]
4054    pub customer_revenue: Option<Box<CustomerRevenueSort>>,
4055    /// Sort by number of customers associated with the issue
4056    #[serde(default, skip_serializing_if = "Option::is_none")]
4057    pub customer_count: Option<Box<CustomerCountSort>>,
4058    /// Sort by number of important customers associated with the issue
4059    #[serde(default, skip_serializing_if = "Option::is_none")]
4060    pub customer_important_count: Option<Box<CustomerImportantCountSort>>,
4061    /// Sort by the root issue
4062    #[serde(default, skip_serializing_if = "Option::is_none")]
4063    pub root_issue: Option<Box<RootIssueSort>>,
4064    /// `ALPHA` Sort by number of links associated with the issue
4065    #[serde(default, skip_serializing_if = "Option::is_none")]
4066    pub link_count: Option<Box<LinkCountSort>>,
4067}
4068/// IssueSuggestion collection filtering options.
4069#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4070#[serde(rename_all = "camelCase")]
4071pub struct IssueSuggestionCollectionFilter {
4072    /// Comparator for the identifier.
4073    #[serde(default, skip_serializing_if = "Option::is_none")]
4074    pub id: Option<Box<IDComparator>>,
4075    /// Comparator for the created at date.
4076    #[serde(default, skip_serializing_if = "Option::is_none")]
4077    pub created_at: Option<Box<DateComparator>>,
4078    /// Comparator for the updated at date.
4079    #[serde(default, skip_serializing_if = "Option::is_none")]
4080    pub updated_at: Option<Box<DateComparator>>,
4081    /// Comparator for the suggestion type.
4082    #[serde(default, skip_serializing_if = "Option::is_none")]
4083    pub r#type: Option<Box<StringComparator>>,
4084    /// Comparator for the suggestion state.
4085    #[serde(default, skip_serializing_if = "Option::is_none")]
4086    pub state: Option<Box<StringComparator>>,
4087    /// Filters that the suggested user must satisfy.
4088    #[serde(default, skip_serializing_if = "Option::is_none")]
4089    pub suggested_user: Option<Box<NullableUserFilter>>,
4090    /// Filters that the suggested project must satisfy.
4091    #[serde(default, skip_serializing_if = "Option::is_none")]
4092    pub suggested_project: Option<Box<NullableProjectFilter>>,
4093    /// Filters that the suggested team must satisfy.
4094    #[serde(default, skip_serializing_if = "Option::is_none")]
4095    pub suggested_team: Option<Box<NullableTeamFilter>>,
4096    /// Filters that the suggested label must satisfy.
4097    #[serde(default, skip_serializing_if = "Option::is_none")]
4098    pub suggested_label: Option<Box<IssueLabelFilter>>,
4099    /// Compound filters, all of which need to be matched by the suggestion.
4100    #[serde(default, skip_serializing_if = "Option::is_none")]
4101    pub and: Option<Vec<Box<IssueSuggestionCollectionFilter>>>,
4102    /// Compound filters, one of which need to be matched by the suggestion.
4103    #[serde(default, skip_serializing_if = "Option::is_none")]
4104    pub or: Option<Vec<Box<IssueSuggestionCollectionFilter>>>,
4105    /// Filters that needs to be matched by some suggestions.
4106    #[serde(default, skip_serializing_if = "Option::is_none")]
4107    pub some: Option<Box<IssueSuggestionFilter>>,
4108    /// Filters that needs to be matched by all suggestions.
4109    #[serde(default, skip_serializing_if = "Option::is_none")]
4110    pub every: Option<Box<IssueSuggestionFilter>>,
4111    /// Comparator for the collection length.
4112    #[serde(default, skip_serializing_if = "Option::is_none")]
4113    pub length: Option<Box<NumberComparator>>,
4114}
4115/// IssueSuggestion filtering options.
4116#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4117#[serde(rename_all = "camelCase")]
4118pub struct IssueSuggestionFilter {
4119    /// Comparator for the identifier.
4120    #[serde(default, skip_serializing_if = "Option::is_none")]
4121    pub id: Option<Box<IDComparator>>,
4122    /// Comparator for the created at date.
4123    #[serde(default, skip_serializing_if = "Option::is_none")]
4124    pub created_at: Option<Box<DateComparator>>,
4125    /// Comparator for the updated at date.
4126    #[serde(default, skip_serializing_if = "Option::is_none")]
4127    pub updated_at: Option<Box<DateComparator>>,
4128    /// Comparator for the suggestion type.
4129    #[serde(default, skip_serializing_if = "Option::is_none")]
4130    pub r#type: Option<Box<StringComparator>>,
4131    /// Comparator for the suggestion state.
4132    #[serde(default, skip_serializing_if = "Option::is_none")]
4133    pub state: Option<Box<StringComparator>>,
4134    /// Filters that the suggested user must satisfy.
4135    #[serde(default, skip_serializing_if = "Option::is_none")]
4136    pub suggested_user: Option<Box<NullableUserFilter>>,
4137    /// Filters that the suggested project must satisfy.
4138    #[serde(default, skip_serializing_if = "Option::is_none")]
4139    pub suggested_project: Option<Box<NullableProjectFilter>>,
4140    /// Filters that the suggested team must satisfy.
4141    #[serde(default, skip_serializing_if = "Option::is_none")]
4142    pub suggested_team: Option<Box<NullableTeamFilter>>,
4143    /// Filters that the suggested label must satisfy.
4144    #[serde(default, skip_serializing_if = "Option::is_none")]
4145    pub suggested_label: Option<Box<IssueLabelFilter>>,
4146    /// Compound filters, all of which need to be matched by the suggestion.
4147    #[serde(default, skip_serializing_if = "Option::is_none")]
4148    pub and: Option<Vec<Box<IssueSuggestionFilter>>>,
4149    /// Compound filters, one of which need to be matched by the suggestion.
4150    #[serde(default, skip_serializing_if = "Option::is_none")]
4151    pub or: Option<Vec<Box<IssueSuggestionFilter>>>,
4152}
4153/// `ALPHA` The properties of the issueToRelease to create.
4154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4155#[serde(rename_all = "camelCase")]
4156pub struct IssueToReleaseCreateInput {
4157    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
4158    #[serde(default, skip_serializing_if = "Option::is_none")]
4159    pub id: Option<String>,
4160    /// The identifier of the issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4161    #[serde(default, skip_serializing_if = "Option::is_none")]
4162    pub issue_id: Option<String>,
4163    /// The identifier of the release
4164    #[serde(default, skip_serializing_if = "Option::is_none")]
4165    pub release_id: Option<String>,
4166}
4167#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4168#[serde(rename_all = "camelCase")]
4169pub struct IssueUpdateInput {
4170    /// The issue title.
4171    #[serde(default, skip_serializing_if = "Option::is_none")]
4172    pub title: Option<String>,
4173    /// The issue description in markdown format.
4174    #[serde(default, skip_serializing_if = "Option::is_none")]
4175    pub description: Option<String>,
4176    /// `Internal` The issue description as a Prosemirror document.
4177    #[serde(default, skip_serializing_if = "Option::is_none")]
4178    pub description_data: Option<serde_json::Value>,
4179    /// The identifier of the user to assign the issue to.
4180    #[serde(default, skip_serializing_if = "Option::is_none")]
4181    pub assignee_id: Option<String>,
4182    /// The identifier of the agent user to delegate the issue to.
4183    #[serde(default, skip_serializing_if = "Option::is_none")]
4184    pub delegate_id: Option<String>,
4185    /// The identifier of the parent issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4186    #[serde(default, skip_serializing_if = "Option::is_none")]
4187    pub parent_id: Option<String>,
4188    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
4189    #[serde(default, skip_serializing_if = "Option::is_none")]
4190    pub priority: Option<i64>,
4191    /// The estimated complexity of the issue.
4192    #[serde(default, skip_serializing_if = "Option::is_none")]
4193    pub estimate: Option<i64>,
4194    /// The identifiers of the users subscribing to this ticket.
4195    #[serde(default, skip_serializing_if = "Option::is_none")]
4196    pub subscriber_ids: Option<Vec<String>>,
4197    /// The identifiers of the issue labels associated with this ticket.
4198    #[serde(default, skip_serializing_if = "Option::is_none")]
4199    pub label_ids: Option<Vec<String>>,
4200    /// The identifiers of the issue labels to be added to this issue.
4201    #[serde(default, skip_serializing_if = "Option::is_none")]
4202    pub added_label_ids: Option<Vec<String>>,
4203    /// The identifiers of the issue labels to be removed from this issue.
4204    #[serde(default, skip_serializing_if = "Option::is_none")]
4205    pub removed_label_ids: Option<Vec<String>>,
4206    /// The identifier of the team associated with the issue.
4207    #[serde(default, skip_serializing_if = "Option::is_none")]
4208    pub team_id: Option<String>,
4209    /// The cycle associated with the issue.
4210    #[serde(default, skip_serializing_if = "Option::is_none")]
4211    pub cycle_id: Option<String>,
4212    /// The project associated with the issue.
4213    #[serde(default, skip_serializing_if = "Option::is_none")]
4214    pub project_id: Option<String>,
4215    /// The project milestone associated with the issue.
4216    #[serde(default, skip_serializing_if = "Option::is_none")]
4217    pub project_milestone_id: Option<String>,
4218    /// The ID of the last template applied to the issue.
4219    #[serde(default, skip_serializing_if = "Option::is_none")]
4220    pub last_applied_template_id: Option<String>,
4221    /// The team state of the issue.
4222    #[serde(default, skip_serializing_if = "Option::is_none")]
4223    pub state_id: Option<String>,
4224    /// The position of the issue related to other issues.
4225    #[serde(default, skip_serializing_if = "Option::is_none")]
4226    pub sort_order: Option<f64>,
4227    /// The position of the issue related to other issues, when ordered by priority.
4228    #[serde(default, skip_serializing_if = "Option::is_none")]
4229    pub priority_sort_order: Option<f64>,
4230    /// The position of the issue in parent's sub-issue list.
4231    #[serde(default, skip_serializing_if = "Option::is_none")]
4232    pub sub_issue_sort_order: Option<f64>,
4233    /// The date at which the issue is due.
4234    #[serde(default, skip_serializing_if = "Option::is_none")]
4235    pub due_date: Option<chrono::NaiveDate>,
4236    /// Whether the issue has been trashed.
4237    #[serde(default, skip_serializing_if = "Option::is_none")]
4238    pub trashed: Option<bool>,
4239    /// `Internal` The timestamp at which an issue will be considered in breach of SLA.
4240    #[serde(default, skip_serializing_if = "Option::is_none")]
4241    pub sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
4242    /// `Internal` The timestamp at which the issue's SLA was started.
4243    #[serde(default, skip_serializing_if = "Option::is_none")]
4244    pub sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
4245    /// The time until an issue will be snoozed in Triage view.
4246    #[serde(default, skip_serializing_if = "Option::is_none")]
4247    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
4248    /// The identifier of the user who snoozed the issue.
4249    #[serde(default, skip_serializing_if = "Option::is_none")]
4250    pub snoozed_by_id: Option<String>,
4251    /// The SLA day count type for the issue. Whether SLA should be business days only or calendar days (default).
4252    #[serde(default, skip_serializing_if = "Option::is_none")]
4253    pub sla_type: Option<SLADayCountType>,
4254    /// Whether the issue was automatically closed because its parent issue was closed.
4255    #[serde(default, skip_serializing_if = "Option::is_none")]
4256    pub auto_closed_by_parent_closing: Option<bool>,
4257}
4258#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4259#[serde(rename_all = "camelCase")]
4260pub struct JiraConfigurationInput {
4261    /// The Jira personal access token.
4262    #[serde(default, skip_serializing_if = "Option::is_none")]
4263    pub access_token: Option<String>,
4264    /// The Jira user's email address. A username is also accepted on Jira Server / DC.
4265    #[serde(default, skip_serializing_if = "Option::is_none")]
4266    pub email: Option<String>,
4267    /// The Jira installation hostname.
4268    #[serde(default, skip_serializing_if = "Option::is_none")]
4269    pub hostname: Option<String>,
4270    /// Whether this integration will be setup using the manual webhook flow.
4271    #[serde(default, skip_serializing_if = "Option::is_none")]
4272    pub manual_setup: Option<bool>,
4273}
4274#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4275#[serde(rename_all = "camelCase")]
4276pub struct JiraLinearMappingInput {
4277    /// The Jira id for this project.
4278    #[serde(default, skip_serializing_if = "Option::is_none")]
4279    pub jira_project_id: Option<String>,
4280    /// The Linear team id to map to the given project.
4281    #[serde(default, skip_serializing_if = "Option::is_none")]
4282    pub linear_team_id: Option<String>,
4283    /// Whether the sync for this mapping is bidirectional.
4284    #[serde(default, skip_serializing_if = "Option::is_none")]
4285    pub bidirectional: Option<bool>,
4286    /// Whether this mapping is the default one for issue creation.
4287    #[serde(default, skip_serializing_if = "Option::is_none")]
4288    pub default: Option<bool>,
4289}
4290#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4291#[serde(rename_all = "camelCase")]
4292pub struct JiraPersonalSettingsInput {
4293    /// The name of the Jira site currently authorized through the integration.
4294    #[serde(default, skip_serializing_if = "Option::is_none")]
4295    pub site_name: Option<String>,
4296}
4297#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4298#[serde(rename_all = "camelCase")]
4299pub struct JiraProjectDataInput {
4300    /// The Jira id for this project.
4301    #[serde(default, skip_serializing_if = "Option::is_none")]
4302    pub id: Option<String>,
4303    /// The Jira key for this project, such as ENG.
4304    #[serde(default, skip_serializing_if = "Option::is_none")]
4305    pub key: Option<String>,
4306    /// The Jira name for this project, such as Engineering.
4307    #[serde(default, skip_serializing_if = "Option::is_none")]
4308    pub name: Option<String>,
4309}
4310#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4311#[serde(rename_all = "camelCase")]
4312pub struct JiraSettingsInput {
4313    /// The mapping of Jira project id => Linear team id.
4314    #[serde(default, skip_serializing_if = "Option::is_none")]
4315    pub project_mapping: Option<Vec<Box<JiraLinearMappingInput>>>,
4316    /// The Jira projects for the organization.
4317    #[serde(default, skip_serializing_if = "Option::is_none")]
4318    pub projects: Option<Vec<Box<JiraProjectDataInput>>>,
4319    /// Whether this integration is for Jira Server or not.
4320    #[serde(default, skip_serializing_if = "Option::is_none")]
4321    pub is_jira_server: Option<bool>,
4322    /// 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
4323    #[serde(default, skip_serializing_if = "Option::is_none")]
4324    pub setup_pending: Option<bool>,
4325    /// Whether this integration is using a manual setup flow.
4326    #[serde(default, skip_serializing_if = "Option::is_none")]
4327    pub manual_setup: Option<bool>,
4328    /// The label of the Jira instance, for visual identification purposes only
4329    #[serde(default, skip_serializing_if = "Option::is_none")]
4330    pub label: Option<String>,
4331    /// The status names per issue type, per project.
4332    #[serde(default, skip_serializing_if = "Option::is_none")]
4333    pub status_names_per_issue_type: Option<serde_json::Value>,
4334}
4335#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4336#[serde(rename_all = "camelCase")]
4337pub struct JiraUpdateInput {
4338    /// The id of the integration to update.
4339    #[serde(default, skip_serializing_if = "Option::is_none")]
4340    pub id: Option<String>,
4341    /// Whether to refresh Jira Projects for the integration.
4342    #[serde(default, skip_serializing_if = "Option::is_none")]
4343    pub update_projects: Option<bool>,
4344    /// Whether to refresh Jira metadata for the integration.
4345    #[serde(default, skip_serializing_if = "Option::is_none")]
4346    pub update_metadata: Option<bool>,
4347    /// Whether to delete the current manual webhook configuration.
4348    #[serde(default, skip_serializing_if = "Option::is_none")]
4349    pub delete_webhook: Option<bool>,
4350    /// Webhook secret for a new manual configuration.
4351    #[serde(default, skip_serializing_if = "Option::is_none")]
4352    pub webhook_secret: Option<String>,
4353    /// Whether the Jira instance does not support webhook secrets.
4354    #[serde(default, skip_serializing_if = "Option::is_none")]
4355    pub no_secret: Option<bool>,
4356    /// The Jira personal access token.
4357    #[serde(default, skip_serializing_if = "Option::is_none")]
4358    pub access_token: Option<String>,
4359    /// The Jira user email address associated with the personal access token.
4360    #[serde(default, skip_serializing_if = "Option::is_none")]
4361    pub email: Option<String>,
4362}
4363#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4364#[serde(rename_all = "camelCase")]
4365pub struct JoinOrganizationInput {
4366    /// The identifier of the organization.
4367    #[serde(default, skip_serializing_if = "Option::is_none")]
4368    pub organization_id: Option<String>,
4369    /// An optional invite link for an organization.
4370    #[serde(default, skip_serializing_if = "Option::is_none")]
4371    pub invite_link: Option<String>,
4372}
4373/// Issue label-group sorting options.
4374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4375#[serde(rename_all = "camelCase")]
4376pub struct LabelGroupSort {
4377    /// Whether nulls should be sorted first or last
4378    #[serde(default, skip_serializing_if = "Option::is_none")]
4379    pub nulls: Option<PaginationNulls>,
4380    /// The order for the individual sort
4381    #[serde(default, skip_serializing_if = "Option::is_none")]
4382    pub order: Option<PaginationSortOrder>,
4383    /// The label-group id to sort by
4384    #[serde(default, skip_serializing_if = "Option::is_none")]
4385    pub label_group_id: Option<String>,
4386}
4387/// Issue label sorting options.
4388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4389#[serde(rename_all = "camelCase")]
4390pub struct LabelSort {
4391    /// Whether nulls should be sorted first or last
4392    #[serde(default, skip_serializing_if = "Option::is_none")]
4393    pub nulls: Option<PaginationNulls>,
4394    /// The order for the individual sort
4395    #[serde(default, skip_serializing_if = "Option::is_none")]
4396    pub order: Option<PaginationSortOrder>,
4397}
4398#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4399#[serde(rename_all = "camelCase")]
4400pub struct LaunchDarklySettingsInput {
4401    /// The project key of the LaunchDarkly integration.
4402    #[serde(default, skip_serializing_if = "Option::is_none")]
4403    pub project_key: Option<String>,
4404    /// The environment of the LaunchDarkly integration.
4405    #[serde(default, skip_serializing_if = "Option::is_none")]
4406    pub environment: Option<String>,
4407}
4408/// `ALPHA` Issue link count sorting options.
4409#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4410#[serde(rename_all = "camelCase")]
4411pub struct LinkCountSort {
4412    /// Whether nulls should be sorted first or last
4413    #[serde(default, skip_serializing_if = "Option::is_none")]
4414    pub nulls: Option<PaginationNulls>,
4415    /// The order for the individual sort
4416    #[serde(default, skip_serializing_if = "Option::is_none")]
4417    pub order: Option<PaginationSortOrder>,
4418}
4419/// Issue manual sorting options.
4420#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4421#[serde(rename_all = "camelCase")]
4422pub struct ManualSort {
4423    /// Whether nulls should be sorted first or last
4424    #[serde(default, skip_serializing_if = "Option::is_none")]
4425    pub nulls: Option<PaginationNulls>,
4426    /// The order for the individual sort
4427    #[serde(default, skip_serializing_if = "Option::is_none")]
4428    pub order: Option<PaginationSortOrder>,
4429}
4430#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4431#[serde(rename_all = "camelCase")]
4432pub struct MicrosoftTeamsSettingsInput {
4433    /// The display name of the Azure AD tenant.
4434    #[serde(default, skip_serializing_if = "Option::is_none")]
4435    pub tenant_name: Option<String>,
4436}
4437/// Issue project milestone options.
4438#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4439#[serde(rename_all = "camelCase")]
4440pub struct MilestoneSort {
4441    /// Whether nulls should be sorted first or last
4442    #[serde(default, skip_serializing_if = "Option::is_none")]
4443    pub nulls: Option<PaginationNulls>,
4444    /// The order for the individual sort
4445    #[serde(default, skip_serializing_if = "Option::is_none")]
4446    pub order: Option<PaginationSortOrder>,
4447}
4448/// Customer name sorting options.
4449#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4450#[serde(rename_all = "camelCase")]
4451pub struct NameSort {
4452    /// Whether nulls should be sorted first or last
4453    #[serde(default, skip_serializing_if = "Option::is_none")]
4454    pub nulls: Option<PaginationNulls>,
4455    /// The order for the individual sort
4456    #[serde(default, skip_serializing_if = "Option::is_none")]
4457    pub order: Option<PaginationSortOrder>,
4458}
4459#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4460#[serde(rename_all = "camelCase")]
4461pub struct NotificationCategoryPreferencesInput {
4462    /// The preferences for notifications about assignments.
4463    #[serde(default, skip_serializing_if = "Option::is_none")]
4464    pub assignments: Option<Box<PartialNotificationChannelPreferencesInput>>,
4465    /// The preferences for notifications about status changes.
4466    #[serde(default, skip_serializing_if = "Option::is_none")]
4467    pub status_changes: Option<Box<PartialNotificationChannelPreferencesInput>>,
4468    /// The preferences for notifications about comments and replies.
4469    #[serde(default, skip_serializing_if = "Option::is_none")]
4470    pub comments_and_replies: Option<Box<PartialNotificationChannelPreferencesInput>>,
4471    /// The preferences for notifications about mentions.
4472    #[serde(default, skip_serializing_if = "Option::is_none")]
4473    pub mentions: Option<Box<PartialNotificationChannelPreferencesInput>>,
4474    /// The preferences for notifications about reactions.
4475    #[serde(default, skip_serializing_if = "Option::is_none")]
4476    pub reactions: Option<Box<PartialNotificationChannelPreferencesInput>>,
4477    /// The preferences for notifications about subscriptions.
4478    #[serde(default, skip_serializing_if = "Option::is_none")]
4479    pub subscriptions: Option<Box<PartialNotificationChannelPreferencesInput>>,
4480    /// The preferences for notifications about document changes.
4481    #[serde(default, skip_serializing_if = "Option::is_none")]
4482    pub document_changes: Option<Box<PartialNotificationChannelPreferencesInput>>,
4483    /// The preferences for notifications about posts and updates.
4484    #[serde(default, skip_serializing_if = "Option::is_none")]
4485    pub posts_and_updates: Option<Box<PartialNotificationChannelPreferencesInput>>,
4486    /// The preferences for notifications about reminders.
4487    #[serde(default, skip_serializing_if = "Option::is_none")]
4488    pub reminders: Option<Box<PartialNotificationChannelPreferencesInput>>,
4489    /// The preferences for notifications about reviews.
4490    #[serde(default, skip_serializing_if = "Option::is_none")]
4491    pub reviews: Option<Box<PartialNotificationChannelPreferencesInput>>,
4492    /// The preferences for notifications about apps and integrations.
4493    #[serde(default, skip_serializing_if = "Option::is_none")]
4494    pub apps_and_integrations: Option<Box<PartialNotificationChannelPreferencesInput>>,
4495    /// The preferences for notifications about triage.
4496    #[serde(default, skip_serializing_if = "Option::is_none")]
4497    pub triage: Option<Box<PartialNotificationChannelPreferencesInput>>,
4498    /// The preferences for notifications about customers.
4499    #[serde(default, skip_serializing_if = "Option::is_none")]
4500    pub customers: Option<Box<PartialNotificationChannelPreferencesInput>>,
4501    /// The preferences for notifications about feed summaries.
4502    #[serde(default, skip_serializing_if = "Option::is_none")]
4503    pub feed: Option<Box<PartialNotificationChannelPreferencesInput>>,
4504}
4505#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4506#[serde(rename_all = "camelCase")]
4507pub struct NotificationDeliveryPreferencesChannelInput {
4508    /// The schedule for notifications on this channel.
4509    #[serde(default, skip_serializing_if = "Option::is_none")]
4510    pub schedule: Option<Box<NotificationDeliveryPreferencesScheduleInput>>,
4511}
4512#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4513#[serde(rename_all = "camelCase")]
4514pub struct NotificationDeliveryPreferencesDayInput {
4515    /// The time notifications start.
4516    #[serde(default, skip_serializing_if = "Option::is_none")]
4517    pub start: Option<String>,
4518    /// The time notifications end.
4519    #[serde(default, skip_serializing_if = "Option::is_none")]
4520    pub end: Option<String>,
4521}
4522#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4523#[serde(rename_all = "camelCase")]
4524pub struct NotificationDeliveryPreferencesInput {
4525    /// The delivery preferences for the mobile channel.
4526    #[serde(default, skip_serializing_if = "Option::is_none")]
4527    pub mobile: Option<Box<NotificationDeliveryPreferencesChannelInput>>,
4528}
4529#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4530#[serde(rename_all = "camelCase")]
4531pub struct NotificationDeliveryPreferencesScheduleInput {
4532    /// Whether the schedule is disabled.
4533    #[serde(default, skip_serializing_if = "Option::is_none")]
4534    pub disabled: Option<bool>,
4535    /// Delivery preferences for Sunday.
4536    #[serde(default, skip_serializing_if = "Option::is_none")]
4537    pub sunday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4538    /// Delivery preferences for Monday.
4539    #[serde(default, skip_serializing_if = "Option::is_none")]
4540    pub monday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4541    /// Delivery preferences for Tuesday.
4542    #[serde(default, skip_serializing_if = "Option::is_none")]
4543    pub tuesday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4544    /// Delivery preferences for Wednesday.
4545    #[serde(default, skip_serializing_if = "Option::is_none")]
4546    pub wednesday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4547    /// Delivery preferences for Thursday.
4548    #[serde(default, skip_serializing_if = "Option::is_none")]
4549    pub thursday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4550    /// Delivery preferences for Friday.
4551    #[serde(default, skip_serializing_if = "Option::is_none")]
4552    pub friday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4553    /// Delivery preferences for Saturday.
4554    #[serde(default, skip_serializing_if = "Option::is_none")]
4555    pub saturday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4556}
4557/// Describes the type and id of the entity to target for notifications.
4558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4559#[serde(rename_all = "camelCase")]
4560pub struct NotificationEntityInput {
4561    /// The id of the issue related to the notification.
4562    #[serde(default, skip_serializing_if = "Option::is_none")]
4563    pub issue_id: Option<String>,
4564    /// `DEPRECATED` The id of the project related to the notification.
4565    #[serde(default, skip_serializing_if = "Option::is_none")]
4566    pub project_id: Option<String>,
4567    /// The id of the initiative related to the notification.
4568    #[serde(default, skip_serializing_if = "Option::is_none")]
4569    pub initiative_id: Option<String>,
4570    /// The id of the project update related to the notification.
4571    #[serde(default, skip_serializing_if = "Option::is_none")]
4572    pub project_update_id: Option<String>,
4573    /// The id of the initiative update related to the notification.
4574    #[serde(default, skip_serializing_if = "Option::is_none")]
4575    pub initiative_update_id: Option<String>,
4576    /// The id of the OAuth client approval related to the notification.
4577    #[serde(default, skip_serializing_if = "Option::is_none")]
4578    pub oauth_client_approval_id: Option<String>,
4579    /// The id of the notification.
4580    #[serde(default, skip_serializing_if = "Option::is_none")]
4581    pub id: Option<String>,
4582}
4583/// Notification filtering options.
4584#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4585#[serde(rename_all = "camelCase")]
4586pub struct NotificationFilter {
4587    /// Comparator for the identifier.
4588    #[serde(default, skip_serializing_if = "Option::is_none")]
4589    pub id: Option<Box<IDComparator>>,
4590    /// Comparator for the created at date.
4591    #[serde(default, skip_serializing_if = "Option::is_none")]
4592    pub created_at: Option<Box<DateComparator>>,
4593    /// Comparator for the updated at date.
4594    #[serde(default, skip_serializing_if = "Option::is_none")]
4595    pub updated_at: Option<Box<DateComparator>>,
4596    /// Comparator for the notification type.
4597    #[serde(default, skip_serializing_if = "Option::is_none")]
4598    pub r#type: Option<Box<StringComparator>>,
4599    /// Comparator for the archived at date.
4600    #[serde(default, skip_serializing_if = "Option::is_none")]
4601    pub archived_at: Option<Box<DateComparator>>,
4602    /// Compound filters, all of which need to be matched by the notification.
4603    #[serde(default, skip_serializing_if = "Option::is_none")]
4604    pub and: Option<Vec<Box<NotificationFilter>>>,
4605    /// Compound filters, one of which need to be matched by the notification.
4606    #[serde(default, skip_serializing_if = "Option::is_none")]
4607    pub or: Option<Vec<Box<NotificationFilter>>>,
4608}
4609#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4610#[serde(rename_all = "camelCase")]
4611pub struct NotificationSubscriptionCreateInput {
4612    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
4613    #[serde(default, skip_serializing_if = "Option::is_none")]
4614    pub id: Option<String>,
4615    /// The identifier of the customer to subscribe to.
4616    #[serde(default, skip_serializing_if = "Option::is_none")]
4617    pub customer_id: Option<String>,
4618    /// The identifier of the custom view to subscribe to.
4619    #[serde(default, skip_serializing_if = "Option::is_none")]
4620    pub custom_view_id: Option<String>,
4621    /// The identifier of the cycle to subscribe to.
4622    #[serde(default, skip_serializing_if = "Option::is_none")]
4623    pub cycle_id: Option<String>,
4624    /// The identifier of the initiative to subscribe to.
4625    #[serde(default, skip_serializing_if = "Option::is_none")]
4626    pub initiative_id: Option<String>,
4627    /// The identifier of the label to subscribe to.
4628    #[serde(default, skip_serializing_if = "Option::is_none")]
4629    pub label_id: Option<String>,
4630    /// The identifier of the project to subscribe to.
4631    #[serde(default, skip_serializing_if = "Option::is_none")]
4632    pub project_id: Option<String>,
4633    /// The identifier of the team to subscribe to.
4634    #[serde(default, skip_serializing_if = "Option::is_none")]
4635    pub team_id: Option<String>,
4636    /// The identifier of the user to subscribe to.
4637    #[serde(default, skip_serializing_if = "Option::is_none")]
4638    pub user_id: Option<String>,
4639    /// The type of view to which the notification subscription context is associated with.
4640    #[serde(default, skip_serializing_if = "Option::is_none")]
4641    pub context_view_type: Option<ContextViewType>,
4642    /// The type of user view to which the notification subscription context is associated with.
4643    #[serde(default, skip_serializing_if = "Option::is_none")]
4644    pub user_context_view_type: Option<UserContextViewType>,
4645    /// The types of notifications of the subscription.
4646    #[serde(default, skip_serializing_if = "Option::is_none")]
4647    pub notification_subscription_types: Option<Vec<String>>,
4648    /// Whether the subscription is active.
4649    #[serde(default, skip_serializing_if = "Option::is_none")]
4650    pub active: Option<bool>,
4651}
4652#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4653#[serde(rename_all = "camelCase")]
4654pub struct NotificationSubscriptionUpdateInput {
4655    /// The types of notifications of the subscription.
4656    #[serde(default, skip_serializing_if = "Option::is_none")]
4657    pub notification_subscription_types: Option<Vec<String>>,
4658    /// Whether the subscription is active.
4659    #[serde(default, skip_serializing_if = "Option::is_none")]
4660    pub active: Option<bool>,
4661}
4662#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4663#[serde(rename_all = "camelCase")]
4664pub struct NotificationUpdateInput {
4665    /// The time when notification was marked as read.
4666    #[serde(default, skip_serializing_if = "Option::is_none")]
4667    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
4668    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
4669    #[serde(default, skip_serializing_if = "Option::is_none")]
4670    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
4671    /// The id of the project update related to the notification.
4672    #[serde(default, skip_serializing_if = "Option::is_none")]
4673    pub project_update_id: Option<String>,
4674    /// The id of the project update related to the notification.
4675    #[serde(default, skip_serializing_if = "Option::is_none")]
4676    pub initiative_update_id: Option<String>,
4677}
4678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4679#[serde(rename_all = "camelCase")]
4680pub struct NotionSettingsInput {
4681    /// The ID of the Notion workspace being connected.
4682    #[serde(default, skip_serializing_if = "Option::is_none")]
4683    pub workspace_id: Option<String>,
4684    /// The name of the Notion workspace being connected.
4685    #[serde(default, skip_serializing_if = "Option::is_none")]
4686    pub workspace_name: Option<String>,
4687}
4688/// Comment filtering options.
4689#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4690#[serde(rename_all = "camelCase")]
4691pub struct NullableCommentFilter {
4692    /// Comparator for the identifier.
4693    #[serde(default, skip_serializing_if = "Option::is_none")]
4694    pub id: Option<Box<IDComparator>>,
4695    /// Comparator for the created at date.
4696    #[serde(default, skip_serializing_if = "Option::is_none")]
4697    pub created_at: Option<Box<DateComparator>>,
4698    /// Comparator for the updated at date.
4699    #[serde(default, skip_serializing_if = "Option::is_none")]
4700    pub updated_at: Option<Box<DateComparator>>,
4701    /// Comparator for the comment's body.
4702    #[serde(default, skip_serializing_if = "Option::is_none")]
4703    pub body: Option<Box<StringComparator>>,
4704    /// Filters that the comment's creator must satisfy.
4705    #[serde(default, skip_serializing_if = "Option::is_none")]
4706    pub user: Option<Box<UserFilter>>,
4707    /// Filters that the comment's issue must satisfy.
4708    #[serde(default, skip_serializing_if = "Option::is_none")]
4709    pub issue: Option<Box<NullableIssueFilter>>,
4710    /// Filters that the comment's project update must satisfy.
4711    #[serde(default, skip_serializing_if = "Option::is_none")]
4712    pub project_update: Option<Box<NullableProjectUpdateFilter>>,
4713    /// Filters that the comment parent must satisfy.
4714    #[serde(default, skip_serializing_if = "Option::is_none")]
4715    pub parent: Option<Box<NullableCommentFilter>>,
4716    /// Filters that the comment's document content must satisfy.
4717    #[serde(default, skip_serializing_if = "Option::is_none")]
4718    pub document_content: Option<Box<NullableDocumentContentFilter>>,
4719    /// Filters that the comment's reactions must satisfy.
4720    #[serde(default, skip_serializing_if = "Option::is_none")]
4721    pub reactions: Option<Box<ReactionCollectionFilter>>,
4722    /// Filters that the comment's customer needs must satisfy.
4723    #[serde(default, skip_serializing_if = "Option::is_none")]
4724    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
4725    /// Filter based on the existence of the relation.
4726    #[serde(default, skip_serializing_if = "Option::is_none")]
4727    pub null: Option<bool>,
4728    /// Compound filters, all of which need to be matched by the comment.
4729    #[serde(default, skip_serializing_if = "Option::is_none")]
4730    pub and: Option<Vec<Box<NullableCommentFilter>>>,
4731    /// Compound filters, one of which need to be matched by the comment.
4732    #[serde(default, skip_serializing_if = "Option::is_none")]
4733    pub or: Option<Vec<Box<NullableCommentFilter>>>,
4734}
4735/// Customer filtering options.
4736#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4737#[serde(rename_all = "camelCase")]
4738pub struct NullableCustomerFilter {
4739    /// Comparator for the identifier.
4740    #[serde(default, skip_serializing_if = "Option::is_none")]
4741    pub id: Option<Box<IDComparator>>,
4742    /// Comparator for the created at date.
4743    #[serde(default, skip_serializing_if = "Option::is_none")]
4744    pub created_at: Option<Box<DateComparator>>,
4745    /// Comparator for the updated at date.
4746    #[serde(default, skip_serializing_if = "Option::is_none")]
4747    pub updated_at: Option<Box<DateComparator>>,
4748    /// Comparator for the customer name.
4749    #[serde(default, skip_serializing_if = "Option::is_none")]
4750    pub name: Option<Box<StringComparator>>,
4751    /// Comparator for the customer slack channel ID.
4752    #[serde(default, skip_serializing_if = "Option::is_none")]
4753    pub slack_channel_id: Option<Box<StringComparator>>,
4754    /// Comparator for the customer's domains.
4755    #[serde(default, skip_serializing_if = "Option::is_none")]
4756    pub domains: Option<Box<StringArrayComparator>>,
4757    /// Comparator for the customer's external IDs.
4758    #[serde(default, skip_serializing_if = "Option::is_none")]
4759    pub external_ids: Option<Box<StringArrayComparator>>,
4760    /// Filters that the customer owner must satisfy.
4761    #[serde(default, skip_serializing_if = "Option::is_none")]
4762    pub owner: Option<Box<NullableUserFilter>>,
4763    /// Filters that the customer's needs must satisfy.
4764    #[serde(default, skip_serializing_if = "Option::is_none")]
4765    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
4766    /// Comparator for the customer generated revenue.
4767    #[serde(default, skip_serializing_if = "Option::is_none")]
4768    pub revenue: Option<Box<NumberComparator>>,
4769    /// Comparator for the customer size.
4770    #[serde(default, skip_serializing_if = "Option::is_none")]
4771    pub size: Option<Box<NumberComparator>>,
4772    /// Filters that the customer's status must satisfy.
4773    #[serde(default, skip_serializing_if = "Option::is_none")]
4774    pub status: Option<Box<CustomerStatusFilter>>,
4775    /// Filters that the customer's tier must satisfy.
4776    #[serde(default, skip_serializing_if = "Option::is_none")]
4777    pub tier: Option<Box<CustomerTierFilter>>,
4778    /// Filter based on the existence of the relation.
4779    #[serde(default, skip_serializing_if = "Option::is_none")]
4780    pub null: Option<bool>,
4781    /// Compound filters, all of which need to be matched by the customer.
4782    #[serde(default, skip_serializing_if = "Option::is_none")]
4783    pub and: Option<Vec<Box<NullableCustomerFilter>>>,
4784    /// Compound filters, one of which need to be matched by the customer.
4785    #[serde(default, skip_serializing_if = "Option::is_none")]
4786    pub or: Option<Vec<Box<NullableCustomerFilter>>>,
4787}
4788/// Cycle filtering options.
4789#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4790#[serde(rename_all = "camelCase")]
4791pub struct NullableCycleFilter {
4792    /// Comparator for the identifier.
4793    #[serde(default, skip_serializing_if = "Option::is_none")]
4794    pub id: Option<Box<IDComparator>>,
4795    /// Comparator for the created at date.
4796    #[serde(default, skip_serializing_if = "Option::is_none")]
4797    pub created_at: Option<Box<DateComparator>>,
4798    /// Comparator for the updated at date.
4799    #[serde(default, skip_serializing_if = "Option::is_none")]
4800    pub updated_at: Option<Box<DateComparator>>,
4801    /// Comparator for the cycle number.
4802    #[serde(default, skip_serializing_if = "Option::is_none")]
4803    pub number: Option<Box<NumberComparator>>,
4804    /// Comparator for the cycle name.
4805    #[serde(default, skip_serializing_if = "Option::is_none")]
4806    pub name: Option<Box<StringComparator>>,
4807    /// Comparator for the cycle start date.
4808    #[serde(default, skip_serializing_if = "Option::is_none")]
4809    pub starts_at: Option<Box<DateComparator>>,
4810    /// Comparator for the cycle ends at date.
4811    #[serde(default, skip_serializing_if = "Option::is_none")]
4812    pub ends_at: Option<Box<DateComparator>>,
4813    /// Comparator for the cycle completed at date.
4814    #[serde(default, skip_serializing_if = "Option::is_none")]
4815    pub completed_at: Option<Box<DateComparator>>,
4816    /// Comparator for the filtering active cycle.
4817    #[serde(default, skip_serializing_if = "Option::is_none")]
4818    pub is_active: Option<Box<BooleanComparator>>,
4819    /// Comparator for filtering for whether the cycle is currently in cooldown.
4820    #[serde(default, skip_serializing_if = "Option::is_none")]
4821    pub is_in_cooldown: Option<Box<BooleanComparator>>,
4822    /// Comparator for the filtering next cycle.
4823    #[serde(default, skip_serializing_if = "Option::is_none")]
4824    pub is_next: Option<Box<BooleanComparator>>,
4825    /// Comparator for the filtering previous cycle.
4826    #[serde(default, skip_serializing_if = "Option::is_none")]
4827    pub is_previous: Option<Box<BooleanComparator>>,
4828    /// Comparator for the filtering future cycles.
4829    #[serde(default, skip_serializing_if = "Option::is_none")]
4830    pub is_future: Option<Box<BooleanComparator>>,
4831    /// Comparator for the filtering past cycles.
4832    #[serde(default, skip_serializing_if = "Option::is_none")]
4833    pub is_past: Option<Box<BooleanComparator>>,
4834    /// Filters that the cycles team must satisfy.
4835    #[serde(default, skip_serializing_if = "Option::is_none")]
4836    pub team: Option<Box<TeamFilter>>,
4837    /// Filters that the cycles issues must satisfy.
4838    #[serde(default, skip_serializing_if = "Option::is_none")]
4839    pub issues: Option<Box<IssueCollectionFilter>>,
4840    /// Comparator for the inherited cycle ID.
4841    #[serde(default, skip_serializing_if = "Option::is_none")]
4842    pub inherited_from_id: Option<Box<IDComparator>>,
4843    /// Filter based on the existence of the relation.
4844    #[serde(default, skip_serializing_if = "Option::is_none")]
4845    pub null: Option<bool>,
4846    /// Compound filters, all of which need to be matched by the cycle.
4847    #[serde(default, skip_serializing_if = "Option::is_none")]
4848    pub and: Option<Vec<Box<NullableCycleFilter>>>,
4849    /// Compound filters, one of which need to be matched by the cycle.
4850    #[serde(default, skip_serializing_if = "Option::is_none")]
4851    pub or: Option<Vec<Box<NullableCycleFilter>>>,
4852}
4853/// Comparator for optional dates.
4854#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4855#[serde(rename_all = "camelCase")]
4856pub struct NullableDateComparator {
4857    /// Equals constraint.
4858    #[serde(default, skip_serializing_if = "Option::is_none")]
4859    pub eq: Option<serde_json::Value>,
4860    /// Not-equals constraint.
4861    #[serde(default, skip_serializing_if = "Option::is_none")]
4862    pub neq: Option<serde_json::Value>,
4863    /// In-array constraint.
4864    #[serde(default, skip_serializing_if = "Option::is_none")]
4865    pub r#in: Option<Vec<serde_json::Value>>,
4866    /// Not-in-array constraint.
4867    #[serde(default, skip_serializing_if = "Option::is_none")]
4868    pub nin: Option<Vec<serde_json::Value>>,
4869    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
4870    #[serde(default, skip_serializing_if = "Option::is_none")]
4871    pub null: Option<bool>,
4872    /// Less-than constraint. Matches any values that are less than the given value.
4873    #[serde(default, skip_serializing_if = "Option::is_none")]
4874    pub lt: Option<serde_json::Value>,
4875    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
4876    #[serde(default, skip_serializing_if = "Option::is_none")]
4877    pub lte: Option<serde_json::Value>,
4878    /// Greater-than constraint. Matches any values that are greater than the given value.
4879    #[serde(default, skip_serializing_if = "Option::is_none")]
4880    pub gt: Option<serde_json::Value>,
4881    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
4882    #[serde(default, skip_serializing_if = "Option::is_none")]
4883    pub gte: Option<serde_json::Value>,
4884}
4885/// Document content filtering options.
4886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4887#[serde(rename_all = "camelCase")]
4888pub struct NullableDocumentContentFilter {
4889    /// Comparator for the identifier.
4890    #[serde(default, skip_serializing_if = "Option::is_none")]
4891    pub id: Option<Box<IDComparator>>,
4892    /// Comparator for the created at date.
4893    #[serde(default, skip_serializing_if = "Option::is_none")]
4894    pub created_at: Option<Box<DateComparator>>,
4895    /// Comparator for the updated at date.
4896    #[serde(default, skip_serializing_if = "Option::is_none")]
4897    pub updated_at: Option<Box<DateComparator>>,
4898    /// Comparator for the document content.
4899    #[serde(default, skip_serializing_if = "Option::is_none")]
4900    pub content: Option<Box<NullableStringComparator>>,
4901    /// Filters that the document content project must satisfy.
4902    #[serde(default, skip_serializing_if = "Option::is_none")]
4903    pub project: Option<Box<ProjectFilter>>,
4904    /// Filters that the document content document must satisfy.
4905    #[serde(default, skip_serializing_if = "Option::is_none")]
4906    pub document: Option<Box<DocumentFilter>>,
4907    /// Filter based on the existence of the relation.
4908    #[serde(default, skip_serializing_if = "Option::is_none")]
4909    pub null: Option<bool>,
4910    /// Compound filters, all of which need to be matched by the user.
4911    #[serde(default, skip_serializing_if = "Option::is_none")]
4912    pub and: Option<Vec<Box<NullableDocumentContentFilter>>>,
4913    /// Compound filters, one of which need to be matched by the user.
4914    #[serde(default, skip_serializing_if = "Option::is_none")]
4915    pub or: Option<Vec<Box<NullableDocumentContentFilter>>>,
4916}
4917/// Nullable comparator for optional durations.
4918#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4919#[serde(rename_all = "camelCase")]
4920pub struct NullableDurationComparator {
4921    /// Equals constraint.
4922    #[serde(default, skip_serializing_if = "Option::is_none")]
4923    pub eq: Option<serde_json::Value>,
4924    /// Not-equals constraint.
4925    #[serde(default, skip_serializing_if = "Option::is_none")]
4926    pub neq: Option<serde_json::Value>,
4927    /// In-array constraint.
4928    #[serde(default, skip_serializing_if = "Option::is_none")]
4929    pub r#in: Option<Vec<serde_json::Value>>,
4930    /// Not-in-array constraint.
4931    #[serde(default, skip_serializing_if = "Option::is_none")]
4932    pub nin: Option<Vec<serde_json::Value>>,
4933    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
4934    #[serde(default, skip_serializing_if = "Option::is_none")]
4935    pub null: Option<bool>,
4936    /// Less-than constraint. Matches any values that are less than the given value.
4937    #[serde(default, skip_serializing_if = "Option::is_none")]
4938    pub lt: Option<serde_json::Value>,
4939    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
4940    #[serde(default, skip_serializing_if = "Option::is_none")]
4941    pub lte: Option<serde_json::Value>,
4942    /// Greater-than constraint. Matches any values that are greater than the given value.
4943    #[serde(default, skip_serializing_if = "Option::is_none")]
4944    pub gt: Option<serde_json::Value>,
4945    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
4946    #[serde(default, skip_serializing_if = "Option::is_none")]
4947    pub gte: Option<serde_json::Value>,
4948}
4949/// Issue filtering options.
4950#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4951#[serde(rename_all = "camelCase")]
4952pub struct NullableIssueFilter {
4953    /// Comparator for the identifier.
4954    #[serde(default, skip_serializing_if = "Option::is_none")]
4955    pub id: Option<Box<IssueIDComparator>>,
4956    /// Comparator for the created at date.
4957    #[serde(default, skip_serializing_if = "Option::is_none")]
4958    pub created_at: Option<Box<DateComparator>>,
4959    /// Comparator for the updated at date.
4960    #[serde(default, skip_serializing_if = "Option::is_none")]
4961    pub updated_at: Option<Box<DateComparator>>,
4962    /// Comparator for the issues number.
4963    #[serde(default, skip_serializing_if = "Option::is_none")]
4964    pub number: Option<Box<NumberComparator>>,
4965    /// Comparator for the issues title.
4966    #[serde(default, skip_serializing_if = "Option::is_none")]
4967    pub title: Option<Box<StringComparator>>,
4968    /// Comparator for the issues description.
4969    #[serde(default, skip_serializing_if = "Option::is_none")]
4970    pub description: Option<Box<NullableStringComparator>>,
4971    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
4972    #[serde(default, skip_serializing_if = "Option::is_none")]
4973    pub priority: Option<Box<NullableNumberComparator>>,
4974    /// Comparator for the issues estimate.
4975    #[serde(default, skip_serializing_if = "Option::is_none")]
4976    pub estimate: Option<Box<EstimateComparator>>,
4977    /// Comparator for the issues started at date.
4978    #[serde(default, skip_serializing_if = "Option::is_none")]
4979    pub started_at: Option<Box<NullableDateComparator>>,
4980    /// Comparator for the issues triaged at date.
4981    #[serde(default, skip_serializing_if = "Option::is_none")]
4982    pub triaged_at: Option<Box<NullableDateComparator>>,
4983    /// Comparator for the issues completed at date.
4984    #[serde(default, skip_serializing_if = "Option::is_none")]
4985    pub completed_at: Option<Box<NullableDateComparator>>,
4986    /// Comparator for the issues canceled at date.
4987    #[serde(default, skip_serializing_if = "Option::is_none")]
4988    pub canceled_at: Option<Box<NullableDateComparator>>,
4989    /// Comparator for the issues archived at date.
4990    #[serde(default, skip_serializing_if = "Option::is_none")]
4991    pub archived_at: Option<Box<NullableDateComparator>>,
4992    /// Comparator for the issues auto closed at date.
4993    #[serde(default, skip_serializing_if = "Option::is_none")]
4994    pub auto_closed_at: Option<Box<NullableDateComparator>>,
4995    /// Comparator for the issues auto archived at date.
4996    #[serde(default, skip_serializing_if = "Option::is_none")]
4997    pub auto_archived_at: Option<Box<NullableDateComparator>>,
4998    /// Comparator for the issues added to cycle at date.
4999    #[serde(default, skip_serializing_if = "Option::is_none")]
5000    pub added_to_cycle_at: Option<Box<NullableDateComparator>>,
5001    /// Comparator for the period when issue was added to a cycle.
5002    #[serde(default, skip_serializing_if = "Option::is_none")]
5003    pub added_to_cycle_period: Option<Box<CyclePeriodComparator>>,
5004    /// Comparator for the issues due date.
5005    #[serde(default, skip_serializing_if = "Option::is_none")]
5006    pub due_date: Option<Box<NullableTimelessDateComparator>>,
5007    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
5008    #[serde(default, skip_serializing_if = "Option::is_none")]
5009    pub accumulated_state_updated_at: Option<Box<NullableDateComparator>>,
5010    /// Comparator for the issues snoozed until date.
5011    #[serde(default, skip_serializing_if = "Option::is_none")]
5012    pub snoozed_until_at: Option<Box<NullableDateComparator>>,
5013    /// Filters that the issues assignee must satisfy.
5014    #[serde(default, skip_serializing_if = "Option::is_none")]
5015    pub assignee: Option<Box<NullableUserFilter>>,
5016    /// Filters that the issue's delegated agent must satisfy.
5017    #[serde(default, skip_serializing_if = "Option::is_none")]
5018    pub delegate: Option<Box<NullableUserFilter>>,
5019    /// Filters that the last applied template must satisfy.
5020    #[serde(default, skip_serializing_if = "Option::is_none")]
5021    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
5022    /// `ALPHA` Filters that the recurring issue template must satisfy.
5023    #[serde(default, skip_serializing_if = "Option::is_none")]
5024    pub recurring_issue_template: Option<Box<NullableTemplateFilter>>,
5025    /// Filters that the source must satisfy.
5026    #[serde(default, skip_serializing_if = "Option::is_none")]
5027    pub source_metadata: Option<Box<SourceMetadataComparator>>,
5028    /// Filters that the issues creator must satisfy.
5029    #[serde(default, skip_serializing_if = "Option::is_none")]
5030    pub creator: Option<Box<NullableUserFilter>>,
5031    /// Filters that the issue parent must satisfy.
5032    #[serde(default, skip_serializing_if = "Option::is_none")]
5033    pub parent: Option<Box<NullableIssueFilter>>,
5034    /// Filters that the issues snoozer must satisfy.
5035    #[serde(default, skip_serializing_if = "Option::is_none")]
5036    pub snoozed_by: Option<Box<NullableUserFilter>>,
5037    /// Filters that issue labels must satisfy.
5038    #[serde(default, skip_serializing_if = "Option::is_none")]
5039    pub labels: Option<Box<IssueLabelCollectionFilter>>,
5040    /// Filters that issue subscribers must satisfy.
5041    #[serde(default, skip_serializing_if = "Option::is_none")]
5042    pub subscribers: Option<Box<UserCollectionFilter>>,
5043    /// Comparator for filtering issues which have been shared with users outside of the team.
5044    #[serde(default, skip_serializing_if = "Option::is_none")]
5045    pub has_shared_users: Option<Box<RelationExistsComparator>>,
5046    /// Filters that users the issue has been shared with must satisfy.
5047    #[serde(default, skip_serializing_if = "Option::is_none")]
5048    pub shared_with: Option<Box<UserCollectionFilter>>,
5049    /// Filters that the issues team must satisfy.
5050    #[serde(default, skip_serializing_if = "Option::is_none")]
5051    pub team: Option<Box<TeamFilter>>,
5052    /// Filters that the issues project milestone must satisfy.
5053    #[serde(default, skip_serializing_if = "Option::is_none")]
5054    pub project_milestone: Option<Box<NullableProjectMilestoneFilter>>,
5055    /// Filters that the issues comments must satisfy.
5056    #[serde(default, skip_serializing_if = "Option::is_none")]
5057    pub comments: Option<Box<CommentCollectionFilter>>,
5058    /// Filters that the issue's activities must satisfy.
5059    #[serde(default, skip_serializing_if = "Option::is_none")]
5060    pub activity: Option<Box<ActivityCollectionFilter>>,
5061    /// `Internal` Filters that the issue's suggestions must satisfy.
5062    #[serde(default, skip_serializing_if = "Option::is_none")]
5063    pub suggestions: Option<Box<IssueSuggestionCollectionFilter>>,
5064    /// Filters that the issues cycle must satisfy.
5065    #[serde(default, skip_serializing_if = "Option::is_none")]
5066    pub cycle: Option<Box<NullableCycleFilter>>,
5067    /// Filters that the issues project must satisfy.
5068    #[serde(default, skip_serializing_if = "Option::is_none")]
5069    pub project: Option<Box<NullableProjectFilter>>,
5070    /// Filters that the issues state must satisfy.
5071    #[serde(default, skip_serializing_if = "Option::is_none")]
5072    pub state: Option<Box<WorkflowStateFilter>>,
5073    /// Filters that the child issues must satisfy.
5074    #[serde(default, skip_serializing_if = "Option::is_none")]
5075    pub children: Option<Box<IssueCollectionFilter>>,
5076    /// Filters that the issues attachments must satisfy.
5077    #[serde(default, skip_serializing_if = "Option::is_none")]
5078    pub attachments: Option<Box<AttachmentCollectionFilter>>,
5079    /// `Internal` Comparator for the issues content.
5080    #[serde(default, skip_serializing_if = "Option::is_none")]
5081    pub searchable_content: Option<Box<ContentComparator>>,
5082    /// Comparator for filtering issues with relations.
5083    #[serde(default, skip_serializing_if = "Option::is_none")]
5084    pub has_related_relations: Option<Box<RelationExistsComparator>>,
5085    /// Comparator for filtering issues which are duplicates.
5086    #[serde(default, skip_serializing_if = "Option::is_none")]
5087    pub has_duplicate_relations: Option<Box<RelationExistsComparator>>,
5088    /// Comparator for filtering issues which are blocked.
5089    #[serde(default, skip_serializing_if = "Option::is_none")]
5090    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
5091    /// Comparator for filtering issues which are blocking.
5092    #[serde(default, skip_serializing_if = "Option::is_none")]
5093    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
5094    /// `Internal` Comparator for filtering issues which have suggested related issues.
5095    #[serde(default, skip_serializing_if = "Option::is_none")]
5096    pub has_suggested_related_issues: Option<Box<RelationExistsComparator>>,
5097    /// `Internal` Comparator for filtering issues which have suggested similar issues.
5098    #[serde(default, skip_serializing_if = "Option::is_none")]
5099    pub has_suggested_similar_issues: Option<Box<RelationExistsComparator>>,
5100    /// `Internal` Comparator for filtering issues which have suggested assignees.
5101    #[serde(default, skip_serializing_if = "Option::is_none")]
5102    pub has_suggested_assignees: Option<Box<RelationExistsComparator>>,
5103    /// `Internal` Comparator for filtering issues which have suggested projects.
5104    #[serde(default, skip_serializing_if = "Option::is_none")]
5105    pub has_suggested_projects: Option<Box<RelationExistsComparator>>,
5106    /// `Internal` Comparator for filtering issues which have suggested labels.
5107    #[serde(default, skip_serializing_if = "Option::is_none")]
5108    pub has_suggested_labels: Option<Box<RelationExistsComparator>>,
5109    /// `Internal` Comparator for filtering issues which have suggested teams.
5110    #[serde(default, skip_serializing_if = "Option::is_none")]
5111    pub has_suggested_teams: Option<Box<RelationExistsComparator>>,
5112    /// Comparator for the issues sla status.
5113    #[serde(default, skip_serializing_if = "Option::is_none")]
5114    pub sla_status: Option<Box<SlaStatusComparator>>,
5115    /// Filters that the issues reactions must satisfy.
5116    #[serde(default, skip_serializing_if = "Option::is_none")]
5117    pub reactions: Option<Box<ReactionCollectionFilter>>,
5118    /// Filters that the issue's customer needs must satisfy.
5119    #[serde(default, skip_serializing_if = "Option::is_none")]
5120    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
5121    /// `ALPHA` Filters that the issue's releases must satisfy.
5122    #[serde(default, skip_serializing_if = "Option::is_none")]
5123    pub releases: Option<Box<ReleaseCollectionFilter>>,
5124    /// Count of customers
5125    #[serde(default, skip_serializing_if = "Option::is_none")]
5126    pub customer_count: Option<Box<NumberComparator>>,
5127    /// Count of important customers
5128    #[serde(default, skip_serializing_if = "Option::is_none")]
5129    pub customer_important_count: Option<Box<NumberComparator>>,
5130    /// `Internal` Lead time (created -> completed) comparator.
5131    #[serde(default, skip_serializing_if = "Option::is_none")]
5132    pub lead_time: Option<Box<NullableDurationComparator>>,
5133    /// `Internal` Cycle time (started -> completed) comparator.
5134    #[serde(default, skip_serializing_if = "Option::is_none")]
5135    pub cycle_time: Option<Box<NullableDurationComparator>>,
5136    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
5137    #[serde(default, skip_serializing_if = "Option::is_none")]
5138    pub age_time: Option<Box<NullableDurationComparator>>,
5139    /// `Internal` Triage time (entered triaged -> triaged) comparator.
5140    #[serde(default, skip_serializing_if = "Option::is_none")]
5141    pub triage_time: Option<Box<NullableDurationComparator>>,
5142    /// Filter based on the existence of the relation.
5143    #[serde(default, skip_serializing_if = "Option::is_none")]
5144    pub null: Option<bool>,
5145    /// Compound filters, all of which need to be matched by the issue.
5146    #[serde(default, skip_serializing_if = "Option::is_none")]
5147    pub and: Option<Vec<Box<NullableIssueFilter>>>,
5148    /// Compound filters, one of which need to be matched by the issue.
5149    #[serde(default, skip_serializing_if = "Option::is_none")]
5150    pub or: Option<Vec<Box<NullableIssueFilter>>>,
5151}
5152/// Comparator for optional numbers.
5153#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5154#[serde(rename_all = "camelCase")]
5155pub struct NullableNumberComparator {
5156    /// Equals constraint.
5157    #[serde(default, skip_serializing_if = "Option::is_none")]
5158    pub eq: Option<f64>,
5159    /// Not-equals constraint.
5160    #[serde(default, skip_serializing_if = "Option::is_none")]
5161    pub neq: Option<f64>,
5162    /// In-array constraint.
5163    #[serde(default, skip_serializing_if = "Option::is_none")]
5164    pub r#in: Option<Vec<f64>>,
5165    /// Not-in-array constraint.
5166    #[serde(default, skip_serializing_if = "Option::is_none")]
5167    pub nin: Option<Vec<f64>>,
5168    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5169    #[serde(default, skip_serializing_if = "Option::is_none")]
5170    pub null: Option<bool>,
5171    /// Less-than constraint. Matches any values that are less than the given value.
5172    #[serde(default, skip_serializing_if = "Option::is_none")]
5173    pub lt: Option<f64>,
5174    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5175    #[serde(default, skip_serializing_if = "Option::is_none")]
5176    pub lte: Option<f64>,
5177    /// Greater-than constraint. Matches any values that are greater than the given value.
5178    #[serde(default, skip_serializing_if = "Option::is_none")]
5179    pub gt: Option<f64>,
5180    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5181    #[serde(default, skip_serializing_if = "Option::is_none")]
5182    pub gte: Option<f64>,
5183}
5184/// Project filtering options.
5185#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5186#[serde(rename_all = "camelCase")]
5187pub struct NullableProjectFilter {
5188    /// Comparator for the identifier.
5189    #[serde(default, skip_serializing_if = "Option::is_none")]
5190    pub id: Option<Box<IDComparator>>,
5191    /// Comparator for the created at date.
5192    #[serde(default, skip_serializing_if = "Option::is_none")]
5193    pub created_at: Option<Box<DateComparator>>,
5194    /// Comparator for the updated at date.
5195    #[serde(default, skip_serializing_if = "Option::is_none")]
5196    pub updated_at: Option<Box<DateComparator>>,
5197    /// Comparator for the project name.
5198    #[serde(default, skip_serializing_if = "Option::is_none")]
5199    pub name: Option<Box<StringComparator>>,
5200    /// Comparator for the project slug ID.
5201    #[serde(default, skip_serializing_if = "Option::is_none")]
5202    pub slug_id: Option<Box<StringComparator>>,
5203    /// `DEPRECATED` Comparator for the project state.
5204    #[serde(default, skip_serializing_if = "Option::is_none")]
5205    pub state: Option<Box<StringComparator>>,
5206    /// Filters that the project's status must satisfy.
5207    #[serde(default, skip_serializing_if = "Option::is_none")]
5208    pub status: Option<Box<ProjectStatusFilter>>,
5209    /// Comparator for the projects priority.
5210    #[serde(default, skip_serializing_if = "Option::is_none")]
5211    pub priority: Option<Box<NullableNumberComparator>>,
5212    /// Filters that project labels must satisfy.
5213    #[serde(default, skip_serializing_if = "Option::is_none")]
5214    pub labels: Option<Box<ProjectLabelCollectionFilter>>,
5215    /// `Internal` Comparator for the project's content.
5216    #[serde(default, skip_serializing_if = "Option::is_none")]
5217    pub searchable_content: Option<Box<ContentComparator>>,
5218    /// Comparator for the project started date (when it was moved to an "In Progress" status).
5219    #[serde(default, skip_serializing_if = "Option::is_none")]
5220    pub started_at: Option<Box<NullableDateComparator>>,
5221    /// Comparator for the project completion date.
5222    #[serde(default, skip_serializing_if = "Option::is_none")]
5223    pub completed_at: Option<Box<NullableDateComparator>>,
5224    /// Comparator for the project cancelation date.
5225    #[serde(default, skip_serializing_if = "Option::is_none")]
5226    pub canceled_at: Option<Box<NullableDateComparator>>,
5227    /// Comparator for the project start date.
5228    #[serde(default, skip_serializing_if = "Option::is_none")]
5229    pub start_date: Option<Box<NullableDateComparator>>,
5230    /// Comparator for the project target date.
5231    #[serde(default, skip_serializing_if = "Option::is_none")]
5232    pub target_date: Option<Box<NullableDateComparator>>,
5233    /// Comparator for the project health: onTrack, atRisk, offTrack
5234    #[serde(default, skip_serializing_if = "Option::is_none")]
5235    pub health: Option<Box<StringComparator>>,
5236    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
5237    #[serde(default, skip_serializing_if = "Option::is_none")]
5238    pub health_with_age: Option<Box<StringComparator>>,
5239    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
5240    #[serde(default, skip_serializing_if = "Option::is_none")]
5241    pub activity_type: Option<Box<StringComparator>>,
5242    /// Comparator for filtering projects with relations.
5243    #[serde(default, skip_serializing_if = "Option::is_none")]
5244    pub has_related_relations: Option<Box<RelationExistsComparator>>,
5245    /// `Deprecated` Comparator for filtering projects which this is depended on by.
5246    #[serde(default, skip_serializing_if = "Option::is_none")]
5247    pub has_depended_on_by_relations: Option<Box<RelationExistsComparator>>,
5248    /// `Deprecated`Comparator for filtering projects which this depends on.
5249    #[serde(default, skip_serializing_if = "Option::is_none")]
5250    pub has_depends_on_relations: Option<Box<RelationExistsComparator>>,
5251    /// Comparator for filtering projects which are blocked.
5252    #[serde(default, skip_serializing_if = "Option::is_none")]
5253    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
5254    /// Comparator for filtering projects which are blocking.
5255    #[serde(default, skip_serializing_if = "Option::is_none")]
5256    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
5257    /// Comparator for filtering projects with violated dependencies.
5258    #[serde(default, skip_serializing_if = "Option::is_none")]
5259    pub has_violated_relations: Option<Box<RelationExistsComparator>>,
5260    /// Comparator for the project updates.
5261    #[serde(default, skip_serializing_if = "Option::is_none")]
5262    pub project_updates: Option<Box<ProjectUpdatesCollectionFilter>>,
5263    /// Filters that the projects creator must satisfy.
5264    #[serde(default, skip_serializing_if = "Option::is_none")]
5265    pub creator: Option<Box<UserFilter>>,
5266    /// Filters that the projects lead must satisfy.
5267    #[serde(default, skip_serializing_if = "Option::is_none")]
5268    pub lead: Option<Box<NullableUserFilter>>,
5269    /// Filters that the projects members must satisfy.
5270    #[serde(default, skip_serializing_if = "Option::is_none")]
5271    pub members: Option<Box<UserCollectionFilter>>,
5272    /// Filters that the projects issues must satisfy.
5273    #[serde(default, skip_serializing_if = "Option::is_none")]
5274    pub issues: Option<Box<IssueCollectionFilter>>,
5275    /// Filters that the projects roadmaps must satisfy.
5276    #[serde(default, skip_serializing_if = "Option::is_none")]
5277    pub roadmaps: Option<Box<RoadmapCollectionFilter>>,
5278    /// Filters that the projects initiatives must satisfy.
5279    #[serde(default, skip_serializing_if = "Option::is_none")]
5280    pub initiatives: Option<Box<InitiativeCollectionFilter>>,
5281    /// Filters that the project's milestones must satisfy.
5282    #[serde(default, skip_serializing_if = "Option::is_none")]
5283    pub project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
5284    /// Filters that the project's completed milestones must satisfy.
5285    #[serde(default, skip_serializing_if = "Option::is_none")]
5286    pub completed_project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
5287    /// Filters that the project's next milestone must satisfy.
5288    #[serde(default, skip_serializing_if = "Option::is_none")]
5289    pub next_project_milestone: Option<Box<ProjectMilestoneFilter>>,
5290    /// Filters that the project's team must satisfy.
5291    #[serde(default, skip_serializing_if = "Option::is_none")]
5292    pub accessible_teams: Option<Box<TeamCollectionFilter>>,
5293    /// Filters that the last applied template must satisfy.
5294    #[serde(default, skip_serializing_if = "Option::is_none")]
5295    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
5296    /// Filters that the project's customer needs must satisfy.
5297    #[serde(default, skip_serializing_if = "Option::is_none")]
5298    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
5299    /// Count of customers
5300    #[serde(default, skip_serializing_if = "Option::is_none")]
5301    pub customer_count: Option<Box<NumberComparator>>,
5302    /// Count of important customers
5303    #[serde(default, skip_serializing_if = "Option::is_none")]
5304    pub customer_important_count: Option<Box<NumberComparator>>,
5305    /// Filter based on the existence of the relation.
5306    #[serde(default, skip_serializing_if = "Option::is_none")]
5307    pub null: Option<bool>,
5308    /// Compound filters, all of which need to be matched by the project.
5309    #[serde(default, skip_serializing_if = "Option::is_none")]
5310    pub and: Option<Vec<Box<NullableProjectFilter>>>,
5311    /// Compound filters, one of which need to be matched by the project.
5312    #[serde(default, skip_serializing_if = "Option::is_none")]
5313    pub or: Option<Vec<Box<NullableProjectFilter>>>,
5314}
5315/// Project milestone filtering options.
5316#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5317#[serde(rename_all = "camelCase")]
5318pub struct NullableProjectMilestoneFilter {
5319    /// Comparator for the identifier.
5320    #[serde(default, skip_serializing_if = "Option::is_none")]
5321    pub id: Option<Box<IDComparator>>,
5322    /// Comparator for the created at date.
5323    #[serde(default, skip_serializing_if = "Option::is_none")]
5324    pub created_at: Option<Box<DateComparator>>,
5325    /// Comparator for the updated at date.
5326    #[serde(default, skip_serializing_if = "Option::is_none")]
5327    pub updated_at: Option<Box<DateComparator>>,
5328    /// Comparator for the project milestone name.
5329    #[serde(default, skip_serializing_if = "Option::is_none")]
5330    pub name: Option<Box<NullableStringComparator>>,
5331    /// Comparator for the project milestone target date.
5332    #[serde(default, skip_serializing_if = "Option::is_none")]
5333    pub target_date: Option<Box<NullableDateComparator>>,
5334    /// Filters that the project milestone's project must satisfy.
5335    #[serde(default, skip_serializing_if = "Option::is_none")]
5336    pub project: Option<Box<NullableProjectFilter>>,
5337    /// Filter based on the existence of the relation.
5338    #[serde(default, skip_serializing_if = "Option::is_none")]
5339    pub null: Option<bool>,
5340    /// Compound filters, all of which need to be matched by the project milestone.
5341    #[serde(default, skip_serializing_if = "Option::is_none")]
5342    pub and: Option<Vec<Box<NullableProjectMilestoneFilter>>>,
5343    /// Compound filters, one of which need to be matched by the project milestone.
5344    #[serde(default, skip_serializing_if = "Option::is_none")]
5345    pub or: Option<Vec<Box<NullableProjectMilestoneFilter>>>,
5346}
5347/// Nullable project update filtering options.
5348#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5349#[serde(rename_all = "camelCase")]
5350pub struct NullableProjectUpdateFilter {
5351    /// Comparator for the identifier.
5352    #[serde(default, skip_serializing_if = "Option::is_none")]
5353    pub id: Option<Box<IDComparator>>,
5354    /// Comparator for the created at date.
5355    #[serde(default, skip_serializing_if = "Option::is_none")]
5356    pub created_at: Option<Box<DateComparator>>,
5357    /// Comparator for the updated at date.
5358    #[serde(default, skip_serializing_if = "Option::is_none")]
5359    pub updated_at: Option<Box<DateComparator>>,
5360    /// Filters that the project update creator must satisfy.
5361    #[serde(default, skip_serializing_if = "Option::is_none")]
5362    pub user: Option<Box<UserFilter>>,
5363    /// Filters that the project update project must satisfy.
5364    #[serde(default, skip_serializing_if = "Option::is_none")]
5365    pub project: Option<Box<ProjectFilter>>,
5366    /// Filters that the project updates reactions must satisfy.
5367    #[serde(default, skip_serializing_if = "Option::is_none")]
5368    pub reactions: Option<Box<ReactionCollectionFilter>>,
5369    /// Filter based on the existence of the relation.
5370    #[serde(default, skip_serializing_if = "Option::is_none")]
5371    pub null: Option<bool>,
5372    /// Compound filters, all of which need to be matched by the project update.
5373    #[serde(default, skip_serializing_if = "Option::is_none")]
5374    pub and: Option<Vec<Box<NullableProjectUpdateFilter>>>,
5375    /// Compound filters, one of which need to be matched by the project update.
5376    #[serde(default, skip_serializing_if = "Option::is_none")]
5377    pub or: Option<Vec<Box<NullableProjectUpdateFilter>>>,
5378}
5379/// Comparator for optional strings.
5380#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5381#[serde(rename_all = "camelCase")]
5382pub struct NullableStringComparator {
5383    /// Equals constraint.
5384    #[serde(default, skip_serializing_if = "Option::is_none")]
5385    pub eq: Option<String>,
5386    /// Not-equals constraint.
5387    #[serde(default, skip_serializing_if = "Option::is_none")]
5388    pub neq: Option<String>,
5389    /// In-array constraint.
5390    #[serde(default, skip_serializing_if = "Option::is_none")]
5391    pub r#in: Option<Vec<String>>,
5392    /// Not-in-array constraint.
5393    #[serde(default, skip_serializing_if = "Option::is_none")]
5394    pub nin: Option<Vec<String>>,
5395    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5396    #[serde(default, skip_serializing_if = "Option::is_none")]
5397    pub null: Option<bool>,
5398    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
5399    #[serde(default, skip_serializing_if = "Option::is_none")]
5400    pub eq_ignore_case: Option<String>,
5401    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
5402    #[serde(default, skip_serializing_if = "Option::is_none")]
5403    pub neq_ignore_case: Option<String>,
5404    /// Starts with constraint. Matches any values that start with the given string.
5405    #[serde(default, skip_serializing_if = "Option::is_none")]
5406    pub starts_with: Option<String>,
5407    /// Starts with case insensitive constraint. Matches any values that start with the given string.
5408    #[serde(default, skip_serializing_if = "Option::is_none")]
5409    pub starts_with_ignore_case: Option<String>,
5410    /// Doesn't start with constraint. Matches any values that don't start with the given string.
5411    #[serde(default, skip_serializing_if = "Option::is_none")]
5412    pub not_starts_with: Option<String>,
5413    /// Ends with constraint. Matches any values that end with the given string.
5414    #[serde(default, skip_serializing_if = "Option::is_none")]
5415    pub ends_with: Option<String>,
5416    /// Doesn't end with constraint. Matches any values that don't end with the given string.
5417    #[serde(default, skip_serializing_if = "Option::is_none")]
5418    pub not_ends_with: Option<String>,
5419    /// Contains constraint. Matches any values that contain the given string.
5420    #[serde(default, skip_serializing_if = "Option::is_none")]
5421    pub contains: Option<String>,
5422    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
5423    #[serde(default, skip_serializing_if = "Option::is_none")]
5424    pub contains_ignore_case: Option<String>,
5425    /// Doesn't contain constraint. Matches any values that don't contain the given string.
5426    #[serde(default, skip_serializing_if = "Option::is_none")]
5427    pub not_contains: Option<String>,
5428    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
5429    #[serde(default, skip_serializing_if = "Option::is_none")]
5430    pub not_contains_ignore_case: Option<String>,
5431    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
5432    #[serde(default, skip_serializing_if = "Option::is_none")]
5433    pub contains_ignore_case_and_accent: Option<String>,
5434}
5435/// Team filtering options.
5436#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5437#[serde(rename_all = "camelCase")]
5438pub struct NullableTeamFilter {
5439    /// Comparator for the identifier.
5440    #[serde(default, skip_serializing_if = "Option::is_none")]
5441    pub id: Option<Box<IDComparator>>,
5442    /// Comparator for the created at date.
5443    #[serde(default, skip_serializing_if = "Option::is_none")]
5444    pub created_at: Option<Box<DateComparator>>,
5445    /// Comparator for the updated at date.
5446    #[serde(default, skip_serializing_if = "Option::is_none")]
5447    pub updated_at: Option<Box<DateComparator>>,
5448    /// Comparator for the team name.
5449    #[serde(default, skip_serializing_if = "Option::is_none")]
5450    pub name: Option<Box<StringComparator>>,
5451    /// Comparator for the team key.
5452    #[serde(default, skip_serializing_if = "Option::is_none")]
5453    pub key: Option<Box<StringComparator>>,
5454    /// Comparator for the team description.
5455    #[serde(default, skip_serializing_if = "Option::is_none")]
5456    pub description: Option<Box<NullableStringComparator>>,
5457    /// Comparator for the team privacy.
5458    #[serde(default, skip_serializing_if = "Option::is_none")]
5459    pub private: Option<Box<BooleanComparator>>,
5460    /// Filters that the teams issues must satisfy.
5461    #[serde(default, skip_serializing_if = "Option::is_none")]
5462    pub issues: Option<Box<IssueCollectionFilter>>,
5463    /// Filters that the teams parent must satisfy.
5464    #[serde(default, skip_serializing_if = "Option::is_none")]
5465    pub parent: Option<Box<NullableTeamFilter>>,
5466    /// Filter based on the existence of the relation.
5467    #[serde(default, skip_serializing_if = "Option::is_none")]
5468    pub null: Option<bool>,
5469    /// Compound filters, all of which need to be matched by the team.
5470    #[serde(default, skip_serializing_if = "Option::is_none")]
5471    pub and: Option<Vec<Box<NullableTeamFilter>>>,
5472    /// Compound filters, one of which need to be matched by the team.
5473    #[serde(default, skip_serializing_if = "Option::is_none")]
5474    pub or: Option<Vec<Box<NullableTeamFilter>>>,
5475}
5476/// Template filtering options.
5477#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5478#[serde(rename_all = "camelCase")]
5479pub struct NullableTemplateFilter {
5480    /// Comparator for the identifier.
5481    #[serde(default, skip_serializing_if = "Option::is_none")]
5482    pub id: Option<Box<IDComparator>>,
5483    /// Comparator for the created at date.
5484    #[serde(default, skip_serializing_if = "Option::is_none")]
5485    pub created_at: Option<Box<DateComparator>>,
5486    /// Comparator for the updated at date.
5487    #[serde(default, skip_serializing_if = "Option::is_none")]
5488    pub updated_at: Option<Box<DateComparator>>,
5489    /// Comparator for the template's name.
5490    #[serde(default, skip_serializing_if = "Option::is_none")]
5491    pub name: Option<Box<StringComparator>>,
5492    /// Comparator for the template's type.
5493    #[serde(default, skip_serializing_if = "Option::is_none")]
5494    pub r#type: Option<Box<StringComparator>>,
5495    /// Comparator for the inherited template's ID.
5496    #[serde(default, skip_serializing_if = "Option::is_none")]
5497    pub inherited_from_id: Option<Box<IDComparator>>,
5498    /// Filter based on the existence of the relation.
5499    #[serde(default, skip_serializing_if = "Option::is_none")]
5500    pub null: Option<bool>,
5501    /// Compound filters, all of which need to be matched by the template.
5502    #[serde(default, skip_serializing_if = "Option::is_none")]
5503    pub and: Option<Vec<Box<NullableTemplateFilter>>>,
5504    /// Compound filters, one of which need to be matched by the template.
5505    #[serde(default, skip_serializing_if = "Option::is_none")]
5506    pub or: Option<Vec<Box<NullableTemplateFilter>>>,
5507}
5508/// Comparator for optional timeless dates.
5509#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5510#[serde(rename_all = "camelCase")]
5511pub struct NullableTimelessDateComparator {
5512    /// Equals constraint.
5513    #[serde(default, skip_serializing_if = "Option::is_none")]
5514    pub eq: Option<serde_json::Value>,
5515    /// Not-equals constraint.
5516    #[serde(default, skip_serializing_if = "Option::is_none")]
5517    pub neq: Option<serde_json::Value>,
5518    /// In-array constraint.
5519    #[serde(default, skip_serializing_if = "Option::is_none")]
5520    pub r#in: Option<Vec<serde_json::Value>>,
5521    /// Not-in-array constraint.
5522    #[serde(default, skip_serializing_if = "Option::is_none")]
5523    pub nin: Option<Vec<serde_json::Value>>,
5524    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5525    #[serde(default, skip_serializing_if = "Option::is_none")]
5526    pub null: Option<bool>,
5527    /// Less-than constraint. Matches any values that are less than the given value.
5528    #[serde(default, skip_serializing_if = "Option::is_none")]
5529    pub lt: Option<serde_json::Value>,
5530    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5531    #[serde(default, skip_serializing_if = "Option::is_none")]
5532    pub lte: Option<serde_json::Value>,
5533    /// Greater-than constraint. Matches any values that are greater than the given value.
5534    #[serde(default, skip_serializing_if = "Option::is_none")]
5535    pub gt: Option<serde_json::Value>,
5536    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5537    #[serde(default, skip_serializing_if = "Option::is_none")]
5538    pub gte: Option<serde_json::Value>,
5539}
5540/// User filtering options.
5541#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5542#[serde(rename_all = "camelCase")]
5543pub struct NullableUserFilter {
5544    /// Comparator for the identifier.
5545    #[serde(default, skip_serializing_if = "Option::is_none")]
5546    pub id: Option<Box<IDComparator>>,
5547    /// Comparator for the created at date.
5548    #[serde(default, skip_serializing_if = "Option::is_none")]
5549    pub created_at: Option<Box<DateComparator>>,
5550    /// Comparator for the updated at date.
5551    #[serde(default, skip_serializing_if = "Option::is_none")]
5552    pub updated_at: Option<Box<DateComparator>>,
5553    /// Comparator for the user's name.
5554    #[serde(default, skip_serializing_if = "Option::is_none")]
5555    pub name: Option<Box<StringComparator>>,
5556    /// Comparator for the user's display name.
5557    #[serde(default, skip_serializing_if = "Option::is_none")]
5558    pub display_name: Option<Box<StringComparator>>,
5559    /// Comparator for the user's email.
5560    #[serde(default, skip_serializing_if = "Option::is_none")]
5561    pub email: Option<Box<StringComparator>>,
5562    /// Comparator for the user's activity status.
5563    #[serde(default, skip_serializing_if = "Option::is_none")]
5564    pub active: Option<Box<BooleanComparator>>,
5565    /// Filters that the users assigned issues must satisfy.
5566    #[serde(default, skip_serializing_if = "Option::is_none")]
5567    pub assigned_issues: Option<Box<IssueCollectionFilter>>,
5568    /// Comparator for the user's admin status.
5569    #[serde(default, skip_serializing_if = "Option::is_none")]
5570    pub admin: Option<Box<BooleanComparator>>,
5571    /// Comparator for the user's owner status.
5572    #[serde(default, skip_serializing_if = "Option::is_none")]
5573    pub owner: Option<Box<BooleanComparator>>,
5574    /// Comparator for the user's invited status.
5575    #[serde(default, skip_serializing_if = "Option::is_none")]
5576    pub invited: Option<Box<BooleanComparator>>,
5577    /// Comparator for the user's invited status.
5578    #[serde(default, skip_serializing_if = "Option::is_none")]
5579    pub is_invited: Option<Box<BooleanComparator>>,
5580    /// Comparator for the user's app status.
5581    #[serde(default, skip_serializing_if = "Option::is_none")]
5582    pub app: Option<Box<BooleanComparator>>,
5583    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
5584    #[serde(default, skip_serializing_if = "Option::is_none")]
5585    pub is_me: Option<Box<BooleanComparator>>,
5586    /// Filter based on the existence of the relation.
5587    #[serde(default, skip_serializing_if = "Option::is_none")]
5588    pub null: Option<bool>,
5589    /// Compound filters, all of which need to be matched by the user.
5590    #[serde(default, skip_serializing_if = "Option::is_none")]
5591    pub and: Option<Vec<Box<NullableUserFilter>>>,
5592    /// Compound filters, one of which need to be matched by the user.
5593    #[serde(default, skip_serializing_if = "Option::is_none")]
5594    pub or: Option<Vec<Box<NullableUserFilter>>>,
5595}
5596/// Comparator for numbers.
5597#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5598#[serde(rename_all = "camelCase")]
5599pub struct NumberComparator {
5600    /// Equals constraint.
5601    #[serde(default, skip_serializing_if = "Option::is_none")]
5602    pub eq: Option<f64>,
5603    /// Not-equals constraint.
5604    #[serde(default, skip_serializing_if = "Option::is_none")]
5605    pub neq: Option<f64>,
5606    /// In-array constraint.
5607    #[serde(default, skip_serializing_if = "Option::is_none")]
5608    pub r#in: Option<Vec<f64>>,
5609    /// Not-in-array constraint.
5610    #[serde(default, skip_serializing_if = "Option::is_none")]
5611    pub nin: Option<Vec<f64>>,
5612    /// Less-than constraint. Matches any values that are less than the given value.
5613    #[serde(default, skip_serializing_if = "Option::is_none")]
5614    pub lt: Option<f64>,
5615    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5616    #[serde(default, skip_serializing_if = "Option::is_none")]
5617    pub lte: Option<f64>,
5618    /// Greater-than constraint. Matches any values that are greater than the given value.
5619    #[serde(default, skip_serializing_if = "Option::is_none")]
5620    pub gt: Option<f64>,
5621    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5622    #[serde(default, skip_serializing_if = "Option::is_none")]
5623    pub gte: Option<f64>,
5624}
5625#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5626#[serde(rename_all = "camelCase")]
5627pub struct OnboardingCustomerSurvey {
5628    #[serde(default, skip_serializing_if = "Option::is_none")]
5629    pub company_role: Option<String>,
5630    #[serde(default, skip_serializing_if = "Option::is_none")]
5631    pub company_size: Option<String>,
5632}
5633#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5634#[serde(rename_all = "camelCase")]
5635pub struct OpsgenieInput {
5636    /// The date when the Opsgenie API failed with an unauthorized error.
5637    #[serde(default, skip_serializing_if = "Option::is_none")]
5638    pub api_failed_with_unauthorized_error_at: Option<chrono::DateTime<chrono::Utc>>,
5639}
5640#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5641#[serde(rename_all = "camelCase")]
5642pub struct OrganizationDomainCreateInput {
5643    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
5644    #[serde(default, skip_serializing_if = "Option::is_none")]
5645    pub id: Option<String>,
5646    /// The identity provider to which to add the domain.
5647    #[serde(default, skip_serializing_if = "Option::is_none")]
5648    pub identity_provider_id: Option<String>,
5649    /// The domain name to add.
5650    #[serde(default, skip_serializing_if = "Option::is_none")]
5651    pub name: Option<String>,
5652    /// The email address to which to send the verification code.
5653    #[serde(default, skip_serializing_if = "Option::is_none")]
5654    pub verification_email: Option<String>,
5655    /// The authentication type this domain is for.
5656    #[serde(default, skip_serializing_if = "Option::is_none")]
5657    pub auth_type: Option<String>,
5658}
5659#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5660#[serde(rename_all = "camelCase")]
5661pub struct OrganizationDomainUpdateInput {
5662    /// Prevent users with this domain to create new workspaces. Only allowed to set on claimed domains!
5663    #[serde(default, skip_serializing_if = "Option::is_none")]
5664    pub disable_organization_creation: Option<bool>,
5665}
5666#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5667#[serde(rename_all = "camelCase")]
5668pub struct OrganizationDomainVerificationInput {
5669    /// The identifier in UUID v4 format of the domain being verified.
5670    #[serde(default, skip_serializing_if = "Option::is_none")]
5671    pub organization_domain_id: Option<String>,
5672    /// The verification code sent via email.
5673    #[serde(default, skip_serializing_if = "Option::is_none")]
5674    pub verification_code: Option<String>,
5675}
5676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5677#[serde(rename_all = "camelCase")]
5678pub struct OrganizationInviteCreateInput {
5679    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
5680    #[serde(default, skip_serializing_if = "Option::is_none")]
5681    pub id: Option<String>,
5682    /// The email of the invitee.
5683    #[serde(default, skip_serializing_if = "Option::is_none")]
5684    pub email: Option<String>,
5685    /// What user role the invite should grant.
5686    #[serde(default, skip_serializing_if = "Option::is_none")]
5687    pub role: Option<UserRoleType>,
5688    /// The teams that the user has been invited to.
5689    #[serde(default, skip_serializing_if = "Option::is_none")]
5690    pub team_ids: Option<Vec<String>>,
5691    /// `INTERNAL` Optional metadata about the invite.
5692    #[serde(default, skip_serializing_if = "Option::is_none")]
5693    pub metadata: Option<serde_json::Value>,
5694}
5695#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5696#[serde(rename_all = "camelCase")]
5697pub struct OrganizationInviteUpdateInput {
5698    /// The teams that the user has been invited to.
5699    #[serde(default, skip_serializing_if = "Option::is_none")]
5700    pub team_ids: Option<Vec<String>>,
5701}
5702/// `INTERNAL` Organization IP restriction configuration.
5703#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5704#[serde(rename_all = "camelCase")]
5705pub struct OrganizationIpRestrictionInput {
5706    /// IP range in CIDR format.
5707    #[serde(default, skip_serializing_if = "Option::is_none")]
5708    pub range: Option<String>,
5709    /// Restriction type.
5710    #[serde(default, skip_serializing_if = "Option::is_none")]
5711    pub r#type: Option<String>,
5712    /// Optional restriction description.
5713    #[serde(default, skip_serializing_if = "Option::is_none")]
5714    pub description: Option<String>,
5715    /// Whether the restriction is enabled.
5716    #[serde(default, skip_serializing_if = "Option::is_none")]
5717    pub enabled: Option<bool>,
5718}
5719#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5720#[serde(rename_all = "camelCase")]
5721pub struct OrganizationSecuritySettingsInput {
5722    /// The minimum role required to create personal API keys.
5723    #[serde(default, skip_serializing_if = "Option::is_none")]
5724    pub personal_api_keys_role: Option<UserRoleType>,
5725    /// The minimum role required to invite users.
5726    #[serde(default, skip_serializing_if = "Option::is_none")]
5727    pub invitations_role: Option<UserRoleType>,
5728    /// The minimum role required to create teams.
5729    #[serde(default, skip_serializing_if = "Option::is_none")]
5730    pub team_creation_role: Option<UserRoleType>,
5731    /// The minimum role required to manage workspace labels.
5732    #[serde(default, skip_serializing_if = "Option::is_none")]
5733    pub label_management_role: Option<UserRoleType>,
5734    /// The minimum role required to manage API settings.
5735    #[serde(default, skip_serializing_if = "Option::is_none")]
5736    pub api_settings_role: Option<UserRoleType>,
5737    /// The minimum role required to manage workspace templates.
5738    #[serde(default, skip_serializing_if = "Option::is_none")]
5739    pub template_management_role: Option<UserRoleType>,
5740    /// The minimum role required to import data.
5741    #[serde(default, skip_serializing_if = "Option::is_none")]
5742    pub import_role: Option<UserRoleType>,
5743    /// The minimum role required to manage agent guidance prompts and settings.
5744    #[serde(default, skip_serializing_if = "Option::is_none")]
5745    pub agent_guidance_role: Option<UserRoleType>,
5746    /// The minimum role required to install and connect new integrations.
5747    #[serde(default, skip_serializing_if = "Option::is_none")]
5748    pub integration_creation_role: Option<UserRoleType>,
5749}
5750#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5751#[serde(rename_all = "camelCase")]
5752pub struct OrganizationStartTrialInput {
5753    /// The plan type to trial.
5754    #[serde(default, skip_serializing_if = "Option::is_none")]
5755    pub plan_type: Option<String>,
5756}
5757#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5758#[serde(rename_all = "camelCase")]
5759pub struct OrganizationUpdateInput {
5760    /// The name of the organization.
5761    #[serde(default, skip_serializing_if = "Option::is_none")]
5762    pub name: Option<String>,
5763    /// The logo of the organization.
5764    #[serde(default, skip_serializing_if = "Option::is_none")]
5765    pub logo_url: Option<String>,
5766    /// The URL key of the organization.
5767    #[serde(default, skip_serializing_if = "Option::is_none")]
5768    pub url_key: Option<String>,
5769    /// How git branches are formatted. If null, default formatting will be used.
5770    #[serde(default, skip_serializing_if = "Option::is_none")]
5771    pub git_branch_format: Option<String>,
5772    /// Whether the Git integration linkback messages should be sent for private repositories.
5773    #[serde(default, skip_serializing_if = "Option::is_none")]
5774    pub git_linkback_messages_enabled: Option<bool>,
5775    /// Whether the Git integration linkback messages should be sent for public repositories.
5776    #[serde(default, skip_serializing_if = "Option::is_none")]
5777    pub git_public_linkback_messages_enabled: Option<bool>,
5778    /// Whether issue descriptions should be included in Git integration linkback messages.
5779    #[serde(default, skip_serializing_if = "Option::is_none")]
5780    pub git_linkback_descriptions_enabled: Option<bool>,
5781    /// Whether the organization is using roadmap.
5782    #[serde(default, skip_serializing_if = "Option::is_none")]
5783    pub roadmap_enabled: Option<bool>,
5784    /// The n-weekly frequency at which to prompt for project updates.
5785    #[serde(default, skip_serializing_if = "Option::is_none")]
5786    pub project_update_reminder_frequency_in_weeks: Option<f64>,
5787    /// The day at which project updates are sent.
5788    #[serde(default, skip_serializing_if = "Option::is_none")]
5789    pub project_update_reminders_day: Option<Day>,
5790    /// The hour at which project updates are sent.
5791    #[serde(default, skip_serializing_if = "Option::is_none")]
5792    pub project_update_reminders_hour: Option<f64>,
5793    /// `ALPHA` The n-weekly frequency at which to prompt for initiative updates.
5794    #[serde(default, skip_serializing_if = "Option::is_none")]
5795    pub initiative_update_reminder_frequency_in_weeks: Option<f64>,
5796    /// `ALPHA` The day at which initiative updates are sent.
5797    #[serde(default, skip_serializing_if = "Option::is_none")]
5798    pub initiative_update_reminders_day: Option<Day>,
5799    /// `ALPHA` The hour at which initiative updates are sent.
5800    #[serde(default, skip_serializing_if = "Option::is_none")]
5801    pub initiative_update_reminders_hour: Option<f64>,
5802    /// The month at which the fiscal year starts.
5803    #[serde(default, skip_serializing_if = "Option::is_none")]
5804    pub fiscal_year_start_month: Option<f64>,
5805    /// `Internal` The list of working days. Sunday is 0, Monday is 1, etc.
5806    #[serde(default, skip_serializing_if = "Option::is_none")]
5807    pub working_days: Option<Vec<f64>>,
5808    /// Whether the organization has opted for reduced customer support attachment information.
5809    #[serde(default, skip_serializing_if = "Option::is_none")]
5810    pub reduced_personal_information: Option<bool>,
5811    /// Whether the organization has opted for having to approve all OAuth applications for install.
5812    #[serde(default, skip_serializing_if = "Option::is_none")]
5813    pub oauth_app_review: Option<bool>,
5814    /// List of services that are allowed to be used for login.
5815    #[serde(default, skip_serializing_if = "Option::is_none")]
5816    pub allowed_auth_services: Option<Vec<String>>,
5817    /// Internal. Whether SLAs have been enabled for the organization.
5818    #[serde(default, skip_serializing_if = "Option::is_none")]
5819    pub sla_enabled: Option<bool>,
5820    /// Whether agent invocation is restricted to full workspace members.
5821    #[serde(default, skip_serializing_if = "Option::is_none")]
5822    pub restrict_agent_invocation_to_members: Option<bool>,
5823    /// IP restriction configurations controlling allowed access the workspace.
5824    #[serde(default, skip_serializing_if = "Option::is_none")]
5825    pub ip_restrictions: Option<Vec<Box<OrganizationIpRestrictionInput>>>,
5826    /// Allowed file upload content types.
5827    #[serde(default, skip_serializing_if = "Option::is_none")]
5828    pub allowed_file_upload_content_types: Option<Vec<String>>,
5829    /// `ALPHA` Theme settings for the organization.
5830    #[serde(default, skip_serializing_if = "Option::is_none")]
5831    pub theme_settings: Option<serde_json::Value>,
5832    /// `INTERNAL` Whether the organization is using customers.
5833    #[serde(default, skip_serializing_if = "Option::is_none")]
5834    pub customers_enabled: Option<bool>,
5835    /// `INTERNAL` Configuration settings for the Customers feature.
5836    #[serde(default, skip_serializing_if = "Option::is_none")]
5837    pub customers_configuration: Option<serde_json::Value>,
5838    /// `INTERNAL` Whether code intelligence is enabled for the organization.
5839    #[serde(default, skip_serializing_if = "Option::is_none")]
5840    pub code_intelligence_enabled: Option<bool>,
5841    /// `INTERNAL` GitHub repository in owner/repo format for code intelligence.
5842    #[serde(default, skip_serializing_if = "Option::is_none")]
5843    pub code_intelligence_repository: Option<String>,
5844    /// Whether the organization has enabled the feed feature.
5845    #[serde(default, skip_serializing_if = "Option::is_none")]
5846    pub feed_enabled: Option<bool>,
5847    /// Whether to hide other workspaces for new users signing up with email domains claimed by this organization.
5848    #[serde(default, skip_serializing_if = "Option::is_none")]
5849    pub hide_non_primary_organizations: Option<bool>,
5850    /// Default schedule for how often feed summaries are generated.
5851    #[serde(default, skip_serializing_if = "Option::is_none")]
5852    pub default_feed_summary_schedule: Option<FeedSummarySchedule>,
5853    /// `INTERNAL` Whether the organization has enabled the AI add-on.
5854    #[serde(default, skip_serializing_if = "Option::is_none")]
5855    pub ai_addon_enabled: Option<bool>,
5856    /// `INTERNAL` Whether the organization has enabled generated updates.
5857    #[serde(default, skip_serializing_if = "Option::is_none")]
5858    pub generated_updates_enabled: Option<bool>,
5859    /// `INTERNAL` Whether the organization has opted in to AI telemetry.
5860    #[serde(default, skip_serializing_if = "Option::is_none")]
5861    pub ai_telemetry_enabled: Option<bool>,
5862    /// Whether the organization has enabled AI discussion summaries for issues.
5863    #[serde(default, skip_serializing_if = "Option::is_none")]
5864    pub ai_discussion_summaries_enabled: Option<bool>,
5865    /// Whether the organization has enabled resolved thread AI summaries.
5866    #[serde(default, skip_serializing_if = "Option::is_none")]
5867    pub ai_thread_summaries_enabled: Option<bool>,
5868    /// Whether HIPAA compliance is enabled for organization.
5869    #[serde(default, skip_serializing_if = "Option::is_none")]
5870    pub hipaa_compliance_enabled: Option<bool>,
5871    /// The security settings for the organization.
5872    #[serde(default, skip_serializing_if = "Option::is_none")]
5873    pub security_settings: Option<Box<OrganizationSecuritySettingsInput>>,
5874    /// `INTERNAL` Configure per-modality AI host providers and model families.
5875    #[serde(default, skip_serializing_if = "Option::is_none")]
5876    pub ai_provider_configuration: Option<serde_json::Value>,
5877    /// The ID of the Slack integration to use for auto-creating project channels.
5878    #[serde(default, skip_serializing_if = "Option::is_none")]
5879    pub slack_project_channel_integration_id: Option<String>,
5880    /// The prefix to use for auto-created Slack project channels (p-, proj-, or project-).
5881    #[serde(default, skip_serializing_if = "Option::is_none")]
5882    pub slack_project_channel_prefix: Option<String>,
5883    /// `Internal` Whether the organization has enabled Linear Agent.
5884    #[serde(default, skip_serializing_if = "Option::is_none")]
5885    pub linear_agent_enabled: Option<bool>,
5886}
5887/// Customer owner sorting options.
5888#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5889#[serde(rename_all = "camelCase")]
5890pub struct OwnerSort {
5891    /// Whether nulls should be sorted first or last
5892    #[serde(default, skip_serializing_if = "Option::is_none")]
5893    pub nulls: Option<PaginationNulls>,
5894    /// The order for the individual sort
5895    #[serde(default, skip_serializing_if = "Option::is_none")]
5896    pub order: Option<PaginationSortOrder>,
5897}
5898#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5899#[serde(rename_all = "camelCase")]
5900pub struct PagerDutyInput {
5901    /// The date when the PagerDuty API failed with an unauthorized error.
5902    #[serde(default, skip_serializing_if = "Option::is_none")]
5903    pub api_failed_with_unauthorized_error_at: Option<chrono::DateTime<chrono::Utc>>,
5904}
5905#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5906#[serde(rename_all = "camelCase")]
5907pub struct PartialNotificationChannelPreferencesInput {
5908    /// Whether notifications are currently enabled for mobile.
5909    #[serde(default, skip_serializing_if = "Option::is_none")]
5910    pub mobile: Option<bool>,
5911    /// Whether notifications are currently enabled for desktop.
5912    #[serde(default, skip_serializing_if = "Option::is_none")]
5913    pub desktop: Option<bool>,
5914    /// Whether notifications are currently enabled for email.
5915    #[serde(default, skip_serializing_if = "Option::is_none")]
5916    pub email: Option<bool>,
5917    /// Whether notifications are currently enabled for Slack.
5918    #[serde(default, skip_serializing_if = "Option::is_none")]
5919    pub slack: Option<bool>,
5920}
5921/// Issue priority sorting options.
5922#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5923#[serde(rename_all = "camelCase")]
5924pub struct PrioritySort {
5925    /// Whether nulls should be sorted first or last
5926    #[serde(default, skip_serializing_if = "Option::is_none")]
5927    pub nulls: Option<PaginationNulls>,
5928    /// The order for the individual sort
5929    #[serde(default, skip_serializing_if = "Option::is_none")]
5930    pub order: Option<PaginationSortOrder>,
5931    /// Whether to consider no priority as the highest or lowest priority
5932    #[serde(default, skip_serializing_if = "Option::is_none")]
5933    pub no_priority_first: Option<bool>,
5934}
5935/// Project filtering options.
5936#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5937#[serde(rename_all = "camelCase")]
5938pub struct ProjectCollectionFilter {
5939    /// Comparator for the identifier.
5940    #[serde(default, skip_serializing_if = "Option::is_none")]
5941    pub id: Option<Box<IDComparator>>,
5942    /// Comparator for the created at date.
5943    #[serde(default, skip_serializing_if = "Option::is_none")]
5944    pub created_at: Option<Box<DateComparator>>,
5945    /// Comparator for the updated at date.
5946    #[serde(default, skip_serializing_if = "Option::is_none")]
5947    pub updated_at: Option<Box<DateComparator>>,
5948    /// Comparator for the project name.
5949    #[serde(default, skip_serializing_if = "Option::is_none")]
5950    pub name: Option<Box<StringComparator>>,
5951    /// Comparator for the project slug ID.
5952    #[serde(default, skip_serializing_if = "Option::is_none")]
5953    pub slug_id: Option<Box<StringComparator>>,
5954    /// `DEPRECATED` Comparator for the project state.
5955    #[serde(default, skip_serializing_if = "Option::is_none")]
5956    pub state: Option<Box<StringComparator>>,
5957    /// Filters that the project's status must satisfy.
5958    #[serde(default, skip_serializing_if = "Option::is_none")]
5959    pub status: Option<Box<ProjectStatusFilter>>,
5960    /// Comparator for the projects priority.
5961    #[serde(default, skip_serializing_if = "Option::is_none")]
5962    pub priority: Option<Box<NullableNumberComparator>>,
5963    /// Filters that project labels must satisfy.
5964    #[serde(default, skip_serializing_if = "Option::is_none")]
5965    pub labels: Option<Box<ProjectLabelCollectionFilter>>,
5966    /// `Internal` Comparator for the project's content.
5967    #[serde(default, skip_serializing_if = "Option::is_none")]
5968    pub searchable_content: Option<Box<ContentComparator>>,
5969    /// Comparator for the project started date (when it was moved to an "In Progress" status).
5970    #[serde(default, skip_serializing_if = "Option::is_none")]
5971    pub started_at: Option<Box<NullableDateComparator>>,
5972    /// Comparator for the project completion date.
5973    #[serde(default, skip_serializing_if = "Option::is_none")]
5974    pub completed_at: Option<Box<NullableDateComparator>>,
5975    /// Comparator for the project cancelation date.
5976    #[serde(default, skip_serializing_if = "Option::is_none")]
5977    pub canceled_at: Option<Box<NullableDateComparator>>,
5978    /// Comparator for the project start date.
5979    #[serde(default, skip_serializing_if = "Option::is_none")]
5980    pub start_date: Option<Box<NullableDateComparator>>,
5981    /// Comparator for the project target date.
5982    #[serde(default, skip_serializing_if = "Option::is_none")]
5983    pub target_date: Option<Box<NullableDateComparator>>,
5984    /// Comparator for the project health: onTrack, atRisk, offTrack
5985    #[serde(default, skip_serializing_if = "Option::is_none")]
5986    pub health: Option<Box<StringComparator>>,
5987    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
5988    #[serde(default, skip_serializing_if = "Option::is_none")]
5989    pub health_with_age: Option<Box<StringComparator>>,
5990    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
5991    #[serde(default, skip_serializing_if = "Option::is_none")]
5992    pub activity_type: Option<Box<StringComparator>>,
5993    /// Comparator for filtering projects with relations.
5994    #[serde(default, skip_serializing_if = "Option::is_none")]
5995    pub has_related_relations: Option<Box<RelationExistsComparator>>,
5996    /// `Deprecated` Comparator for filtering projects which this is depended on by.
5997    #[serde(default, skip_serializing_if = "Option::is_none")]
5998    pub has_depended_on_by_relations: Option<Box<RelationExistsComparator>>,
5999    /// `Deprecated`Comparator for filtering projects which this depends on.
6000    #[serde(default, skip_serializing_if = "Option::is_none")]
6001    pub has_depends_on_relations: Option<Box<RelationExistsComparator>>,
6002    /// Comparator for filtering projects which are blocked.
6003    #[serde(default, skip_serializing_if = "Option::is_none")]
6004    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
6005    /// Comparator for filtering projects which are blocking.
6006    #[serde(default, skip_serializing_if = "Option::is_none")]
6007    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
6008    /// Comparator for filtering projects with violated dependencies.
6009    #[serde(default, skip_serializing_if = "Option::is_none")]
6010    pub has_violated_relations: Option<Box<RelationExistsComparator>>,
6011    /// Comparator for the project updates.
6012    #[serde(default, skip_serializing_if = "Option::is_none")]
6013    pub project_updates: Option<Box<ProjectUpdatesCollectionFilter>>,
6014    /// Filters that the projects creator must satisfy.
6015    #[serde(default, skip_serializing_if = "Option::is_none")]
6016    pub creator: Option<Box<UserFilter>>,
6017    /// Filters that the projects lead must satisfy.
6018    #[serde(default, skip_serializing_if = "Option::is_none")]
6019    pub lead: Option<Box<NullableUserFilter>>,
6020    /// Filters that the projects members must satisfy.
6021    #[serde(default, skip_serializing_if = "Option::is_none")]
6022    pub members: Option<Box<UserCollectionFilter>>,
6023    /// Filters that the projects issues must satisfy.
6024    #[serde(default, skip_serializing_if = "Option::is_none")]
6025    pub issues: Option<Box<IssueCollectionFilter>>,
6026    /// Filters that the projects roadmaps must satisfy.
6027    #[serde(default, skip_serializing_if = "Option::is_none")]
6028    pub roadmaps: Option<Box<RoadmapCollectionFilter>>,
6029    /// Filters that the projects initiatives must satisfy.
6030    #[serde(default, skip_serializing_if = "Option::is_none")]
6031    pub initiatives: Option<Box<InitiativeCollectionFilter>>,
6032    /// Filters that the project's milestones must satisfy.
6033    #[serde(default, skip_serializing_if = "Option::is_none")]
6034    pub project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
6035    /// Filters that the project's completed milestones must satisfy.
6036    #[serde(default, skip_serializing_if = "Option::is_none")]
6037    pub completed_project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
6038    /// Filters that the project's next milestone must satisfy.
6039    #[serde(default, skip_serializing_if = "Option::is_none")]
6040    pub next_project_milestone: Option<Box<ProjectMilestoneFilter>>,
6041    /// Filters that the project's team must satisfy.
6042    #[serde(default, skip_serializing_if = "Option::is_none")]
6043    pub accessible_teams: Option<Box<TeamCollectionFilter>>,
6044    /// Filters that the last applied template must satisfy.
6045    #[serde(default, skip_serializing_if = "Option::is_none")]
6046    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
6047    /// Filters that the project's customer needs must satisfy.
6048    #[serde(default, skip_serializing_if = "Option::is_none")]
6049    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
6050    /// Count of customers
6051    #[serde(default, skip_serializing_if = "Option::is_none")]
6052    pub customer_count: Option<Box<NumberComparator>>,
6053    /// Count of important customers
6054    #[serde(default, skip_serializing_if = "Option::is_none")]
6055    pub customer_important_count: Option<Box<NumberComparator>>,
6056    /// Compound filters, all of which need to be matched by the project.
6057    #[serde(default, skip_serializing_if = "Option::is_none")]
6058    pub and: Option<Vec<Box<ProjectCollectionFilter>>>,
6059    /// Compound filters, one of which need to be matched by the project.
6060    #[serde(default, skip_serializing_if = "Option::is_none")]
6061    pub or: Option<Vec<Box<ProjectCollectionFilter>>>,
6062    /// Filters that needs to be matched by some projects.
6063    #[serde(default, skip_serializing_if = "Option::is_none")]
6064    pub some: Option<Box<ProjectFilter>>,
6065    /// Filters that needs to be matched by all projects.
6066    #[serde(default, skip_serializing_if = "Option::is_none")]
6067    pub every: Option<Box<ProjectFilter>>,
6068    /// Comparator for the collection length.
6069    #[serde(default, skip_serializing_if = "Option::is_none")]
6070    pub length: Option<Box<NumberComparator>>,
6071}
6072#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6073#[serde(rename_all = "camelCase")]
6074pub struct ProjectCreateInput {
6075    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6076    #[serde(default, skip_serializing_if = "Option::is_none")]
6077    pub id: Option<String>,
6078    /// The name of the project.
6079    #[serde(default, skip_serializing_if = "Option::is_none")]
6080    pub name: Option<String>,
6081    /// The icon of the project.
6082    #[serde(default, skip_serializing_if = "Option::is_none")]
6083    pub icon: Option<String>,
6084    /// The color of the project.
6085    #[serde(default, skip_serializing_if = "Option::is_none")]
6086    pub color: Option<String>,
6087    /// The ID of the project status.
6088    #[serde(default, skip_serializing_if = "Option::is_none")]
6089    pub status_id: Option<String>,
6090    /// The description for the project.
6091    #[serde(default, skip_serializing_if = "Option::is_none")]
6092    pub description: Option<String>,
6093    /// The project content as markdown.
6094    #[serde(default, skip_serializing_if = "Option::is_none")]
6095    pub content: Option<String>,
6096    /// The identifiers of the teams this project is associated with.
6097    #[serde(default, skip_serializing_if = "Option::is_none")]
6098    pub team_ids: Option<Vec<String>>,
6099    /// The ID of the issue from which that project is created.
6100    #[serde(default, skip_serializing_if = "Option::is_none")]
6101    pub converted_from_issue_id: Option<String>,
6102    /// The ID of the last template applied to the project.
6103    #[serde(default, skip_serializing_if = "Option::is_none")]
6104    pub last_applied_template_id: Option<String>,
6105    /// The ID of the template to apply when creating the project.
6106    #[serde(default, skip_serializing_if = "Option::is_none")]
6107    pub template_id: Option<String>,
6108    /// When set to true, the default project template of the first team provided will be applied. If templateId is provided, this will be ignored.
6109    #[serde(default, skip_serializing_if = "Option::is_none")]
6110    pub use_default_template: Option<bool>,
6111    /// The identifier of the project lead.
6112    #[serde(default, skip_serializing_if = "Option::is_none")]
6113    pub lead_id: Option<String>,
6114    /// The identifiers of the members of this project.
6115    #[serde(default, skip_serializing_if = "Option::is_none")]
6116    pub member_ids: Option<Vec<String>>,
6117    /// The planned start date of the project.
6118    #[serde(default, skip_serializing_if = "Option::is_none")]
6119    pub start_date: Option<chrono::NaiveDate>,
6120    /// The resolution of the project's start date.
6121    #[serde(default, skip_serializing_if = "Option::is_none")]
6122    pub start_date_resolution: Option<DateResolutionType>,
6123    /// The planned target date of the project.
6124    #[serde(default, skip_serializing_if = "Option::is_none")]
6125    pub target_date: Option<chrono::NaiveDate>,
6126    /// The resolution of the project's estimated completion date.
6127    #[serde(default, skip_serializing_if = "Option::is_none")]
6128    pub target_date_resolution: Option<DateResolutionType>,
6129    /// The sort order for the project within shared views.
6130    #[serde(default, skip_serializing_if = "Option::is_none")]
6131    pub sort_order: Option<f64>,
6132    /// The sort order for the project within shared views, when ordered by priority.
6133    #[serde(default, skip_serializing_if = "Option::is_none")]
6134    pub priority_sort_order: Option<f64>,
6135    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
6136    #[serde(default, skip_serializing_if = "Option::is_none")]
6137    pub priority: Option<i64>,
6138    /// `Internal`The identifiers of the project labels associated with this project.
6139    #[serde(default, skip_serializing_if = "Option::is_none")]
6140    pub label_ids: Option<Vec<String>>,
6141}
6142/// Project creation date sorting options.
6143#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6144#[serde(rename_all = "camelCase")]
6145pub struct ProjectCreatedAtSort {
6146    /// Whether nulls should be sorted first or last
6147    #[serde(default, skip_serializing_if = "Option::is_none")]
6148    pub nulls: Option<PaginationNulls>,
6149    /// The order for the individual sort
6150    #[serde(default, skip_serializing_if = "Option::is_none")]
6151    pub order: Option<PaginationSortOrder>,
6152}
6153/// Project filtering options.
6154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6155#[serde(rename_all = "camelCase")]
6156pub struct ProjectFilter {
6157    /// Comparator for the identifier.
6158    #[serde(default, skip_serializing_if = "Option::is_none")]
6159    pub id: Option<Box<IDComparator>>,
6160    /// Comparator for the created at date.
6161    #[serde(default, skip_serializing_if = "Option::is_none")]
6162    pub created_at: Option<Box<DateComparator>>,
6163    /// Comparator for the updated at date.
6164    #[serde(default, skip_serializing_if = "Option::is_none")]
6165    pub updated_at: Option<Box<DateComparator>>,
6166    /// Comparator for the project name.
6167    #[serde(default, skip_serializing_if = "Option::is_none")]
6168    pub name: Option<Box<StringComparator>>,
6169    /// Comparator for the project slug ID.
6170    #[serde(default, skip_serializing_if = "Option::is_none")]
6171    pub slug_id: Option<Box<StringComparator>>,
6172    /// `DEPRECATED` Comparator for the project state.
6173    #[serde(default, skip_serializing_if = "Option::is_none")]
6174    pub state: Option<Box<StringComparator>>,
6175    /// Filters that the project's status must satisfy.
6176    #[serde(default, skip_serializing_if = "Option::is_none")]
6177    pub status: Option<Box<ProjectStatusFilter>>,
6178    /// Comparator for the projects priority.
6179    #[serde(default, skip_serializing_if = "Option::is_none")]
6180    pub priority: Option<Box<NullableNumberComparator>>,
6181    /// Filters that project labels must satisfy.
6182    #[serde(default, skip_serializing_if = "Option::is_none")]
6183    pub labels: Option<Box<ProjectLabelCollectionFilter>>,
6184    /// `Internal` Comparator for the project's content.
6185    #[serde(default, skip_serializing_if = "Option::is_none")]
6186    pub searchable_content: Option<Box<ContentComparator>>,
6187    /// Comparator for the project started date (when it was moved to an "In Progress" status).
6188    #[serde(default, skip_serializing_if = "Option::is_none")]
6189    pub started_at: Option<Box<NullableDateComparator>>,
6190    /// Comparator for the project completion date.
6191    #[serde(default, skip_serializing_if = "Option::is_none")]
6192    pub completed_at: Option<Box<NullableDateComparator>>,
6193    /// Comparator for the project cancelation date.
6194    #[serde(default, skip_serializing_if = "Option::is_none")]
6195    pub canceled_at: Option<Box<NullableDateComparator>>,
6196    /// Comparator for the project start date.
6197    #[serde(default, skip_serializing_if = "Option::is_none")]
6198    pub start_date: Option<Box<NullableDateComparator>>,
6199    /// Comparator for the project target date.
6200    #[serde(default, skip_serializing_if = "Option::is_none")]
6201    pub target_date: Option<Box<NullableDateComparator>>,
6202    /// Comparator for the project health: onTrack, atRisk, offTrack
6203    #[serde(default, skip_serializing_if = "Option::is_none")]
6204    pub health: Option<Box<StringComparator>>,
6205    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
6206    #[serde(default, skip_serializing_if = "Option::is_none")]
6207    pub health_with_age: Option<Box<StringComparator>>,
6208    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
6209    #[serde(default, skip_serializing_if = "Option::is_none")]
6210    pub activity_type: Option<Box<StringComparator>>,
6211    /// Comparator for filtering projects with relations.
6212    #[serde(default, skip_serializing_if = "Option::is_none")]
6213    pub has_related_relations: Option<Box<RelationExistsComparator>>,
6214    /// `Deprecated` Comparator for filtering projects which this is depended on by.
6215    #[serde(default, skip_serializing_if = "Option::is_none")]
6216    pub has_depended_on_by_relations: Option<Box<RelationExistsComparator>>,
6217    /// `Deprecated`Comparator for filtering projects which this depends on.
6218    #[serde(default, skip_serializing_if = "Option::is_none")]
6219    pub has_depends_on_relations: Option<Box<RelationExistsComparator>>,
6220    /// Comparator for filtering projects which are blocked.
6221    #[serde(default, skip_serializing_if = "Option::is_none")]
6222    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
6223    /// Comparator for filtering projects which are blocking.
6224    #[serde(default, skip_serializing_if = "Option::is_none")]
6225    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
6226    /// Comparator for filtering projects with violated dependencies.
6227    #[serde(default, skip_serializing_if = "Option::is_none")]
6228    pub has_violated_relations: Option<Box<RelationExistsComparator>>,
6229    /// Comparator for the project updates.
6230    #[serde(default, skip_serializing_if = "Option::is_none")]
6231    pub project_updates: Option<Box<ProjectUpdatesCollectionFilter>>,
6232    /// Filters that the projects creator must satisfy.
6233    #[serde(default, skip_serializing_if = "Option::is_none")]
6234    pub creator: Option<Box<UserFilter>>,
6235    /// Filters that the projects lead must satisfy.
6236    #[serde(default, skip_serializing_if = "Option::is_none")]
6237    pub lead: Option<Box<NullableUserFilter>>,
6238    /// Filters that the projects members must satisfy.
6239    #[serde(default, skip_serializing_if = "Option::is_none")]
6240    pub members: Option<Box<UserCollectionFilter>>,
6241    /// Filters that the projects issues must satisfy.
6242    #[serde(default, skip_serializing_if = "Option::is_none")]
6243    pub issues: Option<Box<IssueCollectionFilter>>,
6244    /// Filters that the projects roadmaps must satisfy.
6245    #[serde(default, skip_serializing_if = "Option::is_none")]
6246    pub roadmaps: Option<Box<RoadmapCollectionFilter>>,
6247    /// Filters that the projects initiatives must satisfy.
6248    #[serde(default, skip_serializing_if = "Option::is_none")]
6249    pub initiatives: Option<Box<InitiativeCollectionFilter>>,
6250    /// Filters that the project's milestones must satisfy.
6251    #[serde(default, skip_serializing_if = "Option::is_none")]
6252    pub project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
6253    /// Filters that the project's completed milestones must satisfy.
6254    #[serde(default, skip_serializing_if = "Option::is_none")]
6255    pub completed_project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
6256    /// Filters that the project's next milestone must satisfy.
6257    #[serde(default, skip_serializing_if = "Option::is_none")]
6258    pub next_project_milestone: Option<Box<ProjectMilestoneFilter>>,
6259    /// Filters that the project's team must satisfy.
6260    #[serde(default, skip_serializing_if = "Option::is_none")]
6261    pub accessible_teams: Option<Box<TeamCollectionFilter>>,
6262    /// Filters that the last applied template must satisfy.
6263    #[serde(default, skip_serializing_if = "Option::is_none")]
6264    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
6265    /// Filters that the project's customer needs must satisfy.
6266    #[serde(default, skip_serializing_if = "Option::is_none")]
6267    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
6268    /// Count of customers
6269    #[serde(default, skip_serializing_if = "Option::is_none")]
6270    pub customer_count: Option<Box<NumberComparator>>,
6271    /// Count of important customers
6272    #[serde(default, skip_serializing_if = "Option::is_none")]
6273    pub customer_important_count: Option<Box<NumberComparator>>,
6274    /// Compound filters, all of which need to be matched by the project.
6275    #[serde(default, skip_serializing_if = "Option::is_none")]
6276    pub and: Option<Vec<Box<ProjectFilter>>>,
6277    /// Compound filters, one of which need to be matched by the project.
6278    #[serde(default, skip_serializing_if = "Option::is_none")]
6279    pub or: Option<Vec<Box<ProjectFilter>>>,
6280}
6281/// Project health sorting options.
6282#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6283#[serde(rename_all = "camelCase")]
6284pub struct ProjectHealthSort {
6285    /// Whether nulls should be sorted first or last
6286    #[serde(default, skip_serializing_if = "Option::is_none")]
6287    pub nulls: Option<PaginationNulls>,
6288    /// The order for the individual sort
6289    #[serde(default, skip_serializing_if = "Option::is_none")]
6290    pub order: Option<PaginationSortOrder>,
6291}
6292/// Project label filtering options.
6293#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6294#[serde(rename_all = "camelCase")]
6295pub struct ProjectLabelCollectionFilter {
6296    /// Comparator for the identifier.
6297    #[serde(default, skip_serializing_if = "Option::is_none")]
6298    pub id: Option<Box<IDComparator>>,
6299    /// Comparator for the created at date.
6300    #[serde(default, skip_serializing_if = "Option::is_none")]
6301    pub created_at: Option<Box<DateComparator>>,
6302    /// Comparator for the updated at date.
6303    #[serde(default, skip_serializing_if = "Option::is_none")]
6304    pub updated_at: Option<Box<DateComparator>>,
6305    /// Comparator for the name.
6306    #[serde(default, skip_serializing_if = "Option::is_none")]
6307    pub name: Option<Box<StringComparator>>,
6308    /// Comparator for whether the label is a group label.
6309    #[serde(default, skip_serializing_if = "Option::is_none")]
6310    pub is_group: Option<Box<BooleanComparator>>,
6311    /// Filters that the project labels creator must satisfy.
6312    #[serde(default, skip_serializing_if = "Option::is_none")]
6313    pub creator: Option<Box<NullableUserFilter>>,
6314    /// Filters that the project label's parent label must satisfy.
6315    #[serde(default, skip_serializing_if = "Option::is_none")]
6316    pub parent: Option<Box<ProjectLabelFilter>>,
6317    /// Filter based on the existence of the relation.
6318    #[serde(default, skip_serializing_if = "Option::is_none")]
6319    pub null: Option<bool>,
6320    /// Compound filters, all of which need to be matched by the label.
6321    #[serde(default, skip_serializing_if = "Option::is_none")]
6322    pub and: Option<Vec<Box<ProjectLabelCollectionFilter>>>,
6323    /// Compound filters, one of which need to be matched by the label.
6324    #[serde(default, skip_serializing_if = "Option::is_none")]
6325    pub or: Option<Vec<Box<ProjectLabelCollectionFilter>>>,
6326    /// Filters that needs to be matched by some project labels.
6327    #[serde(default, skip_serializing_if = "Option::is_none")]
6328    pub some: Option<Box<ProjectLabelCollectionFilter>>,
6329    /// Filters that needs to be matched by all project labels.
6330    #[serde(default, skip_serializing_if = "Option::is_none")]
6331    pub every: Option<Box<ProjectLabelFilter>>,
6332    /// Comparator for the collection length.
6333    #[serde(default, skip_serializing_if = "Option::is_none")]
6334    pub length: Option<Box<NumberComparator>>,
6335}
6336#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6337#[serde(rename_all = "camelCase")]
6338pub struct ProjectLabelCreateInput {
6339    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6340    #[serde(default, skip_serializing_if = "Option::is_none")]
6341    pub id: Option<String>,
6342    /// The name of the label.
6343    #[serde(default, skip_serializing_if = "Option::is_none")]
6344    pub name: Option<String>,
6345    /// The description of the label.
6346    #[serde(default, skip_serializing_if = "Option::is_none")]
6347    pub description: Option<String>,
6348    /// The color of the label.
6349    #[serde(default, skip_serializing_if = "Option::is_none")]
6350    pub color: Option<String>,
6351    /// The identifier of the parent label.
6352    #[serde(default, skip_serializing_if = "Option::is_none")]
6353    pub parent_id: Option<String>,
6354    /// Whether the label is a group.
6355    #[serde(default, skip_serializing_if = "Option::is_none")]
6356    pub is_group: Option<bool>,
6357    /// When the label was retired.
6358    #[serde(default, skip_serializing_if = "Option::is_none")]
6359    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
6360}
6361/// Project label filtering options.
6362#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6363#[serde(rename_all = "camelCase")]
6364pub struct ProjectLabelFilter {
6365    /// Comparator for the identifier.
6366    #[serde(default, skip_serializing_if = "Option::is_none")]
6367    pub id: Option<Box<IDComparator>>,
6368    /// Comparator for the created at date.
6369    #[serde(default, skip_serializing_if = "Option::is_none")]
6370    pub created_at: Option<Box<DateComparator>>,
6371    /// Comparator for the updated at date.
6372    #[serde(default, skip_serializing_if = "Option::is_none")]
6373    pub updated_at: Option<Box<DateComparator>>,
6374    /// Comparator for the name.
6375    #[serde(default, skip_serializing_if = "Option::is_none")]
6376    pub name: Option<Box<StringComparator>>,
6377    /// Comparator for whether the label is a group label.
6378    #[serde(default, skip_serializing_if = "Option::is_none")]
6379    pub is_group: Option<Box<BooleanComparator>>,
6380    /// Filters that the project labels creator must satisfy.
6381    #[serde(default, skip_serializing_if = "Option::is_none")]
6382    pub creator: Option<Box<NullableUserFilter>>,
6383    /// Filters that the project label's parent label must satisfy.
6384    #[serde(default, skip_serializing_if = "Option::is_none")]
6385    pub parent: Option<Box<ProjectLabelFilter>>,
6386    /// Compound filters, all of which need to be matched by the label.
6387    #[serde(default, skip_serializing_if = "Option::is_none")]
6388    pub and: Option<Vec<Box<ProjectLabelFilter>>>,
6389    /// Compound filters, one of which need to be matched by the label.
6390    #[serde(default, skip_serializing_if = "Option::is_none")]
6391    pub or: Option<Vec<Box<ProjectLabelFilter>>>,
6392}
6393#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6394#[serde(rename_all = "camelCase")]
6395pub struct ProjectLabelUpdateInput {
6396    /// The name of the label.
6397    #[serde(default, skip_serializing_if = "Option::is_none")]
6398    pub name: Option<String>,
6399    /// The description of the label.
6400    #[serde(default, skip_serializing_if = "Option::is_none")]
6401    pub description: Option<String>,
6402    /// The identifier of the parent label.
6403    #[serde(default, skip_serializing_if = "Option::is_none")]
6404    pub parent_id: Option<String>,
6405    /// The color of the label.
6406    #[serde(default, skip_serializing_if = "Option::is_none")]
6407    pub color: Option<String>,
6408    /// Whether the label is a group.
6409    #[serde(default, skip_serializing_if = "Option::is_none")]
6410    pub is_group: Option<bool>,
6411    /// When the label was retired.
6412    #[serde(default, skip_serializing_if = "Option::is_none")]
6413    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
6414}
6415/// Project lead sorting options.
6416#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6417#[serde(rename_all = "camelCase")]
6418pub struct ProjectLeadSort {
6419    /// Whether nulls should be sorted first or last
6420    #[serde(default, skip_serializing_if = "Option::is_none")]
6421    pub nulls: Option<PaginationNulls>,
6422    /// The order for the individual sort
6423    #[serde(default, skip_serializing_if = "Option::is_none")]
6424    pub order: Option<PaginationSortOrder>,
6425}
6426/// Project manual order sorting options.
6427#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6428#[serde(rename_all = "camelCase")]
6429pub struct ProjectManualSort {
6430    /// Whether nulls should be sorted first or last
6431    #[serde(default, skip_serializing_if = "Option::is_none")]
6432    pub nulls: Option<PaginationNulls>,
6433    /// The order for the individual sort
6434    #[serde(default, skip_serializing_if = "Option::is_none")]
6435    pub order: Option<PaginationSortOrder>,
6436}
6437/// Milestone collection filtering options.
6438#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6439#[serde(rename_all = "camelCase")]
6440pub struct ProjectMilestoneCollectionFilter {
6441    /// Comparator for the identifier.
6442    #[serde(default, skip_serializing_if = "Option::is_none")]
6443    pub id: Option<Box<IDComparator>>,
6444    /// Comparator for the created at date.
6445    #[serde(default, skip_serializing_if = "Option::is_none")]
6446    pub created_at: Option<Box<DateComparator>>,
6447    /// Comparator for the updated at date.
6448    #[serde(default, skip_serializing_if = "Option::is_none")]
6449    pub updated_at: Option<Box<DateComparator>>,
6450    /// Comparator for the project milestone name.
6451    #[serde(default, skip_serializing_if = "Option::is_none")]
6452    pub name: Option<Box<NullableStringComparator>>,
6453    /// Comparator for the project milestone target date.
6454    #[serde(default, skip_serializing_if = "Option::is_none")]
6455    pub target_date: Option<Box<NullableDateComparator>>,
6456    /// Filters that the project milestone's project must satisfy.
6457    #[serde(default, skip_serializing_if = "Option::is_none")]
6458    pub project: Option<Box<NullableProjectFilter>>,
6459    /// Compound filters, all of which need to be matched by the milestone.
6460    #[serde(default, skip_serializing_if = "Option::is_none")]
6461    pub and: Option<Vec<Box<ProjectMilestoneCollectionFilter>>>,
6462    /// Compound filters, one of which need to be matched by the milestone.
6463    #[serde(default, skip_serializing_if = "Option::is_none")]
6464    pub or: Option<Vec<Box<ProjectMilestoneCollectionFilter>>>,
6465    /// Filters that needs to be matched by some milestones.
6466    #[serde(default, skip_serializing_if = "Option::is_none")]
6467    pub some: Option<Box<ProjectMilestoneFilter>>,
6468    /// Filters that needs to be matched by all milestones.
6469    #[serde(default, skip_serializing_if = "Option::is_none")]
6470    pub every: Option<Box<ProjectMilestoneFilter>>,
6471    /// Comparator for the collection length.
6472    #[serde(default, skip_serializing_if = "Option::is_none")]
6473    pub length: Option<Box<NumberComparator>>,
6474}
6475#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6476#[serde(rename_all = "camelCase")]
6477pub struct ProjectMilestoneCreateInput {
6478    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6479    #[serde(default, skip_serializing_if = "Option::is_none")]
6480    pub id: Option<String>,
6481    /// The name of the project milestone.
6482    #[serde(default, skip_serializing_if = "Option::is_none")]
6483    pub name: Option<String>,
6484    /// The description of the project milestone in markdown format.
6485    #[serde(default, skip_serializing_if = "Option::is_none")]
6486    pub description: Option<String>,
6487    /// `Internal` The description of the project milestone as a Prosemirror document.
6488    #[serde(default, skip_serializing_if = "Option::is_none")]
6489    pub description_data: Option<serde_json::Value>,
6490    /// The planned target date of the project milestone.
6491    #[serde(default, skip_serializing_if = "Option::is_none")]
6492    pub target_date: Option<chrono::NaiveDate>,
6493    /// Related project for the project milestone.
6494    #[serde(default, skip_serializing_if = "Option::is_none")]
6495    pub project_id: Option<String>,
6496    /// The sort order for the project milestone within a project.
6497    #[serde(default, skip_serializing_if = "Option::is_none")]
6498    pub sort_order: Option<f64>,
6499}
6500/// Project milestone filtering options.
6501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6502#[serde(rename_all = "camelCase")]
6503pub struct ProjectMilestoneFilter {
6504    /// Comparator for the identifier.
6505    #[serde(default, skip_serializing_if = "Option::is_none")]
6506    pub id: Option<Box<IDComparator>>,
6507    /// Comparator for the created at date.
6508    #[serde(default, skip_serializing_if = "Option::is_none")]
6509    pub created_at: Option<Box<DateComparator>>,
6510    /// Comparator for the updated at date.
6511    #[serde(default, skip_serializing_if = "Option::is_none")]
6512    pub updated_at: Option<Box<DateComparator>>,
6513    /// Comparator for the project milestone name.
6514    #[serde(default, skip_serializing_if = "Option::is_none")]
6515    pub name: Option<Box<NullableStringComparator>>,
6516    /// Comparator for the project milestone target date.
6517    #[serde(default, skip_serializing_if = "Option::is_none")]
6518    pub target_date: Option<Box<NullableDateComparator>>,
6519    /// Filters that the project milestone's project must satisfy.
6520    #[serde(default, skip_serializing_if = "Option::is_none")]
6521    pub project: Option<Box<NullableProjectFilter>>,
6522    /// Compound filters, all of which need to be matched by the project milestone.
6523    #[serde(default, skip_serializing_if = "Option::is_none")]
6524    pub and: Option<Vec<Box<ProjectMilestoneFilter>>>,
6525    /// Compound filters, one of which need to be matched by the project milestone.
6526    #[serde(default, skip_serializing_if = "Option::is_none")]
6527    pub or: Option<Vec<Box<ProjectMilestoneFilter>>>,
6528}
6529#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6530#[serde(rename_all = "camelCase")]
6531pub struct ProjectMilestoneMoveInput {
6532    /// The identifier of the project to move the milestone to.
6533    #[serde(default, skip_serializing_if = "Option::is_none")]
6534    pub project_id: Option<String>,
6535    /// 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.
6536    #[serde(default, skip_serializing_if = "Option::is_none")]
6537    pub new_issue_team_id: Option<String>,
6538    /// 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.
6539    #[serde(default, skip_serializing_if = "Option::is_none")]
6540    pub add_issue_team_to_project: Option<bool>,
6541    /// 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.
6542    #[serde(default, skip_serializing_if = "Option::is_none")]
6543    pub undo_issue_team_ids: Option<Vec<Box<ProjectMilestoneMoveIssueToTeamInput>>>,
6544    /// 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.
6545    #[serde(default, skip_serializing_if = "Option::is_none")]
6546    pub undo_project_team_ids: Option<Box<ProjectMilestoneMoveProjectTeamsInput>>,
6547}
6548/// `Internal` Used for ProjectMilestoneMoveInput to describe a mapping between an issue and its team.
6549#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6550#[serde(rename_all = "camelCase")]
6551pub struct ProjectMilestoneMoveIssueToTeamInput {
6552    /// The issue id in this relationship, you can use * as wildcard if all issues are being moved to the same team
6553    #[serde(default, skip_serializing_if = "Option::is_none")]
6554    pub issue_id: Option<String>,
6555    /// The team id in this relationship
6556    #[serde(default, skip_serializing_if = "Option::is_none")]
6557    pub team_id: Option<String>,
6558}
6559/// `Internal` Used for ProjectMilestoneMoveInput to describe a snapshot of a project and its team ids
6560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6561#[serde(rename_all = "camelCase")]
6562pub struct ProjectMilestoneMoveProjectTeamsInput {
6563    /// The project id
6564    #[serde(default, skip_serializing_if = "Option::is_none")]
6565    pub project_id: Option<String>,
6566    /// The team ids for the project
6567    #[serde(default, skip_serializing_if = "Option::is_none")]
6568    pub team_ids: Option<Vec<String>>,
6569}
6570#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6571#[serde(rename_all = "camelCase")]
6572pub struct ProjectMilestoneUpdateInput {
6573    /// The name of the project milestone.
6574    #[serde(default, skip_serializing_if = "Option::is_none")]
6575    pub name: Option<String>,
6576    /// The description of the project milestone in markdown format.
6577    #[serde(default, skip_serializing_if = "Option::is_none")]
6578    pub description: Option<String>,
6579    /// `Internal` The description of the project milestone as a Prosemirror document.
6580    #[serde(default, skip_serializing_if = "Option::is_none")]
6581    pub description_data: Option<serde_json::Value>,
6582    /// The planned target date of the project milestone.
6583    #[serde(default, skip_serializing_if = "Option::is_none")]
6584    pub target_date: Option<chrono::NaiveDate>,
6585    /// The sort order for the project milestone within a project.
6586    #[serde(default, skip_serializing_if = "Option::is_none")]
6587    pub sort_order: Option<f64>,
6588    /// Related project for the project milestone.
6589    #[serde(default, skip_serializing_if = "Option::is_none")]
6590    pub project_id: Option<String>,
6591}
6592/// Project name sorting options.
6593#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6594#[serde(rename_all = "camelCase")]
6595pub struct ProjectNameSort {
6596    /// Whether nulls should be sorted first or last
6597    #[serde(default, skip_serializing_if = "Option::is_none")]
6598    pub nulls: Option<PaginationNulls>,
6599    /// The order for the individual sort
6600    #[serde(default, skip_serializing_if = "Option::is_none")]
6601    pub order: Option<PaginationSortOrder>,
6602}
6603/// Project priority sorting options.
6604#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6605#[serde(rename_all = "camelCase")]
6606pub struct ProjectPrioritySort {
6607    /// Whether nulls should be sorted first or last
6608    #[serde(default, skip_serializing_if = "Option::is_none")]
6609    pub nulls: Option<PaginationNulls>,
6610    /// The order for the individual sort
6611    #[serde(default, skip_serializing_if = "Option::is_none")]
6612    pub order: Option<PaginationSortOrder>,
6613    /// Whether to consider no priority as the highest or lowest priority
6614    #[serde(default, skip_serializing_if = "Option::is_none")]
6615    pub no_priority_first: Option<bool>,
6616}
6617#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6618#[serde(rename_all = "camelCase")]
6619pub struct ProjectRelationCreateInput {
6620    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6621    #[serde(default, skip_serializing_if = "Option::is_none")]
6622    pub id: Option<String>,
6623    /// The type of relation of the project to the related project.
6624    #[serde(default, skip_serializing_if = "Option::is_none")]
6625    pub r#type: Option<String>,
6626    /// The identifier of the project that is related to another project.
6627    #[serde(default, skip_serializing_if = "Option::is_none")]
6628    pub project_id: Option<String>,
6629    /// The identifier of the project milestone.
6630    #[serde(default, skip_serializing_if = "Option::is_none")]
6631    pub project_milestone_id: Option<String>,
6632    /// The type of the anchor for the project.
6633    #[serde(default, skip_serializing_if = "Option::is_none")]
6634    pub anchor_type: Option<String>,
6635    /// The identifier of the related project.
6636    #[serde(default, skip_serializing_if = "Option::is_none")]
6637    pub related_project_id: Option<String>,
6638    /// The identifier of the related project milestone.
6639    #[serde(default, skip_serializing_if = "Option::is_none")]
6640    pub related_project_milestone_id: Option<String>,
6641    /// The type of the anchor for the related project.
6642    #[serde(default, skip_serializing_if = "Option::is_none")]
6643    pub related_anchor_type: Option<String>,
6644}
6645#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6646#[serde(rename_all = "camelCase")]
6647pub struct ProjectRelationUpdateInput {
6648    /// The type of relation of the project to the related project.
6649    #[serde(default, skip_serializing_if = "Option::is_none")]
6650    pub r#type: Option<String>,
6651    /// The identifier of the project that is related to another project.
6652    #[serde(default, skip_serializing_if = "Option::is_none")]
6653    pub project_id: Option<String>,
6654    /// The identifier of the project milestone.
6655    #[serde(default, skip_serializing_if = "Option::is_none")]
6656    pub project_milestone_id: Option<String>,
6657    /// The type of the anchor for the project.
6658    #[serde(default, skip_serializing_if = "Option::is_none")]
6659    pub anchor_type: Option<String>,
6660    /// The identifier of the related project.
6661    #[serde(default, skip_serializing_if = "Option::is_none")]
6662    pub related_project_id: Option<String>,
6663    /// The identifier of the related project milestone.
6664    #[serde(default, skip_serializing_if = "Option::is_none")]
6665    pub related_project_milestone_id: Option<String>,
6666    /// The type of the anchor for the related project.
6667    #[serde(default, skip_serializing_if = "Option::is_none")]
6668    pub related_anchor_type: Option<String>,
6669}
6670/// Issue project sorting options.
6671#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6672#[serde(rename_all = "camelCase")]
6673pub struct ProjectSort {
6674    /// Whether nulls should be sorted first or last
6675    #[serde(default, skip_serializing_if = "Option::is_none")]
6676    pub nulls: Option<PaginationNulls>,
6677    /// The order for the individual sort
6678    #[serde(default, skip_serializing_if = "Option::is_none")]
6679    pub order: Option<PaginationSortOrder>,
6680}
6681/// Project sorting options.
6682#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6683#[serde(rename_all = "camelCase")]
6684pub struct ProjectSortInput {
6685    /// Sort by project name
6686    #[serde(default, skip_serializing_if = "Option::is_none")]
6687    pub name: Option<Box<ProjectNameSort>>,
6688    /// Sort by project status
6689    #[serde(default, skip_serializing_if = "Option::is_none")]
6690    pub status: Option<Box<ProjectStatusSort>>,
6691    /// Sort by project priority
6692    #[serde(default, skip_serializing_if = "Option::is_none")]
6693    pub priority: Option<Box<ProjectPrioritySort>>,
6694    /// Sort by manual order
6695    #[serde(default, skip_serializing_if = "Option::is_none")]
6696    pub manual: Option<Box<ProjectManualSort>>,
6697    /// Sort by project target date
6698    #[serde(default, skip_serializing_if = "Option::is_none")]
6699    pub target_date: Option<Box<TargetDateSort>>,
6700    /// Sort by project start date
6701    #[serde(default, skip_serializing_if = "Option::is_none")]
6702    pub start_date: Option<Box<StartDateSort>>,
6703    /// Sort by project creation date
6704    #[serde(default, skip_serializing_if = "Option::is_none")]
6705    pub created_at: Option<Box<ProjectCreatedAtSort>>,
6706    /// Sort by project update date
6707    #[serde(default, skip_serializing_if = "Option::is_none")]
6708    pub updated_at: Option<Box<ProjectUpdatedAtSort>>,
6709    /// Sort by project health status.
6710    #[serde(default, skip_serializing_if = "Option::is_none")]
6711    pub health: Option<Box<ProjectHealthSort>>,
6712    /// Sort by project lead name.
6713    #[serde(default, skip_serializing_if = "Option::is_none")]
6714    pub lead: Option<Box<ProjectLeadSort>>,
6715}
6716#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6717#[serde(rename_all = "camelCase")]
6718pub struct ProjectStatusCreateInput {
6719    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6720    #[serde(default, skip_serializing_if = "Option::is_none")]
6721    pub id: Option<String>,
6722    /// The name of the status.
6723    #[serde(default, skip_serializing_if = "Option::is_none")]
6724    pub name: Option<String>,
6725    /// The UI color of the status as a HEX string.
6726    #[serde(default, skip_serializing_if = "Option::is_none")]
6727    pub color: Option<String>,
6728    /// Description of the status.
6729    #[serde(default, skip_serializing_if = "Option::is_none")]
6730    pub description: Option<String>,
6731    /// The position of the status in the workspace's project flow.
6732    #[serde(default, skip_serializing_if = "Option::is_none")]
6733    pub position: Option<f64>,
6734    /// The type of the project status.
6735    #[serde(default, skip_serializing_if = "Option::is_none")]
6736    pub r#type: Option<ProjectStatusType>,
6737    /// Whether or not a project can be in this status indefinitely.
6738    #[serde(default, skip_serializing_if = "Option::is_none")]
6739    pub indefinite: Option<bool>,
6740}
6741/// Project status filtering options.
6742#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6743#[serde(rename_all = "camelCase")]
6744pub struct ProjectStatusFilter {
6745    /// Comparator for the identifier.
6746    #[serde(default, skip_serializing_if = "Option::is_none")]
6747    pub id: Option<Box<IDComparator>>,
6748    /// Comparator for the created at date.
6749    #[serde(default, skip_serializing_if = "Option::is_none")]
6750    pub created_at: Option<Box<DateComparator>>,
6751    /// Comparator for the updated at date.
6752    #[serde(default, skip_serializing_if = "Option::is_none")]
6753    pub updated_at: Option<Box<DateComparator>>,
6754    /// Comparator for the project status name.
6755    #[serde(default, skip_serializing_if = "Option::is_none")]
6756    pub name: Option<Box<StringComparator>>,
6757    /// Comparator for the project status description.
6758    #[serde(default, skip_serializing_if = "Option::is_none")]
6759    pub description: Option<Box<StringComparator>>,
6760    /// Comparator for the project status position.
6761    #[serde(default, skip_serializing_if = "Option::is_none")]
6762    pub position: Option<Box<NumberComparator>>,
6763    /// Comparator for the project status type.
6764    #[serde(default, skip_serializing_if = "Option::is_none")]
6765    pub r#type: Option<Box<StringComparator>>,
6766    /// Filters that the project status projects must satisfy.
6767    #[serde(default, skip_serializing_if = "Option::is_none")]
6768    pub projects: Option<Box<ProjectCollectionFilter>>,
6769    /// Compound filters, all of which need to be matched by the project status.
6770    #[serde(default, skip_serializing_if = "Option::is_none")]
6771    pub and: Option<Vec<Box<ProjectStatusFilter>>>,
6772    /// Compound filters, one of which needs to be matched by the project status.
6773    #[serde(default, skip_serializing_if = "Option::is_none")]
6774    pub or: Option<Vec<Box<ProjectStatusFilter>>>,
6775}
6776/// Project status sorting options.
6777#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6778#[serde(rename_all = "camelCase")]
6779pub struct ProjectStatusSort {
6780    /// Whether nulls should be sorted first or last
6781    #[serde(default, skip_serializing_if = "Option::is_none")]
6782    pub nulls: Option<PaginationNulls>,
6783    /// The order for the individual sort
6784    #[serde(default, skip_serializing_if = "Option::is_none")]
6785    pub order: Option<PaginationSortOrder>,
6786}
6787#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6788#[serde(rename_all = "camelCase")]
6789pub struct ProjectStatusUpdateInput {
6790    /// The name of the status.
6791    #[serde(default, skip_serializing_if = "Option::is_none")]
6792    pub name: Option<String>,
6793    /// The UI color of the status as a HEX string.
6794    #[serde(default, skip_serializing_if = "Option::is_none")]
6795    pub color: Option<String>,
6796    /// Description of the status.
6797    #[serde(default, skip_serializing_if = "Option::is_none")]
6798    pub description: Option<String>,
6799    /// The position of the status in the workspace's project flow.
6800    #[serde(default, skip_serializing_if = "Option::is_none")]
6801    pub position: Option<f64>,
6802    /// The type of the project status.
6803    #[serde(default, skip_serializing_if = "Option::is_none")]
6804    pub r#type: Option<ProjectStatusType>,
6805    /// Whether or not a project can be in this status indefinitely.
6806    #[serde(default, skip_serializing_if = "Option::is_none")]
6807    pub indefinite: Option<bool>,
6808}
6809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6810#[serde(rename_all = "camelCase")]
6811pub struct ProjectUpdateCreateInput {
6812    /// The identifier. If none is provided, the backend will generate one.
6813    #[serde(default, skip_serializing_if = "Option::is_none")]
6814    pub id: Option<String>,
6815    /// The content of the project update in markdown format.
6816    #[serde(default, skip_serializing_if = "Option::is_none")]
6817    pub body: Option<String>,
6818    /// `Internal` The content of the project update as a Prosemirror document.
6819    #[serde(default, skip_serializing_if = "Option::is_none")]
6820    pub body_data: Option<serde_json::Value>,
6821    /// The project to associate the project update with.
6822    #[serde(default, skip_serializing_if = "Option::is_none")]
6823    pub project_id: Option<String>,
6824    /// The health of the project at the time of the update.
6825    #[serde(default, skip_serializing_if = "Option::is_none")]
6826    pub health: Option<ProjectUpdateHealthType>,
6827    /// Whether the diff between the current update and the previous one should be hidden.
6828    #[serde(default, skip_serializing_if = "Option::is_none")]
6829    pub is_diff_hidden: Option<bool>,
6830}
6831/// Options for filtering project updates.
6832#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6833#[serde(rename_all = "camelCase")]
6834pub struct ProjectUpdateFilter {
6835    /// Comparator for the identifier.
6836    #[serde(default, skip_serializing_if = "Option::is_none")]
6837    pub id: Option<Box<IDComparator>>,
6838    /// Comparator for the created at date.
6839    #[serde(default, skip_serializing_if = "Option::is_none")]
6840    pub created_at: Option<Box<DateComparator>>,
6841    /// Comparator for the updated at date.
6842    #[serde(default, skip_serializing_if = "Option::is_none")]
6843    pub updated_at: Option<Box<DateComparator>>,
6844    /// Filters that the project update creator must satisfy.
6845    #[serde(default, skip_serializing_if = "Option::is_none")]
6846    pub user: Option<Box<UserFilter>>,
6847    /// Filters that the project update project must satisfy.
6848    #[serde(default, skip_serializing_if = "Option::is_none")]
6849    pub project: Option<Box<ProjectFilter>>,
6850    /// Filters that the project updates reactions must satisfy.
6851    #[serde(default, skip_serializing_if = "Option::is_none")]
6852    pub reactions: Option<Box<ReactionCollectionFilter>>,
6853    /// Compound filters, all of which need to be matched by the ProjectUpdate.
6854    #[serde(default, skip_serializing_if = "Option::is_none")]
6855    pub and: Option<Vec<Box<ProjectUpdateFilter>>>,
6856    /// Compound filters, one of which need to be matched by the ProjectUpdate.
6857    #[serde(default, skip_serializing_if = "Option::is_none")]
6858    pub or: Option<Vec<Box<ProjectUpdateFilter>>>,
6859}
6860#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6861#[serde(rename_all = "camelCase")]
6862pub struct ProjectUpdateInput {
6863    /// The ID of the project status.
6864    #[serde(default, skip_serializing_if = "Option::is_none")]
6865    pub status_id: Option<String>,
6866    /// The name of the project.
6867    #[serde(default, skip_serializing_if = "Option::is_none")]
6868    pub name: Option<String>,
6869    /// The description for the project.
6870    #[serde(default, skip_serializing_if = "Option::is_none")]
6871    pub description: Option<String>,
6872    /// The project content as markdown.
6873    #[serde(default, skip_serializing_if = "Option::is_none")]
6874    pub content: Option<String>,
6875    /// The ID of the issue from which that project is created.
6876    #[serde(default, skip_serializing_if = "Option::is_none")]
6877    pub converted_from_issue_id: Option<String>,
6878    /// The ID of the last template applied to the project.
6879    #[serde(default, skip_serializing_if = "Option::is_none")]
6880    pub last_applied_template_id: Option<String>,
6881    /// The icon of the project.
6882    #[serde(default, skip_serializing_if = "Option::is_none")]
6883    pub icon: Option<String>,
6884    /// The color of the project.
6885    #[serde(default, skip_serializing_if = "Option::is_none")]
6886    pub color: Option<String>,
6887    /// The identifiers of the teams this project is associated with.
6888    #[serde(default, skip_serializing_if = "Option::is_none")]
6889    pub team_ids: Option<Vec<String>>,
6890    /// The time until which project update reminders are paused.
6891    #[serde(default, skip_serializing_if = "Option::is_none")]
6892    pub project_update_reminders_paused_until_at: Option<chrono::DateTime<chrono::Utc>>,
6893    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
6894    #[serde(default, skip_serializing_if = "Option::is_none")]
6895    pub update_reminder_frequency_in_weeks: Option<f64>,
6896    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
6897    #[serde(default, skip_serializing_if = "Option::is_none")]
6898    pub update_reminder_frequency: Option<f64>,
6899    /// The frequency resolution.
6900    #[serde(default, skip_serializing_if = "Option::is_none")]
6901    pub frequency_resolution: Option<FrequencyResolutionType>,
6902    /// The day at which to prompt for updates.
6903    #[serde(default, skip_serializing_if = "Option::is_none")]
6904    pub update_reminders_day: Option<Day>,
6905    /// The hour at which to prompt for updates.
6906    #[serde(default, skip_serializing_if = "Option::is_none")]
6907    pub update_reminders_hour: Option<i64>,
6908    /// The identifier of the project lead.
6909    #[serde(default, skip_serializing_if = "Option::is_none")]
6910    pub lead_id: Option<String>,
6911    /// The identifiers of the members of this project.
6912    #[serde(default, skip_serializing_if = "Option::is_none")]
6913    pub member_ids: Option<Vec<String>>,
6914    /// The planned start date of the project.
6915    #[serde(default, skip_serializing_if = "Option::is_none")]
6916    pub start_date: Option<chrono::NaiveDate>,
6917    /// The resolution of the project's start date.
6918    #[serde(default, skip_serializing_if = "Option::is_none")]
6919    pub start_date_resolution: Option<DateResolutionType>,
6920    /// The planned target date of the project.
6921    #[serde(default, skip_serializing_if = "Option::is_none")]
6922    pub target_date: Option<chrono::NaiveDate>,
6923    /// The resolution of the project's estimated completion date.
6924    #[serde(default, skip_serializing_if = "Option::is_none")]
6925    pub target_date_resolution: Option<DateResolutionType>,
6926    /// The date when the project was completed.
6927    #[serde(default, skip_serializing_if = "Option::is_none")]
6928    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
6929    /// The date when the project was canceled.
6930    #[serde(default, skip_serializing_if = "Option::is_none")]
6931    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
6932    /// Whether to send new issue notifications to Slack.
6933    #[serde(default, skip_serializing_if = "Option::is_none")]
6934    pub slack_new_issue: Option<bool>,
6935    /// Whether to send new issue comment notifications to Slack.
6936    #[serde(default, skip_serializing_if = "Option::is_none")]
6937    pub slack_issue_comments: Option<bool>,
6938    /// Whether to send issue status update notifications to Slack.
6939    #[serde(default, skip_serializing_if = "Option::is_none")]
6940    pub slack_issue_statuses: Option<bool>,
6941    /// The sort order for the project in shared views.
6942    #[serde(default, skip_serializing_if = "Option::is_none")]
6943    pub sort_order: Option<f64>,
6944    /// The sort order for the project within shared views, when ordered by priority.
6945    #[serde(default, skip_serializing_if = "Option::is_none")]
6946    pub priority_sort_order: Option<f64>,
6947    /// Whether the project has been trashed.
6948    #[serde(default, skip_serializing_if = "Option::is_none")]
6949    pub trashed: Option<bool>,
6950    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
6951    #[serde(default, skip_serializing_if = "Option::is_none")]
6952    pub priority: Option<i64>,
6953    /// The identifiers of the project labels associated with this project.
6954    #[serde(default, skip_serializing_if = "Option::is_none")]
6955    pub label_ids: Option<Vec<String>>,
6956}
6957#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6958#[serde(rename_all = "camelCase")]
6959pub struct ProjectUpdateUpdateInput {
6960    /// The content of the project update in markdown format.
6961    #[serde(default, skip_serializing_if = "Option::is_none")]
6962    pub body: Option<String>,
6963    /// The content of the project update as a Prosemirror document.
6964    #[serde(default, skip_serializing_if = "Option::is_none")]
6965    pub body_data: Option<serde_json::Value>,
6966    /// The health of the project at the time of the update.
6967    #[serde(default, skip_serializing_if = "Option::is_none")]
6968    pub health: Option<ProjectUpdateHealthType>,
6969    /// Whether the diff between the current update and the previous one should be hidden.
6970    #[serde(default, skip_serializing_if = "Option::is_none")]
6971    pub is_diff_hidden: Option<bool>,
6972}
6973/// Project update date sorting options.
6974#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6975#[serde(rename_all = "camelCase")]
6976pub struct ProjectUpdatedAtSort {
6977    /// Whether nulls should be sorted first or last
6978    #[serde(default, skip_serializing_if = "Option::is_none")]
6979    pub nulls: Option<PaginationNulls>,
6980    /// The order for the individual sort
6981    #[serde(default, skip_serializing_if = "Option::is_none")]
6982    pub order: Option<PaginationSortOrder>,
6983}
6984/// Collection filtering options for filtering projects by project updates.
6985#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6986#[serde(rename_all = "camelCase")]
6987pub struct ProjectUpdatesCollectionFilter {
6988    /// Comparator for the identifier.
6989    #[serde(default, skip_serializing_if = "Option::is_none")]
6990    pub id: Option<Box<IDComparator>>,
6991    /// Comparator for the created at date.
6992    #[serde(default, skip_serializing_if = "Option::is_none")]
6993    pub created_at: Option<Box<DateComparator>>,
6994    /// Comparator for the updated at date.
6995    #[serde(default, skip_serializing_if = "Option::is_none")]
6996    pub updated_at: Option<Box<DateComparator>>,
6997    /// Comparator for the project update health.
6998    #[serde(default, skip_serializing_if = "Option::is_none")]
6999    pub health: Option<Box<StringComparator>>,
7000    /// Compound filters, all of which need to be matched by the project update.
7001    #[serde(default, skip_serializing_if = "Option::is_none")]
7002    pub and: Option<Vec<Box<ProjectUpdatesCollectionFilter>>>,
7003    /// Compound filters, one of which need to be matched by the update.
7004    #[serde(default, skip_serializing_if = "Option::is_none")]
7005    pub or: Option<Vec<Box<ProjectUpdatesCollectionFilter>>>,
7006    /// Filters that needs to be matched by some updates.
7007    #[serde(default, skip_serializing_if = "Option::is_none")]
7008    pub some: Option<Box<ProjectUpdatesFilter>>,
7009    /// Filters that needs to be matched by all updates.
7010    #[serde(default, skip_serializing_if = "Option::is_none")]
7011    pub every: Option<Box<ProjectUpdatesFilter>>,
7012    /// Comparator for the collection length.
7013    #[serde(default, skip_serializing_if = "Option::is_none")]
7014    pub length: Option<Box<NumberComparator>>,
7015}
7016/// Options for filtering projects by project updates.
7017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7018#[serde(rename_all = "camelCase")]
7019pub struct ProjectUpdatesFilter {
7020    /// Comparator for the identifier.
7021    #[serde(default, skip_serializing_if = "Option::is_none")]
7022    pub id: Option<Box<IDComparator>>,
7023    /// Comparator for the created at date.
7024    #[serde(default, skip_serializing_if = "Option::is_none")]
7025    pub created_at: Option<Box<DateComparator>>,
7026    /// Comparator for the updated at date.
7027    #[serde(default, skip_serializing_if = "Option::is_none")]
7028    pub updated_at: Option<Box<DateComparator>>,
7029    /// Comparator for the project update health.
7030    #[serde(default, skip_serializing_if = "Option::is_none")]
7031    pub health: Option<Box<StringComparator>>,
7032    /// Compound filters, all of which need to be matched by the project updates.
7033    #[serde(default, skip_serializing_if = "Option::is_none")]
7034    pub and: Option<Vec<Box<ProjectUpdatesFilter>>>,
7035    /// Compound filters, one of which need to be matched by the project updates.
7036    #[serde(default, skip_serializing_if = "Option::is_none")]
7037    pub or: Option<Vec<Box<ProjectUpdatesFilter>>>,
7038}
7039/// Input for referencing a pull request by repository and number.
7040#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7041#[serde(rename_all = "camelCase")]
7042pub struct PullRequestReferenceInput {
7043    /// The owner of the repository (e.g., organization or user name).
7044    #[serde(default, skip_serializing_if = "Option::is_none")]
7045    pub repository_owner: Option<String>,
7046    /// The name of the repository.
7047    #[serde(default, skip_serializing_if = "Option::is_none")]
7048    pub repository_name: Option<String>,
7049    /// The pull request number.
7050    #[serde(default, skip_serializing_if = "Option::is_none")]
7051    pub number: Option<f64>,
7052}
7053#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7054#[serde(rename_all = "camelCase")]
7055pub struct PushSubscriptionCreateInput {
7056    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7057    #[serde(default, skip_serializing_if = "Option::is_none")]
7058    pub id: Option<String>,
7059    /// The data of the subscription in stringified JSON format.
7060    #[serde(default, skip_serializing_if = "Option::is_none")]
7061    pub data: Option<String>,
7062    /// Whether this is a subscription payload for Google Cloud Messaging or Apple Push Notification service.
7063    #[serde(default, skip_serializing_if = "Option::is_none")]
7064    pub r#type: Option<PushSubscriptionType>,
7065}
7066/// Reaction filtering options.
7067#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7068#[serde(rename_all = "camelCase")]
7069pub struct ReactionCollectionFilter {
7070    /// Comparator for the identifier.
7071    #[serde(default, skip_serializing_if = "Option::is_none")]
7072    pub id: Option<Box<IDComparator>>,
7073    /// Comparator for the created at date.
7074    #[serde(default, skip_serializing_if = "Option::is_none")]
7075    pub created_at: Option<Box<DateComparator>>,
7076    /// Comparator for the updated at date.
7077    #[serde(default, skip_serializing_if = "Option::is_none")]
7078    pub updated_at: Option<Box<DateComparator>>,
7079    /// Comparator for the reactions emoji.
7080    #[serde(default, skip_serializing_if = "Option::is_none")]
7081    pub emoji: Option<Box<StringComparator>>,
7082    /// Comparator for the reactions custom emoji.
7083    #[serde(default, skip_serializing_if = "Option::is_none")]
7084    pub custom_emoji_id: Option<Box<IDComparator>>,
7085    /// Compound filters, all of which need to be matched by the reaction.
7086    #[serde(default, skip_serializing_if = "Option::is_none")]
7087    pub and: Option<Vec<Box<ReactionCollectionFilter>>>,
7088    /// Compound filters, one of which need to be matched by the reaction.
7089    #[serde(default, skip_serializing_if = "Option::is_none")]
7090    pub or: Option<Vec<Box<ReactionCollectionFilter>>>,
7091    /// Filters that needs to be matched by some reactions.
7092    #[serde(default, skip_serializing_if = "Option::is_none")]
7093    pub some: Option<Box<ReactionFilter>>,
7094    /// Filters that needs to be matched by all reactions.
7095    #[serde(default, skip_serializing_if = "Option::is_none")]
7096    pub every: Option<Box<ReactionFilter>>,
7097    /// Comparator for the collection length.
7098    #[serde(default, skip_serializing_if = "Option::is_none")]
7099    pub length: Option<Box<NumberComparator>>,
7100}
7101#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7102#[serde(rename_all = "camelCase")]
7103pub struct ReactionCreateInput {
7104    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7105    #[serde(default, skip_serializing_if = "Option::is_none")]
7106    pub id: Option<String>,
7107    /// The emoji the user reacted with.
7108    #[serde(default, skip_serializing_if = "Option::is_none")]
7109    pub emoji: Option<String>,
7110    /// The comment to associate the reaction with.
7111    #[serde(default, skip_serializing_if = "Option::is_none")]
7112    pub comment_id: Option<String>,
7113    /// The project update to associate the reaction with.
7114    #[serde(default, skip_serializing_if = "Option::is_none")]
7115    pub project_update_id: Option<String>,
7116    /// The update to associate the reaction with.
7117    #[serde(default, skip_serializing_if = "Option::is_none")]
7118    pub initiative_update_id: Option<String>,
7119    /// The issue to associate the reaction with. Can be a UUID or issue identifier (e.g., 'LIN-123').
7120    #[serde(default, skip_serializing_if = "Option::is_none")]
7121    pub issue_id: Option<String>,
7122    /// `Internal` The post to associate the reaction with.
7123    #[serde(default, skip_serializing_if = "Option::is_none")]
7124    pub post_id: Option<String>,
7125    /// `Internal` The pull request to associate the reaction with.
7126    #[serde(default, skip_serializing_if = "Option::is_none")]
7127    pub pull_request_id: Option<String>,
7128    /// `Internal` The pull request comment to associate the reaction with.
7129    #[serde(default, skip_serializing_if = "Option::is_none")]
7130    pub pull_request_comment_id: Option<String>,
7131}
7132/// Reaction filtering options.
7133#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7134#[serde(rename_all = "camelCase")]
7135pub struct ReactionFilter {
7136    /// Comparator for the identifier.
7137    #[serde(default, skip_serializing_if = "Option::is_none")]
7138    pub id: Option<Box<IDComparator>>,
7139    /// Comparator for the created at date.
7140    #[serde(default, skip_serializing_if = "Option::is_none")]
7141    pub created_at: Option<Box<DateComparator>>,
7142    /// Comparator for the updated at date.
7143    #[serde(default, skip_serializing_if = "Option::is_none")]
7144    pub updated_at: Option<Box<DateComparator>>,
7145    /// Comparator for the reactions emoji.
7146    #[serde(default, skip_serializing_if = "Option::is_none")]
7147    pub emoji: Option<Box<StringComparator>>,
7148    /// Comparator for the reactions custom emoji.
7149    #[serde(default, skip_serializing_if = "Option::is_none")]
7150    pub custom_emoji_id: Option<Box<IDComparator>>,
7151    /// Compound filters, all of which need to be matched by the reaction.
7152    #[serde(default, skip_serializing_if = "Option::is_none")]
7153    pub and: Option<Vec<Box<ReactionFilter>>>,
7154    /// Compound filters, one of which need to be matched by the reaction.
7155    #[serde(default, skip_serializing_if = "Option::is_none")]
7156    pub or: Option<Vec<Box<ReactionFilter>>>,
7157}
7158/// Comparator for relation existence.
7159#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7160#[serde(rename_all = "camelCase")]
7161pub struct RelationExistsComparator {
7162    /// Equals constraint.
7163    #[serde(default, skip_serializing_if = "Option::is_none")]
7164    pub eq: Option<bool>,
7165    /// Not equals constraint.
7166    #[serde(default, skip_serializing_if = "Option::is_none")]
7167    pub neq: Option<bool>,
7168}
7169/// `ALPHA` Release collection filtering options.
7170#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7171#[serde(rename_all = "camelCase")]
7172pub struct ReleaseCollectionFilter {
7173    /// Comparator for the identifier.
7174    #[serde(default, skip_serializing_if = "Option::is_none")]
7175    pub id: Option<Box<IDComparator>>,
7176    /// Comparator for the created at date.
7177    #[serde(default, skip_serializing_if = "Option::is_none")]
7178    pub created_at: Option<Box<DateComparator>>,
7179    /// Comparator for the updated at date.
7180    #[serde(default, skip_serializing_if = "Option::is_none")]
7181    pub updated_at: Option<Box<DateComparator>>,
7182    /// Filters that the release's pipeline must satisfy.
7183    #[serde(default, skip_serializing_if = "Option::is_none")]
7184    pub pipeline: Option<Box<ReleasePipelineFilter>>,
7185    /// Filters that the release's stage must satisfy.
7186    #[serde(default, skip_serializing_if = "Option::is_none")]
7187    pub stage: Option<Box<ReleaseStageFilter>>,
7188    /// Compound filters, all of which need to be matched by the release.
7189    #[serde(default, skip_serializing_if = "Option::is_none")]
7190    pub and: Option<Vec<Box<ReleaseCollectionFilter>>>,
7191    /// Compound filters, one of which need to be matched by the release.
7192    #[serde(default, skip_serializing_if = "Option::is_none")]
7193    pub or: Option<Vec<Box<ReleaseCollectionFilter>>>,
7194    /// Filters that needs to be matched by some releases.
7195    #[serde(default, skip_serializing_if = "Option::is_none")]
7196    pub some: Option<Box<ReleaseFilter>>,
7197    /// Filters that needs to be matched by all releases.
7198    #[serde(default, skip_serializing_if = "Option::is_none")]
7199    pub every: Option<Box<ReleaseFilter>>,
7200    /// Comparator for the collection length.
7201    #[serde(default, skip_serializing_if = "Option::is_none")]
7202    pub length: Option<Box<NumberComparator>>,
7203}
7204#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7205#[serde(rename_all = "camelCase")]
7206pub struct ReleaseCompleteInput {
7207    /// The version of the release to complete. If not provided, the latest started release will be completed.
7208    #[serde(default, skip_serializing_if = "Option::is_none")]
7209    pub version: Option<String>,
7210    /// 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.
7211    #[serde(default, skip_serializing_if = "Option::is_none")]
7212    pub commit_sha: Option<String>,
7213    /// The identifier of the pipeline to mark a release as completed.
7214    #[serde(default, skip_serializing_if = "Option::is_none")]
7215    pub pipeline_id: Option<String>,
7216}
7217#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7218#[serde(rename_all = "camelCase")]
7219pub struct ReleaseCompleteInputBase {
7220    /// The version of the release to complete. If not provided, the latest started release will be completed.
7221    #[serde(default, skip_serializing_if = "Option::is_none")]
7222    pub version: Option<String>,
7223    /// 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.
7224    #[serde(default, skip_serializing_if = "Option::is_none")]
7225    pub commit_sha: Option<String>,
7226}
7227/// The input for creating a release.
7228#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7229#[serde(rename_all = "camelCase")]
7230pub struct ReleaseCreateInput {
7231    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7232    #[serde(default, skip_serializing_if = "Option::is_none")]
7233    pub id: Option<String>,
7234    /// The name of the release.
7235    #[serde(default, skip_serializing_if = "Option::is_none")]
7236    pub name: Option<String>,
7237    /// The description of the release.
7238    #[serde(default, skip_serializing_if = "Option::is_none")]
7239    pub description: Option<String>,
7240    /// The version of the release.
7241    #[serde(default, skip_serializing_if = "Option::is_none")]
7242    pub version: Option<String>,
7243    /// The commit SHA associated with this release.
7244    #[serde(default, skip_serializing_if = "Option::is_none")]
7245    pub commit_sha: Option<String>,
7246    /// The identifier of the pipeline this release belongs to.
7247    #[serde(default, skip_serializing_if = "Option::is_none")]
7248    pub pipeline_id: Option<String>,
7249    /// The current stage of the release. Defaults to the first 'completed' stage for continuous pipelines, or the first 'started' stage for scheduled pipelines.
7250    #[serde(default, skip_serializing_if = "Option::is_none")]
7251    pub stage_id: Option<String>,
7252    /// The estimated start date of the release.
7253    #[serde(default, skip_serializing_if = "Option::is_none")]
7254    pub start_date: Option<chrono::NaiveDate>,
7255    /// The estimated completion date of the release.
7256    #[serde(default, skip_serializing_if = "Option::is_none")]
7257    pub target_date: Option<chrono::NaiveDate>,
7258}
7259/// Debug sink for release creation diagnostics.
7260#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7261#[serde(rename_all = "camelCase")]
7262pub struct ReleaseDebugSinkInput {
7263    /// List of commit SHAs that were inspected.
7264    #[serde(default, skip_serializing_if = "Option::is_none")]
7265    pub inspected_shas: Option<Vec<String>>,
7266    /// Map of issue identifiers to their source information.
7267    #[serde(default, skip_serializing_if = "Option::is_none")]
7268    pub issues: Option<serde_json::Value>,
7269    /// Pull request debug information.
7270    #[serde(default, skip_serializing_if = "Option::is_none")]
7271    pub pull_requests: Option<Vec<serde_json::Value>>,
7272    /// List of paths applied during commit scanning.
7273    #[serde(default, skip_serializing_if = "Option::is_none")]
7274    pub include_paths: Option<Vec<String>>,
7275}
7276/// `ALPHA` Release filtering options.
7277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7278#[serde(rename_all = "camelCase")]
7279pub struct ReleaseFilter {
7280    /// Comparator for the identifier.
7281    #[serde(default, skip_serializing_if = "Option::is_none")]
7282    pub id: Option<Box<IDComparator>>,
7283    /// Comparator for the created at date.
7284    #[serde(default, skip_serializing_if = "Option::is_none")]
7285    pub created_at: Option<Box<DateComparator>>,
7286    /// Comparator for the updated at date.
7287    #[serde(default, skip_serializing_if = "Option::is_none")]
7288    pub updated_at: Option<Box<DateComparator>>,
7289    /// Filters that the release's pipeline must satisfy.
7290    #[serde(default, skip_serializing_if = "Option::is_none")]
7291    pub pipeline: Option<Box<ReleasePipelineFilter>>,
7292    /// Filters that the release's stage must satisfy.
7293    #[serde(default, skip_serializing_if = "Option::is_none")]
7294    pub stage: Option<Box<ReleaseStageFilter>>,
7295    /// Compound filters, all of which need to be matched by the release.
7296    #[serde(default, skip_serializing_if = "Option::is_none")]
7297    pub and: Option<Vec<Box<ReleaseFilter>>>,
7298    /// Compound filters, one of which need to be matched by the release.
7299    #[serde(default, skip_serializing_if = "Option::is_none")]
7300    pub or: Option<Vec<Box<ReleaseFilter>>>,
7301}
7302#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7303#[serde(rename_all = "camelCase")]
7304pub struct ReleasePipelineCreateInput {
7305    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7306    #[serde(default, skip_serializing_if = "Option::is_none")]
7307    pub id: Option<String>,
7308    /// The name of the pipeline.
7309    #[serde(default, skip_serializing_if = "Option::is_none")]
7310    pub name: Option<String>,
7311    /// The pipeline's unique slug identifier. If not provided, it will be auto-generated.
7312    #[serde(default, skip_serializing_if = "Option::is_none")]
7313    pub slug_id: Option<String>,
7314    /// The type of the pipeline.
7315    #[serde(default, skip_serializing_if = "Option::is_none")]
7316    pub r#type: Option<ReleasePipelineType>,
7317    /// Glob patterns to include commits affecting matching file paths.
7318    #[serde(default, skip_serializing_if = "Option::is_none")]
7319    pub include_path_patterns: Option<Vec<String>>,
7320}
7321/// `ALPHA` Release pipeline filtering options.
7322#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7323#[serde(rename_all = "camelCase")]
7324pub struct ReleasePipelineFilter {
7325    /// Comparator for the identifier.
7326    #[serde(default, skip_serializing_if = "Option::is_none")]
7327    pub id: Option<Box<IDComparator>>,
7328    /// Comparator for the created at date.
7329    #[serde(default, skip_serializing_if = "Option::is_none")]
7330    pub created_at: Option<Box<DateComparator>>,
7331    /// Comparator for the updated at date.
7332    #[serde(default, skip_serializing_if = "Option::is_none")]
7333    pub updated_at: Option<Box<DateComparator>>,
7334    /// Compound filters, all of which need to be matched by the pipeline.
7335    #[serde(default, skip_serializing_if = "Option::is_none")]
7336    pub and: Option<Vec<Box<ReleasePipelineFilter>>>,
7337    /// Compound filters, one of which need to be matched by the pipeline.
7338    #[serde(default, skip_serializing_if = "Option::is_none")]
7339    pub or: Option<Vec<Box<ReleasePipelineFilter>>>,
7340}
7341#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7342#[serde(rename_all = "camelCase")]
7343pub struct ReleasePipelineUpdateInput {
7344    /// The name of the pipeline.
7345    #[serde(default, skip_serializing_if = "Option::is_none")]
7346    pub name: Option<String>,
7347    /// The pipeline's unique slug identifier.
7348    #[serde(default, skip_serializing_if = "Option::is_none")]
7349    pub slug_id: Option<String>,
7350    /// The type of the pipeline.
7351    #[serde(default, skip_serializing_if = "Option::is_none")]
7352    pub r#type: Option<ReleasePipelineType>,
7353    /// Glob patterns to include commits affecting matching file paths.
7354    #[serde(default, skip_serializing_if = "Option::is_none")]
7355    pub include_path_patterns: Option<Vec<String>>,
7356}
7357#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7358#[serde(rename_all = "camelCase")]
7359pub struct ReleaseStageCreateInput {
7360    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7361    #[serde(default, skip_serializing_if = "Option::is_none")]
7362    pub id: Option<String>,
7363    /// The name of the stage.
7364    #[serde(default, skip_serializing_if = "Option::is_none")]
7365    pub name: Option<String>,
7366    /// The UI color of the stage as a HEX string.
7367    #[serde(default, skip_serializing_if = "Option::is_none")]
7368    pub color: Option<String>,
7369    /// The type of the stage.
7370    #[serde(default, skip_serializing_if = "Option::is_none")]
7371    pub r#type: Option<ReleaseStageType>,
7372    /// The position of the stage.
7373    #[serde(default, skip_serializing_if = "Option::is_none")]
7374    pub position: Option<f64>,
7375    /// The identifier of the pipeline this stage belongs to.
7376    #[serde(default, skip_serializing_if = "Option::is_none")]
7377    pub pipeline_id: Option<String>,
7378}
7379/// `ALPHA` Release stage filtering options.
7380#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7381#[serde(rename_all = "camelCase")]
7382pub struct ReleaseStageFilter {
7383    /// Comparator for the identifier.
7384    #[serde(default, skip_serializing_if = "Option::is_none")]
7385    pub id: Option<Box<IDComparator>>,
7386    /// Comparator for the created at date.
7387    #[serde(default, skip_serializing_if = "Option::is_none")]
7388    pub created_at: Option<Box<DateComparator>>,
7389    /// Comparator for the updated at date.
7390    #[serde(default, skip_serializing_if = "Option::is_none")]
7391    pub updated_at: Option<Box<DateComparator>>,
7392    /// Comparator for the stage type.
7393    #[serde(default, skip_serializing_if = "Option::is_none")]
7394    pub r#type: Option<Box<ReleaseStageTypeComparator>>,
7395    /// Comparator for the stage name.
7396    #[serde(default, skip_serializing_if = "Option::is_none")]
7397    pub name: Option<Box<StringComparator>>,
7398    /// Compound filters, all of which need to be matched by the stage.
7399    #[serde(default, skip_serializing_if = "Option::is_none")]
7400    pub and: Option<Vec<Box<ReleaseStageFilter>>>,
7401    /// Compound filters, one of which need to be matched by the stage.
7402    #[serde(default, skip_serializing_if = "Option::is_none")]
7403    pub or: Option<Vec<Box<ReleaseStageFilter>>>,
7404}
7405/// `ALPHA` Comparator for release stage type.
7406#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7407#[serde(rename_all = "camelCase")]
7408pub struct ReleaseStageTypeComparator {
7409    /// Equals constraint.
7410    #[serde(default, skip_serializing_if = "Option::is_none")]
7411    pub eq: Option<ReleaseStageType>,
7412    /// Not-equals constraint.
7413    #[serde(default, skip_serializing_if = "Option::is_none")]
7414    pub neq: Option<ReleaseStageType>,
7415    /// In-array constraint.
7416    #[serde(default, skip_serializing_if = "Option::is_none")]
7417    pub r#in: Option<Vec<ReleaseStageType>>,
7418    /// Not-in-array constraint.
7419    #[serde(default, skip_serializing_if = "Option::is_none")]
7420    pub nin: Option<Vec<ReleaseStageType>>,
7421    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
7422    #[serde(default, skip_serializing_if = "Option::is_none")]
7423    pub null: Option<bool>,
7424}
7425#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7426#[serde(rename_all = "camelCase")]
7427pub struct ReleaseStageUpdateInput {
7428    /// The name of the stage.
7429    #[serde(default, skip_serializing_if = "Option::is_none")]
7430    pub name: Option<String>,
7431    /// The UI color of the stage as a HEX string.
7432    #[serde(default, skip_serializing_if = "Option::is_none")]
7433    pub color: Option<String>,
7434    /// The position of the stage.
7435    #[serde(default, skip_serializing_if = "Option::is_none")]
7436    pub position: Option<f64>,
7437}
7438/// The release data to sync.
7439#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7440#[serde(rename_all = "camelCase")]
7441pub struct ReleaseSyncInput {
7442    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7443    #[serde(default, skip_serializing_if = "Option::is_none")]
7444    pub id: Option<String>,
7445    /// The name of the release.
7446    #[serde(default, skip_serializing_if = "Option::is_none")]
7447    pub name: Option<String>,
7448    /// The description of the release.
7449    #[serde(default, skip_serializing_if = "Option::is_none")]
7450    pub description: Option<String>,
7451    /// The version of the release.
7452    #[serde(default, skip_serializing_if = "Option::is_none")]
7453    pub version: Option<String>,
7454    /// The commit SHA associated with this release.
7455    #[serde(default, skip_serializing_if = "Option::is_none")]
7456    pub commit_sha: Option<String>,
7457    /// The current stage of the release. Defaults to the first 'completed' stage.
7458    #[serde(default, skip_serializing_if = "Option::is_none")]
7459    pub stage_id: Option<String>,
7460    /// Issue references (e.g. ENG-123) to associate with this release.
7461    #[serde(default, skip_serializing_if = "Option::is_none")]
7462    pub issue_references: Option<Vec<Box<IssueReferenceInput>>>,
7463    /// Pull request references to look up. Issues linked to found PRs will be associated with this release.
7464    #[serde(default, skip_serializing_if = "Option::is_none")]
7465    pub pull_request_references: Option<Vec<Box<PullRequestReferenceInput>>>,
7466    /// Information about the source repository.
7467    #[serde(default, skip_serializing_if = "Option::is_none")]
7468    pub repository: Option<Box<RepositoryDataInput>>,
7469    /// Debug information for release creation diagnostics.
7470    #[serde(default, skip_serializing_if = "Option::is_none")]
7471    pub debug_sink: Option<Box<ReleaseDebugSinkInput>>,
7472    /// The estimated start date of the release.
7473    #[serde(default, skip_serializing_if = "Option::is_none")]
7474    pub start_date: Option<chrono::NaiveDate>,
7475    /// The estimated completion date of the release.
7476    #[serde(default, skip_serializing_if = "Option::is_none")]
7477    pub target_date: Option<chrono::NaiveDate>,
7478    /// The identifier of the pipeline this release belongs to.
7479    #[serde(default, skip_serializing_if = "Option::is_none")]
7480    pub pipeline_id: Option<String>,
7481}
7482/// Base release sync data without pipeline specification.
7483#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7484#[serde(rename_all = "camelCase")]
7485pub struct ReleaseSyncInputBase {
7486    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7487    #[serde(default, skip_serializing_if = "Option::is_none")]
7488    pub id: Option<String>,
7489    /// The name of the release.
7490    #[serde(default, skip_serializing_if = "Option::is_none")]
7491    pub name: Option<String>,
7492    /// The description of the release.
7493    #[serde(default, skip_serializing_if = "Option::is_none")]
7494    pub description: Option<String>,
7495    /// The version of the release.
7496    #[serde(default, skip_serializing_if = "Option::is_none")]
7497    pub version: Option<String>,
7498    /// The commit SHA associated with this release.
7499    #[serde(default, skip_serializing_if = "Option::is_none")]
7500    pub commit_sha: Option<String>,
7501    /// The current stage of the release. Defaults to the first 'completed' stage.
7502    #[serde(default, skip_serializing_if = "Option::is_none")]
7503    pub stage_id: Option<String>,
7504    /// Issue references (e.g. ENG-123) to associate with this release.
7505    #[serde(default, skip_serializing_if = "Option::is_none")]
7506    pub issue_references: Option<Vec<Box<IssueReferenceInput>>>,
7507    /// Pull request references to look up. Issues linked to found PRs will be associated with this release.
7508    #[serde(default, skip_serializing_if = "Option::is_none")]
7509    pub pull_request_references: Option<Vec<Box<PullRequestReferenceInput>>>,
7510    /// Information about the source repository.
7511    #[serde(default, skip_serializing_if = "Option::is_none")]
7512    pub repository: Option<Box<RepositoryDataInput>>,
7513    /// Debug information for release creation diagnostics.
7514    #[serde(default, skip_serializing_if = "Option::is_none")]
7515    pub debug_sink: Option<Box<ReleaseDebugSinkInput>>,
7516    /// The estimated start date of the release.
7517    #[serde(default, skip_serializing_if = "Option::is_none")]
7518    pub start_date: Option<chrono::NaiveDate>,
7519    /// The estimated completion date of the release.
7520    #[serde(default, skip_serializing_if = "Option::is_none")]
7521    pub target_date: Option<chrono::NaiveDate>,
7522}
7523/// Input for updating a release by pipeline.
7524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7525#[serde(rename_all = "camelCase")]
7526pub struct ReleaseUpdateByPipelineInput {
7527    /// The version of the release to update. If not provided, the latest started or latest planned release will be updated.
7528    #[serde(default, skip_serializing_if = "Option::is_none")]
7529    pub version: Option<String>,
7530    /// The stage name to set. First tries exact match, then falls back to case-insensitive matching with dashes/underscores treated as spaces.
7531    #[serde(default, skip_serializing_if = "Option::is_none")]
7532    pub stage: Option<String>,
7533    /// The identifier of the pipeline.
7534    #[serde(default, skip_serializing_if = "Option::is_none")]
7535    pub pipeline_id: Option<String>,
7536}
7537#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7538#[serde(rename_all = "camelCase")]
7539pub struct ReleaseUpdateByPipelineInputBase {
7540    /// The version of the release to update. If not provided, the latest started or latest planned release will be updated.
7541    #[serde(default, skip_serializing_if = "Option::is_none")]
7542    pub version: Option<String>,
7543    /// The stage name to set. First tries exact match, then falls back to case-insensitive matching with dashes/underscores treated as spaces.
7544    #[serde(default, skip_serializing_if = "Option::is_none")]
7545    pub stage: Option<String>,
7546}
7547#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7548#[serde(rename_all = "camelCase")]
7549pub struct ReleaseUpdateInput {
7550    /// The name of the release.
7551    #[serde(default, skip_serializing_if = "Option::is_none")]
7552    pub name: Option<String>,
7553    /// The description of the release.
7554    #[serde(default, skip_serializing_if = "Option::is_none")]
7555    pub description: Option<String>,
7556    /// The version of the release.
7557    #[serde(default, skip_serializing_if = "Option::is_none")]
7558    pub version: Option<String>,
7559    /// The commit SHA associated with this release.
7560    #[serde(default, skip_serializing_if = "Option::is_none")]
7561    pub commit_sha: Option<String>,
7562    /// The identifier of the pipeline this release belongs to.
7563    #[serde(default, skip_serializing_if = "Option::is_none")]
7564    pub pipeline_id: Option<String>,
7565    /// The current stage of the release.
7566    #[serde(default, skip_serializing_if = "Option::is_none")]
7567    pub stage_id: Option<String>,
7568    /// The estimated start date of the release.
7569    #[serde(default, skip_serializing_if = "Option::is_none")]
7570    pub start_date: Option<chrono::NaiveDate>,
7571    /// The estimated completion date of the release.
7572    #[serde(default, skip_serializing_if = "Option::is_none")]
7573    pub target_date: Option<chrono::NaiveDate>,
7574}
7575/// Information about the source repository.
7576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7577#[serde(rename_all = "camelCase")]
7578pub struct RepositoryDataInput {
7579    /// The owner of the repository (e.g., organization or user name).
7580    #[serde(default, skip_serializing_if = "Option::is_none")]
7581    pub owner: Option<String>,
7582    /// The name of the repository.
7583    #[serde(default, skip_serializing_if = "Option::is_none")]
7584    pub name: Option<String>,
7585    /// The VCS provider hosting the repository (e.g., 'github', 'gitlab').
7586    #[serde(default, skip_serializing_if = "Option::is_none")]
7587    pub provider: Option<String>,
7588    /// The base URL of the repository on the hosting provider (e.g., '<https://github.com/linear/linear-app>').
7589    #[serde(default, skip_serializing_if = "Option::is_none")]
7590    pub url: Option<String>,
7591}
7592/// Customer revenue sorting options.
7593#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7594#[serde(rename_all = "camelCase")]
7595pub struct RevenueSort {
7596    /// Whether nulls should be sorted first or last
7597    #[serde(default, skip_serializing_if = "Option::is_none")]
7598    pub nulls: Option<PaginationNulls>,
7599    /// The order for the individual sort
7600    #[serde(default, skip_serializing_if = "Option::is_none")]
7601    pub order: Option<PaginationSortOrder>,
7602}
7603/// Roadmap collection filtering options.
7604#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7605#[serde(rename_all = "camelCase")]
7606pub struct RoadmapCollectionFilter {
7607    /// Comparator for the identifier.
7608    #[serde(default, skip_serializing_if = "Option::is_none")]
7609    pub id: Option<Box<IDComparator>>,
7610    /// Comparator for the created at date.
7611    #[serde(default, skip_serializing_if = "Option::is_none")]
7612    pub created_at: Option<Box<DateComparator>>,
7613    /// Comparator for the updated at date.
7614    #[serde(default, skip_serializing_if = "Option::is_none")]
7615    pub updated_at: Option<Box<DateComparator>>,
7616    /// Comparator for the roadmap name.
7617    #[serde(default, skip_serializing_if = "Option::is_none")]
7618    pub name: Option<Box<StringComparator>>,
7619    /// Comparator for the roadmap slug ID.
7620    #[serde(default, skip_serializing_if = "Option::is_none")]
7621    pub slug_id: Option<Box<StringComparator>>,
7622    /// Filters that the roadmap creator must satisfy.
7623    #[serde(default, skip_serializing_if = "Option::is_none")]
7624    pub creator: Option<Box<UserFilter>>,
7625    /// Compound filters, all of which need to be matched by the roadmap.
7626    #[serde(default, skip_serializing_if = "Option::is_none")]
7627    pub and: Option<Vec<Box<RoadmapCollectionFilter>>>,
7628    /// Compound filters, one of which need to be matched by the roadmap.
7629    #[serde(default, skip_serializing_if = "Option::is_none")]
7630    pub or: Option<Vec<Box<RoadmapCollectionFilter>>>,
7631    /// Filters that needs to be matched by some roadmaps.
7632    #[serde(default, skip_serializing_if = "Option::is_none")]
7633    pub some: Option<Box<RoadmapFilter>>,
7634    /// Filters that needs to be matched by all roadmaps.
7635    #[serde(default, skip_serializing_if = "Option::is_none")]
7636    pub every: Option<Box<RoadmapFilter>>,
7637    /// Comparator for the collection length.
7638    #[serde(default, skip_serializing_if = "Option::is_none")]
7639    pub length: Option<Box<NumberComparator>>,
7640}
7641#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7642#[serde(rename_all = "camelCase")]
7643pub struct RoadmapCreateInput {
7644    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7645    #[serde(default, skip_serializing_if = "Option::is_none")]
7646    pub id: Option<String>,
7647    /// The name of the roadmap.
7648    #[serde(default, skip_serializing_if = "Option::is_none")]
7649    pub name: Option<String>,
7650    /// The description of the roadmap.
7651    #[serde(default, skip_serializing_if = "Option::is_none")]
7652    pub description: Option<String>,
7653    /// The owner of the roadmap.
7654    #[serde(default, skip_serializing_if = "Option::is_none")]
7655    pub owner_id: Option<String>,
7656    /// The sort order of the roadmap within the organization.
7657    #[serde(default, skip_serializing_if = "Option::is_none")]
7658    pub sort_order: Option<f64>,
7659    /// The roadmap's color.
7660    #[serde(default, skip_serializing_if = "Option::is_none")]
7661    pub color: Option<String>,
7662}
7663/// Roadmap filtering options.
7664#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7665#[serde(rename_all = "camelCase")]
7666pub struct RoadmapFilter {
7667    /// Comparator for the identifier.
7668    #[serde(default, skip_serializing_if = "Option::is_none")]
7669    pub id: Option<Box<IDComparator>>,
7670    /// Comparator for the created at date.
7671    #[serde(default, skip_serializing_if = "Option::is_none")]
7672    pub created_at: Option<Box<DateComparator>>,
7673    /// Comparator for the updated at date.
7674    #[serde(default, skip_serializing_if = "Option::is_none")]
7675    pub updated_at: Option<Box<DateComparator>>,
7676    /// Comparator for the roadmap name.
7677    #[serde(default, skip_serializing_if = "Option::is_none")]
7678    pub name: Option<Box<StringComparator>>,
7679    /// Comparator for the roadmap slug ID.
7680    #[serde(default, skip_serializing_if = "Option::is_none")]
7681    pub slug_id: Option<Box<StringComparator>>,
7682    /// Filters that the roadmap creator must satisfy.
7683    #[serde(default, skip_serializing_if = "Option::is_none")]
7684    pub creator: Option<Box<UserFilter>>,
7685    /// Compound filters, all of which need to be matched by the roadmap.
7686    #[serde(default, skip_serializing_if = "Option::is_none")]
7687    pub and: Option<Vec<Box<RoadmapFilter>>>,
7688    /// Compound filters, one of which need to be matched by the roadmap.
7689    #[serde(default, skip_serializing_if = "Option::is_none")]
7690    pub or: Option<Vec<Box<RoadmapFilter>>>,
7691}
7692#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7693#[serde(rename_all = "camelCase")]
7694pub struct RoadmapToProjectCreateInput {
7695    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7696    #[serde(default, skip_serializing_if = "Option::is_none")]
7697    pub id: Option<String>,
7698    /// The identifier of the project.
7699    #[serde(default, skip_serializing_if = "Option::is_none")]
7700    pub project_id: Option<String>,
7701    /// The identifier of the roadmap.
7702    #[serde(default, skip_serializing_if = "Option::is_none")]
7703    pub roadmap_id: Option<String>,
7704    /// The sort order for the project within its organization.
7705    #[serde(default, skip_serializing_if = "Option::is_none")]
7706    pub sort_order: Option<f64>,
7707}
7708#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7709#[serde(rename_all = "camelCase")]
7710pub struct RoadmapToProjectUpdateInput {
7711    /// The sort order for the project within its organization.
7712    #[serde(default, skip_serializing_if = "Option::is_none")]
7713    pub sort_order: Option<f64>,
7714}
7715#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7716#[serde(rename_all = "camelCase")]
7717pub struct RoadmapUpdateInput {
7718    /// The name of the roadmap.
7719    #[serde(default, skip_serializing_if = "Option::is_none")]
7720    pub name: Option<String>,
7721    /// The description of the roadmap.
7722    #[serde(default, skip_serializing_if = "Option::is_none")]
7723    pub description: Option<String>,
7724    /// The owner of the roadmap.
7725    #[serde(default, skip_serializing_if = "Option::is_none")]
7726    pub owner_id: Option<String>,
7727    /// The sort order of the roadmap within the organization.
7728    #[serde(default, skip_serializing_if = "Option::is_none")]
7729    pub sort_order: Option<f64>,
7730    /// The roadmap's color.
7731    #[serde(default, skip_serializing_if = "Option::is_none")]
7732    pub color: Option<String>,
7733}
7734/// Issue root-issue sorting options.
7735#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7736#[serde(rename_all = "camelCase")]
7737pub struct RootIssueSort {
7738    /// Whether nulls should be sorted first or last
7739    #[serde(default, skip_serializing_if = "Option::is_none")]
7740    pub nulls: Option<PaginationNulls>,
7741    /// The order for the individual sort
7742    #[serde(default, skip_serializing_if = "Option::is_none")]
7743    pub order: Option<PaginationSortOrder>,
7744    /// The sort to apply to the root issues
7745    #[serde(default, skip_serializing_if = "Option::is_none")]
7746    pub sort: Option<Box<IssueSortInput>>,
7747}
7748/// `INTERNAL` Comparator for Salesforce metadata.
7749#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7750#[serde(rename_all = "camelCase")]
7751pub struct SalesforceMetadataIntegrationComparator {
7752    /// Salesforce Case metadata filter
7753    #[serde(default, skip_serializing_if = "Option::is_none")]
7754    pub case_metadata: Option<serde_json::Value>,
7755}
7756#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7757#[serde(rename_all = "camelCase")]
7758pub struct SalesforceSettingsInput {
7759    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
7760    #[serde(default, skip_serializing_if = "Option::is_none")]
7761    pub send_note_on_status_change: Option<bool>,
7762    /// Whether an internal message should be added when someone comments on an issue.
7763    #[serde(default, skip_serializing_if = "Option::is_none")]
7764    pub send_note_on_comment: Option<bool>,
7765    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
7766    #[serde(default, skip_serializing_if = "Option::is_none")]
7767    pub automate_ticket_reopening_on_completion: Option<bool>,
7768    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
7769    #[serde(default, skip_serializing_if = "Option::is_none")]
7770    pub automate_ticket_reopening_on_cancellation: Option<bool>,
7771    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
7772    #[serde(default, skip_serializing_if = "Option::is_none")]
7773    pub automate_ticket_reopening_on_comment: Option<bool>,
7774    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
7775    #[serde(default, skip_serializing_if = "Option::is_none")]
7776    pub disable_customer_requests_auto_creation: Option<bool>,
7777    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
7778    #[serde(default, skip_serializing_if = "Option::is_none")]
7779    pub automate_ticket_reopening_on_project_completion: Option<bool>,
7780    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
7781    #[serde(default, skip_serializing_if = "Option::is_none")]
7782    pub automate_ticket_reopening_on_project_cancellation: Option<bool>,
7783    /// Whether Linear Agent should be enabled for this integration.
7784    #[serde(default, skip_serializing_if = "Option::is_none")]
7785    pub enable_ai_intake: Option<bool>,
7786    /// The Salesforce subdomain.
7787    #[serde(default, skip_serializing_if = "Option::is_none")]
7788    pub subdomain: Option<String>,
7789    /// The Salesforce instance URL.
7790    #[serde(default, skip_serializing_if = "Option::is_none")]
7791    pub url: Option<String>,
7792    /// The Salesforce case status to use to reopen cases.
7793    #[serde(default, skip_serializing_if = "Option::is_none")]
7794    pub reopen_case_status: Option<String>,
7795    /// Whether to restrict visibility of the integration to issues that have been either created from Salesforce or linked to Salesforce.
7796    #[serde(default, skip_serializing_if = "Option::is_none")]
7797    pub restrict_visibility: Option<bool>,
7798    /// The Salesforce team to use when a template doesn't specify a team.
7799    #[serde(default, skip_serializing_if = "Option::is_none")]
7800    pub default_team: Option<String>,
7801}
7802/// Filters for semantic search results.
7803#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7804#[serde(rename_all = "camelCase")]
7805pub struct SemanticSearchFilters {
7806    /// Filters applied to issues.
7807    #[serde(default, skip_serializing_if = "Option::is_none")]
7808    pub issues: Option<Box<IssueFilter>>,
7809    /// Filters applied to projects.
7810    #[serde(default, skip_serializing_if = "Option::is_none")]
7811    pub projects: Option<Box<ProjectFilter>>,
7812    /// Filters applied to initiatives.
7813    #[serde(default, skip_serializing_if = "Option::is_none")]
7814    pub initiatives: Option<Box<InitiativeFilter>>,
7815    /// Filters applied to documents.
7816    #[serde(default, skip_serializing_if = "Option::is_none")]
7817    pub documents: Option<Box<DocumentFilter>>,
7818}
7819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7820#[serde(rename_all = "camelCase")]
7821pub struct SentrySettingsInput {
7822    /// The slug of the Sentry organization being connected.
7823    #[serde(default, skip_serializing_if = "Option::is_none")]
7824    pub organization_slug: Option<String>,
7825    /// The ID of the Sentry organization being connected.
7826    #[serde(default, skip_serializing_if = "Option::is_none")]
7827    pub organization_id: Option<String>,
7828    /// Whether Sentry issues resolving completes Linear issues.
7829    #[serde(default, skip_serializing_if = "Option::is_none")]
7830    pub resolving_completes_issues: Option<bool>,
7831    /// Whether Sentry issues unresolving reopens Linear issues.
7832    #[serde(default, skip_serializing_if = "Option::is_none")]
7833    pub unresolving_reopens_issues: Option<bool>,
7834}
7835/// Customer size sorting options.
7836#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7837#[serde(rename_all = "camelCase")]
7838pub struct SizeSort {
7839    /// Whether nulls should be sorted first or last
7840    #[serde(default, skip_serializing_if = "Option::is_none")]
7841    pub nulls: Option<PaginationNulls>,
7842    /// The order for the individual sort
7843    #[serde(default, skip_serializing_if = "Option::is_none")]
7844    pub order: Option<PaginationSortOrder>,
7845}
7846/// Comparator for sla status.
7847#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7848#[serde(rename_all = "camelCase")]
7849pub struct SlaStatusComparator {
7850    /// Equals constraint.
7851    #[serde(default, skip_serializing_if = "Option::is_none")]
7852    pub eq: Option<SlaStatus>,
7853    /// Not-equals constraint.
7854    #[serde(default, skip_serializing_if = "Option::is_none")]
7855    pub neq: Option<SlaStatus>,
7856    /// In-array constraint.
7857    #[serde(default, skip_serializing_if = "Option::is_none")]
7858    pub r#in: Option<Vec<SlaStatus>>,
7859    /// Not-in-array constraint.
7860    #[serde(default, skip_serializing_if = "Option::is_none")]
7861    pub nin: Option<Vec<SlaStatus>>,
7862    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
7863    #[serde(default, skip_serializing_if = "Option::is_none")]
7864    pub null: Option<bool>,
7865}
7866/// Issue SLA status sorting options.
7867#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7868#[serde(rename_all = "camelCase")]
7869pub struct SlaStatusSort {
7870    /// Whether nulls should be sorted first or last
7871    #[serde(default, skip_serializing_if = "Option::is_none")]
7872    pub nulls: Option<PaginationNulls>,
7873    /// The order for the individual sort
7874    #[serde(default, skip_serializing_if = "Option::is_none")]
7875    pub order: Option<PaginationSortOrder>,
7876}
7877#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7878#[serde(rename_all = "camelCase")]
7879pub struct SlackAsksSettingsInput {
7880    /// Slack workspace name
7881    #[serde(default, skip_serializing_if = "Option::is_none")]
7882    pub team_name: Option<String>,
7883    /// Slack workspace id
7884    #[serde(default, skip_serializing_if = "Option::is_none")]
7885    pub team_id: Option<String>,
7886    /// Enterprise name of the connected Slack enterprise
7887    #[serde(default, skip_serializing_if = "Option::is_none")]
7888    pub enterprise_name: Option<String>,
7889    /// Enterprise id of the connected Slack enterprise
7890    #[serde(default, skip_serializing_if = "Option::is_none")]
7891    pub enterprise_id: Option<String>,
7892    /// Whether to show unfurl previews in Slack
7893    #[serde(default, skip_serializing_if = "Option::is_none")]
7894    pub should_unfurl: Option<bool>,
7895    /// Whether to show unfurls in the default style instead of Work Objects in Slack
7896    #[serde(default, skip_serializing_if = "Option::is_none")]
7897    pub should_use_default_unfurl: Option<bool>,
7898    /// Whether to allow external users to perform actions on unfurls
7899    #[serde(default, skip_serializing_if = "Option::is_none")]
7900    pub external_user_actions: Option<bool>,
7901    /// The mapping of Slack channel ID => Slack channel name for connected channels.
7902    #[serde(default, skip_serializing_if = "Option::is_none")]
7903    pub slack_channel_mapping: Option<Vec<Box<SlackChannelNameMappingInput>>>,
7904    /// The user role type that is allowed to manage Asks settings.
7905    #[serde(default, skip_serializing_if = "Option::is_none")]
7906    pub can_administrate: Option<UserRoleType>,
7907    /// Controls who can see and set Customers when creating Asks in Slack.
7908    #[serde(default, skip_serializing_if = "Option::is_none")]
7909    pub customer_visibility: Option<CustomerVisibilityMode>,
7910    /// Whether Linear Agent should be enabled for this Slack Asks integration.
7911    #[serde(default, skip_serializing_if = "Option::is_none")]
7912    pub enable_agent: Option<bool>,
7913    /// Whether Linear Agent should be given Org-wide access within Slack workflows.
7914    #[serde(default, skip_serializing_if = "Option::is_none")]
7915    pub enable_linear_agent_workflow_access: Option<bool>,
7916}
7917#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7918#[serde(rename_all = "camelCase")]
7919pub struct SlackAsksTeamSettingsInput {
7920    /// The Linear team ID.
7921    #[serde(default, skip_serializing_if = "Option::is_none")]
7922    pub id: Option<String>,
7923    /// Whether the default Asks template is enabled in the given channel for this team.
7924    #[serde(default, skip_serializing_if = "Option::is_none")]
7925    pub has_default_ask: Option<bool>,
7926}
7927#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7928#[serde(rename_all = "camelCase")]
7929pub struct SlackChannelNameMappingInput {
7930    /// The Slack channel ID.
7931    #[serde(default, skip_serializing_if = "Option::is_none")]
7932    pub id: Option<String>,
7933    /// The Slack channel name.
7934    #[serde(default, skip_serializing_if = "Option::is_none")]
7935    pub name: Option<String>,
7936    /// Whether or not the Slack channel is private.
7937    #[serde(default, skip_serializing_if = "Option::is_none")]
7938    pub is_private: Option<bool>,
7939    /// Whether or not the Slack channel is shared with an external org.
7940    #[serde(default, skip_serializing_if = "Option::is_none")]
7941    pub is_shared: Option<bool>,
7942    /// Whether or not the Linear Asks bot has been added to this Slack channel.
7943    #[serde(default, skip_serializing_if = "Option::is_none")]
7944    pub bot_added: Option<bool>,
7945    /// Which teams are connected to the channel and settings for those teams.
7946    #[serde(default, skip_serializing_if = "Option::is_none")]
7947    pub teams: Option<Vec<Box<SlackAsksTeamSettingsInput>>>,
7948    /// Whether or not top-level messages in this channel should automatically create Asks.
7949    #[serde(default, skip_serializing_if = "Option::is_none")]
7950    pub auto_create_on_message: Option<bool>,
7951    /// Whether or not using the :ticket: emoji in this channel should automatically create Asks.
7952    #[serde(default, skip_serializing_if = "Option::is_none")]
7953    pub auto_create_on_emoji: Option<bool>,
7954    /// Whether or not @-mentioning the bot should automatically create an Ask with the message.
7955    #[serde(default, skip_serializing_if = "Option::is_none")]
7956    pub auto_create_on_bot_mention: Option<bool>,
7957    /// The optional template ID to use for Asks auto-created in this channel. If not set, auto-created Asks won't use any template.
7958    #[serde(default, skip_serializing_if = "Option::is_none")]
7959    pub auto_create_template_id: Option<String>,
7960    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is canceled.
7961    #[serde(default, skip_serializing_if = "Option::is_none")]
7962    pub post_cancellation_updates: Option<bool>,
7963    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is completed.
7964    #[serde(default, skip_serializing_if = "Option::is_none")]
7965    pub post_completion_updates: Option<bool>,
7966    /// Whether or not synced Slack threads should be updated with a message when their Ask is accepted from triage.
7967    #[serde(default, skip_serializing_if = "Option::is_none")]
7968    pub post_accepted_from_triage_updates: Option<bool>,
7969    /// Whether or not to use AI to generate titles for Asks created in this channel.
7970    #[serde(default, skip_serializing_if = "Option::is_none")]
7971    pub ai_titles: Option<bool>,
7972}
7973#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7974#[serde(rename_all = "camelCase")]
7975pub struct SlackPostSettingsInput {
7976    #[serde(default, skip_serializing_if = "Option::is_none")]
7977    pub channel: Option<String>,
7978    #[serde(default, skip_serializing_if = "Option::is_none")]
7979    pub channel_id: Option<String>,
7980    #[serde(default, skip_serializing_if = "Option::is_none")]
7981    pub configuration_url: Option<String>,
7982    /// Slack workspace id
7983    #[serde(default, skip_serializing_if = "Option::is_none")]
7984    pub team_id: Option<String>,
7985    #[serde(default, skip_serializing_if = "Option::is_none")]
7986    pub channel_type: Option<SlackChannelType>,
7987}
7988#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7989#[serde(rename_all = "camelCase")]
7990pub struct SlackSettingsInput {
7991    /// Slack workspace name
7992    #[serde(default, skip_serializing_if = "Option::is_none")]
7993    pub team_name: Option<String>,
7994    /// Slack workspace id
7995    #[serde(default, skip_serializing_if = "Option::is_none")]
7996    pub team_id: Option<String>,
7997    /// Enterprise name of the connected Slack enterprise
7998    #[serde(default, skip_serializing_if = "Option::is_none")]
7999    pub enterprise_name: Option<String>,
8000    /// Enterprise id of the connected Slack enterprise
8001    #[serde(default, skip_serializing_if = "Option::is_none")]
8002    pub enterprise_id: Option<String>,
8003    /// Whether to show unfurl previews in Slack
8004    #[serde(default, skip_serializing_if = "Option::is_none")]
8005    pub should_unfurl: Option<bool>,
8006    /// Whether to show unfurls in the default style instead of Work Objects in Slack
8007    #[serde(default, skip_serializing_if = "Option::is_none")]
8008    pub should_use_default_unfurl: Option<bool>,
8009    /// Whether to allow external users to perform actions on unfurls
8010    #[serde(default, skip_serializing_if = "Option::is_none")]
8011    pub external_user_actions: Option<bool>,
8012    /// Whether Linear should automatically respond with issue unfurls when an issue identifier is mentioned in a Slack message.
8013    #[serde(default, skip_serializing_if = "Option::is_none")]
8014    pub link_on_issue_id_mention: Option<bool>,
8015    /// Whether Linear Agent should be enabled for this Slack integration.
8016    #[serde(default, skip_serializing_if = "Option::is_none")]
8017    pub enable_agent: Option<bool>,
8018    /// Whether Linear Agent should be given Org-wide access within Slack workflows.
8019    #[serde(default, skip_serializing_if = "Option::is_none")]
8020    pub enable_linear_agent_workflow_access: Option<bool>,
8021}
8022/// Comparator for issue source type.
8023#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8024#[serde(rename_all = "camelCase")]
8025pub struct SourceMetadataComparator {
8026    /// Equals constraint.
8027    #[serde(default, skip_serializing_if = "Option::is_none")]
8028    pub eq: Option<String>,
8029    /// Not-equals constraint.
8030    #[serde(default, skip_serializing_if = "Option::is_none")]
8031    pub neq: Option<String>,
8032    /// In-array constraint.
8033    #[serde(default, skip_serializing_if = "Option::is_none")]
8034    pub r#in: Option<Vec<String>>,
8035    /// Not-in-array constraint.
8036    #[serde(default, skip_serializing_if = "Option::is_none")]
8037    pub nin: Option<Vec<String>>,
8038    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
8039    #[serde(default, skip_serializing_if = "Option::is_none")]
8040    pub null: Option<bool>,
8041    /// Comparator for the sub type.
8042    #[serde(default, skip_serializing_if = "Option::is_none")]
8043    pub sub_type: Option<Box<SubTypeComparator>>,
8044    /// `INTERNAL` Comparator for the salesforce metadata.
8045    #[serde(default, skip_serializing_if = "Option::is_none")]
8046    pub salesforce_metadata: Option<Box<SalesforceMetadataIntegrationComparator>>,
8047}
8048/// Comparator for `sourceType` field.
8049#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8050#[serde(rename_all = "camelCase")]
8051pub struct SourceTypeComparator {
8052    /// Equals constraint.
8053    #[serde(default, skip_serializing_if = "Option::is_none")]
8054    pub eq: Option<String>,
8055    /// Not-equals constraint.
8056    #[serde(default, skip_serializing_if = "Option::is_none")]
8057    pub neq: Option<String>,
8058    /// In-array constraint.
8059    #[serde(default, skip_serializing_if = "Option::is_none")]
8060    pub r#in: Option<Vec<String>>,
8061    /// Not-in-array constraint.
8062    #[serde(default, skip_serializing_if = "Option::is_none")]
8063    pub nin: Option<Vec<String>>,
8064    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8065    #[serde(default, skip_serializing_if = "Option::is_none")]
8066    pub eq_ignore_case: Option<String>,
8067    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8068    #[serde(default, skip_serializing_if = "Option::is_none")]
8069    pub neq_ignore_case: Option<String>,
8070    /// Starts with constraint. Matches any values that start with the given string.
8071    #[serde(default, skip_serializing_if = "Option::is_none")]
8072    pub starts_with: Option<String>,
8073    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8074    #[serde(default, skip_serializing_if = "Option::is_none")]
8075    pub starts_with_ignore_case: Option<String>,
8076    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8077    #[serde(default, skip_serializing_if = "Option::is_none")]
8078    pub not_starts_with: Option<String>,
8079    /// Ends with constraint. Matches any values that end with the given string.
8080    #[serde(default, skip_serializing_if = "Option::is_none")]
8081    pub ends_with: Option<String>,
8082    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8083    #[serde(default, skip_serializing_if = "Option::is_none")]
8084    pub not_ends_with: Option<String>,
8085    /// Contains constraint. Matches any values that contain the given string.
8086    #[serde(default, skip_serializing_if = "Option::is_none")]
8087    pub contains: Option<String>,
8088    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8089    #[serde(default, skip_serializing_if = "Option::is_none")]
8090    pub contains_ignore_case: Option<String>,
8091    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8092    #[serde(default, skip_serializing_if = "Option::is_none")]
8093    pub not_contains: Option<String>,
8094    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8095    #[serde(default, skip_serializing_if = "Option::is_none")]
8096    pub not_contains_ignore_case: Option<String>,
8097    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8098    #[serde(default, skip_serializing_if = "Option::is_none")]
8099    pub contains_ignore_case_and_accent: Option<String>,
8100}
8101/// Project start date sorting options.
8102#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8103#[serde(rename_all = "camelCase")]
8104pub struct StartDateSort {
8105    /// Whether nulls should be sorted first or last
8106    #[serde(default, skip_serializing_if = "Option::is_none")]
8107    pub nulls: Option<PaginationNulls>,
8108    /// The order for the individual sort
8109    #[serde(default, skip_serializing_if = "Option::is_none")]
8110    pub order: Option<PaginationSortOrder>,
8111}
8112/// Comparator for strings.
8113#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8114#[serde(rename_all = "camelCase")]
8115pub struct StringArrayComparator {
8116    /// Length of the array. Matches any values that have the given length.
8117    #[serde(default, skip_serializing_if = "Option::is_none")]
8118    pub length: Option<Box<NumberComparator>>,
8119    /// Compound filters, all of which need to be matched.
8120    #[serde(default, skip_serializing_if = "Option::is_none")]
8121    pub every: Option<Box<StringItemComparator>>,
8122    /// Compound filters, one of which needs to be matched.
8123    #[serde(default, skip_serializing_if = "Option::is_none")]
8124    pub some: Option<Box<StringItemComparator>>,
8125}
8126/// Comparator for strings.
8127#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8128#[serde(rename_all = "camelCase")]
8129pub struct StringComparator {
8130    /// Equals constraint.
8131    #[serde(default, skip_serializing_if = "Option::is_none")]
8132    pub eq: Option<String>,
8133    /// Not-equals constraint.
8134    #[serde(default, skip_serializing_if = "Option::is_none")]
8135    pub neq: Option<String>,
8136    /// In-array constraint.
8137    #[serde(default, skip_serializing_if = "Option::is_none")]
8138    pub r#in: Option<Vec<String>>,
8139    /// Not-in-array constraint.
8140    #[serde(default, skip_serializing_if = "Option::is_none")]
8141    pub nin: Option<Vec<String>>,
8142    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8143    #[serde(default, skip_serializing_if = "Option::is_none")]
8144    pub eq_ignore_case: Option<String>,
8145    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8146    #[serde(default, skip_serializing_if = "Option::is_none")]
8147    pub neq_ignore_case: Option<String>,
8148    /// Starts with constraint. Matches any values that start with the given string.
8149    #[serde(default, skip_serializing_if = "Option::is_none")]
8150    pub starts_with: Option<String>,
8151    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8152    #[serde(default, skip_serializing_if = "Option::is_none")]
8153    pub starts_with_ignore_case: Option<String>,
8154    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8155    #[serde(default, skip_serializing_if = "Option::is_none")]
8156    pub not_starts_with: Option<String>,
8157    /// Ends with constraint. Matches any values that end with the given string.
8158    #[serde(default, skip_serializing_if = "Option::is_none")]
8159    pub ends_with: Option<String>,
8160    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8161    #[serde(default, skip_serializing_if = "Option::is_none")]
8162    pub not_ends_with: Option<String>,
8163    /// Contains constraint. Matches any values that contain the given string.
8164    #[serde(default, skip_serializing_if = "Option::is_none")]
8165    pub contains: Option<String>,
8166    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8167    #[serde(default, skip_serializing_if = "Option::is_none")]
8168    pub contains_ignore_case: Option<String>,
8169    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8170    #[serde(default, skip_serializing_if = "Option::is_none")]
8171    pub not_contains: Option<String>,
8172    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8173    #[serde(default, skip_serializing_if = "Option::is_none")]
8174    pub not_contains_ignore_case: Option<String>,
8175    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8176    #[serde(default, skip_serializing_if = "Option::is_none")]
8177    pub contains_ignore_case_and_accent: Option<String>,
8178}
8179/// Comparator for strings in arrays.
8180#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8181#[serde(rename_all = "camelCase")]
8182pub struct StringItemComparator {
8183    /// Equals constraint.
8184    #[serde(default, skip_serializing_if = "Option::is_none")]
8185    pub eq: Option<String>,
8186    /// Not-equals constraint.
8187    #[serde(default, skip_serializing_if = "Option::is_none")]
8188    pub neq: Option<String>,
8189    /// In-array constraint.
8190    #[serde(default, skip_serializing_if = "Option::is_none")]
8191    pub r#in: Option<Vec<String>>,
8192    /// Not-in-array constraint.
8193    #[serde(default, skip_serializing_if = "Option::is_none")]
8194    pub nin: Option<Vec<String>>,
8195    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8196    #[serde(default, skip_serializing_if = "Option::is_none")]
8197    pub eq_ignore_case: Option<String>,
8198    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8199    #[serde(default, skip_serializing_if = "Option::is_none")]
8200    pub neq_ignore_case: Option<String>,
8201    /// Starts with constraint. Matches any values that start with the given string.
8202    #[serde(default, skip_serializing_if = "Option::is_none")]
8203    pub starts_with: Option<String>,
8204    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8205    #[serde(default, skip_serializing_if = "Option::is_none")]
8206    pub starts_with_ignore_case: Option<String>,
8207    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8208    #[serde(default, skip_serializing_if = "Option::is_none")]
8209    pub not_starts_with: Option<String>,
8210    /// Ends with constraint. Matches any values that end with the given string.
8211    #[serde(default, skip_serializing_if = "Option::is_none")]
8212    pub ends_with: Option<String>,
8213    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8214    #[serde(default, skip_serializing_if = "Option::is_none")]
8215    pub not_ends_with: Option<String>,
8216    /// Contains constraint. Matches any values that contain the given string.
8217    #[serde(default, skip_serializing_if = "Option::is_none")]
8218    pub contains: Option<String>,
8219    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8220    #[serde(default, skip_serializing_if = "Option::is_none")]
8221    pub contains_ignore_case: Option<String>,
8222    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8223    #[serde(default, skip_serializing_if = "Option::is_none")]
8224    pub not_contains: Option<String>,
8225    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8226    #[serde(default, skip_serializing_if = "Option::is_none")]
8227    pub not_contains_ignore_case: Option<String>,
8228    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8229    #[serde(default, skip_serializing_if = "Option::is_none")]
8230    pub contains_ignore_case_and_accent: Option<String>,
8231}
8232/// Comparator for source type.
8233#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8234#[serde(rename_all = "camelCase")]
8235pub struct SubTypeComparator {
8236    /// Equals constraint.
8237    #[serde(default, skip_serializing_if = "Option::is_none")]
8238    pub eq: Option<String>,
8239    /// Not-equals constraint.
8240    #[serde(default, skip_serializing_if = "Option::is_none")]
8241    pub neq: Option<String>,
8242    /// In-array constraint.
8243    #[serde(default, skip_serializing_if = "Option::is_none")]
8244    pub r#in: Option<Vec<String>>,
8245    /// Not-in-array constraint.
8246    #[serde(default, skip_serializing_if = "Option::is_none")]
8247    pub nin: Option<Vec<String>>,
8248    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
8249    #[serde(default, skip_serializing_if = "Option::is_none")]
8250    pub null: Option<bool>,
8251}
8252/// Project target date sorting options.
8253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8254#[serde(rename_all = "camelCase")]
8255pub struct TargetDateSort {
8256    /// Whether nulls should be sorted first or last
8257    #[serde(default, skip_serializing_if = "Option::is_none")]
8258    pub nulls: Option<PaginationNulls>,
8259    /// The order for the individual sort
8260    #[serde(default, skip_serializing_if = "Option::is_none")]
8261    pub order: Option<PaginationSortOrder>,
8262}
8263/// Team collection filtering options.
8264#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8265#[serde(rename_all = "camelCase")]
8266pub struct TeamCollectionFilter {
8267    /// Comparator for the identifier.
8268    #[serde(default, skip_serializing_if = "Option::is_none")]
8269    pub id: Option<Box<IDComparator>>,
8270    /// Comparator for the created at date.
8271    #[serde(default, skip_serializing_if = "Option::is_none")]
8272    pub created_at: Option<Box<DateComparator>>,
8273    /// Comparator for the updated at date.
8274    #[serde(default, skip_serializing_if = "Option::is_none")]
8275    pub updated_at: Option<Box<DateComparator>>,
8276    /// Compound filters, all of which need to be matched by the team.
8277    #[serde(default, skip_serializing_if = "Option::is_none")]
8278    pub and: Option<Vec<Box<TeamCollectionFilter>>>,
8279    /// Compound filters, one of which need to be matched by the team.
8280    #[serde(default, skip_serializing_if = "Option::is_none")]
8281    pub or: Option<Vec<Box<TeamCollectionFilter>>>,
8282    /// Filters that needs to be matched by some teams.
8283    #[serde(default, skip_serializing_if = "Option::is_none")]
8284    pub some: Option<Box<TeamFilter>>,
8285    /// Filters that needs to be matched by all teams.
8286    #[serde(default, skip_serializing_if = "Option::is_none")]
8287    pub every: Option<Box<TeamFilter>>,
8288    /// Comparator for the collection length.
8289    #[serde(default, skip_serializing_if = "Option::is_none")]
8290    pub length: Option<Box<NumberComparator>>,
8291    /// Filters that the teams parent must satisfy.
8292    #[serde(default, skip_serializing_if = "Option::is_none")]
8293    pub parent: Option<Box<NullableTeamFilter>>,
8294}
8295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8296#[serde(rename_all = "camelCase")]
8297pub struct TeamCreateInput {
8298    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8299    #[serde(default, skip_serializing_if = "Option::is_none")]
8300    pub id: Option<String>,
8301    /// The name of the team.
8302    #[serde(default, skip_serializing_if = "Option::is_none")]
8303    pub name: Option<String>,
8304    /// The description of the team.
8305    #[serde(default, skip_serializing_if = "Option::is_none")]
8306    pub description: Option<String>,
8307    /// The key of the team. If not given, the key will be generated based on the name of the team.
8308    #[serde(default, skip_serializing_if = "Option::is_none")]
8309    pub key: Option<String>,
8310    /// The icon of the team.
8311    #[serde(default, skip_serializing_if = "Option::is_none")]
8312    pub icon: Option<String>,
8313    /// The color of the team.
8314    #[serde(default, skip_serializing_if = "Option::is_none")]
8315    pub color: Option<String>,
8316    /// Whether the team uses cycles.
8317    #[serde(default, skip_serializing_if = "Option::is_none")]
8318    pub cycles_enabled: Option<bool>,
8319    /// The day of the week that a new cycle starts.
8320    #[serde(default, skip_serializing_if = "Option::is_none")]
8321    pub cycle_start_day: Option<f64>,
8322    /// The duration of each cycle in weeks.
8323    #[serde(default, skip_serializing_if = "Option::is_none")]
8324    pub cycle_duration: Option<i64>,
8325    /// The cooldown time after each cycle in weeks.
8326    #[serde(default, skip_serializing_if = "Option::is_none")]
8327    pub cycle_cooldown_time: Option<i64>,
8328    /// Auto assign started issues to current active cycle setting.
8329    #[serde(default, skip_serializing_if = "Option::is_none")]
8330    pub cycle_issue_auto_assign_started: Option<bool>,
8331    /// Auto assign completed issues to current active cycle setting.
8332    #[serde(default, skip_serializing_if = "Option::is_none")]
8333    pub cycle_issue_auto_assign_completed: Option<bool>,
8334    /// Only allow issues issues with cycles in Active Issues.
8335    #[serde(default, skip_serializing_if = "Option::is_none")]
8336    pub cycle_lock_to_active: Option<bool>,
8337    /// How many upcoming cycles to create.
8338    #[serde(default, skip_serializing_if = "Option::is_none")]
8339    pub upcoming_cycle_count: Option<f64>,
8340    /// Whether triage mode is enabled for the team.
8341    #[serde(default, skip_serializing_if = "Option::is_none")]
8342    pub triage_enabled: Option<bool>,
8343    /// Whether an issue needs to have a priority set before leaving triage.
8344    #[serde(default, skip_serializing_if = "Option::is_none")]
8345    pub require_priority_to_leave_triage: Option<bool>,
8346    /// The timezone of the team.
8347    #[serde(default, skip_serializing_if = "Option::is_none")]
8348    pub timezone: Option<String>,
8349    /// Whether the team should inherit estimation settings from its parent. Only applies to sub-teams.
8350    #[serde(default, skip_serializing_if = "Option::is_none")]
8351    pub inherit_issue_estimation: Option<bool>,
8352    /// `Internal` Whether the team should inherit workflow statuses from its parent.
8353    #[serde(default, skip_serializing_if = "Option::is_none")]
8354    pub inherit_workflow_statuses: Option<bool>,
8355    /// The issue estimation type to use. Must be one of "notUsed", "exponential", "fibonacci", "linear", "tShirt".
8356    #[serde(default, skip_serializing_if = "Option::is_none")]
8357    pub issue_estimation_type: Option<String>,
8358    /// Whether to allow zeros in issues estimates.
8359    #[serde(default, skip_serializing_if = "Option::is_none")]
8360    pub issue_estimation_allow_zero: Option<bool>,
8361    /// Whether to move issues to bottom of the column when changing state.
8362    #[serde(default, skip_serializing_if = "Option::is_none")]
8363    pub set_issue_sort_order_on_state_change: Option<String>,
8364    /// Whether to add additional points to the estimate scale.
8365    #[serde(default, skip_serializing_if = "Option::is_none")]
8366    pub issue_estimation_extended: Option<bool>,
8367    /// What to use as an default estimate for unestimated issues.
8368    #[serde(default, skip_serializing_if = "Option::is_none")]
8369    pub default_issue_estimate: Option<f64>,
8370    /// Whether to group recent issue history entries.
8371    #[serde(default, skip_serializing_if = "Option::is_none")]
8372    pub group_issue_history: Option<bool>,
8373    /// The identifier of the default template for members of this team.
8374    #[serde(default, skip_serializing_if = "Option::is_none")]
8375    pub default_template_for_members_id: Option<String>,
8376    /// The identifier of the default template for non-members of this team.
8377    #[serde(default, skip_serializing_if = "Option::is_none")]
8378    pub default_template_for_non_members_id: Option<String>,
8379    /// The identifier of the default project template of this team.
8380    #[serde(default, skip_serializing_if = "Option::is_none")]
8381    pub default_project_template_id: Option<String>,
8382    /// Internal. Whether the team is private or not.
8383    #[serde(default, skip_serializing_if = "Option::is_none")]
8384    pub private: Option<bool>,
8385    /// Period after which issues are automatically closed, in months.
8386    #[serde(default, skip_serializing_if = "Option::is_none")]
8387    pub auto_close_period: Option<f64>,
8388    /// The canceled workflow state which auto closed issues will be set to.
8389    #[serde(default, skip_serializing_if = "Option::is_none")]
8390    pub auto_close_state_id: Option<String>,
8391    /// Period after which closed and completed issues are automatically archived, in months. 0 means disabled.
8392    #[serde(default, skip_serializing_if = "Option::is_none")]
8393    pub auto_archive_period: Option<f64>,
8394    /// The workflow state into which issues are moved when they are marked as a duplicate of another issue.
8395    #[serde(default, skip_serializing_if = "Option::is_none")]
8396    pub marked_as_duplicate_workflow_state_id: Option<String>,
8397    /// The parent team ID.
8398    #[serde(default, skip_serializing_if = "Option::is_none")]
8399    pub parent_id: Option<String>,
8400    /// `Internal` Whether the team should inherit its product intelligence scope from its parent. Only applies to sub-teams.
8401    #[serde(default, skip_serializing_if = "Option::is_none")]
8402    pub inherit_product_intelligence_scope: Option<bool>,
8403    /// `Internal` The scope of product intelligence suggestion data for the team.
8404    #[serde(default, skip_serializing_if = "Option::is_none")]
8405    pub product_intelligence_scope: Option<ProductIntelligenceScope>,
8406}
8407/// Team filtering options.
8408#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8409#[serde(rename_all = "camelCase")]
8410pub struct TeamFilter {
8411    /// Comparator for the identifier.
8412    #[serde(default, skip_serializing_if = "Option::is_none")]
8413    pub id: Option<Box<IDComparator>>,
8414    /// Comparator for the created at date.
8415    #[serde(default, skip_serializing_if = "Option::is_none")]
8416    pub created_at: Option<Box<DateComparator>>,
8417    /// Comparator for the updated at date.
8418    #[serde(default, skip_serializing_if = "Option::is_none")]
8419    pub updated_at: Option<Box<DateComparator>>,
8420    /// Comparator for the team name.
8421    #[serde(default, skip_serializing_if = "Option::is_none")]
8422    pub name: Option<Box<StringComparator>>,
8423    /// Comparator for the team key.
8424    #[serde(default, skip_serializing_if = "Option::is_none")]
8425    pub key: Option<Box<StringComparator>>,
8426    /// Comparator for the team description.
8427    #[serde(default, skip_serializing_if = "Option::is_none")]
8428    pub description: Option<Box<NullableStringComparator>>,
8429    /// Comparator for the team privacy.
8430    #[serde(default, skip_serializing_if = "Option::is_none")]
8431    pub private: Option<Box<BooleanComparator>>,
8432    /// Filters that the teams issues must satisfy.
8433    #[serde(default, skip_serializing_if = "Option::is_none")]
8434    pub issues: Option<Box<IssueCollectionFilter>>,
8435    /// Filters that the teams parent must satisfy.
8436    #[serde(default, skip_serializing_if = "Option::is_none")]
8437    pub parent: Option<Box<NullableTeamFilter>>,
8438    /// Compound filters, all of which need to be matched by the team.
8439    #[serde(default, skip_serializing_if = "Option::is_none")]
8440    pub and: Option<Vec<Box<TeamFilter>>>,
8441    /// Compound filters, one of which need to be matched by the team.
8442    #[serde(default, skip_serializing_if = "Option::is_none")]
8443    pub or: Option<Vec<Box<TeamFilter>>>,
8444}
8445#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8446#[serde(rename_all = "camelCase")]
8447pub struct TeamMembershipCreateInput {
8448    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8449    #[serde(default, skip_serializing_if = "Option::is_none")]
8450    pub id: Option<String>,
8451    /// The identifier of the user associated with the membership.
8452    #[serde(default, skip_serializing_if = "Option::is_none")]
8453    pub user_id: Option<String>,
8454    /// The identifier of the team associated with the membership.
8455    #[serde(default, skip_serializing_if = "Option::is_none")]
8456    pub team_id: Option<String>,
8457    /// Internal. Whether the user is the owner of the team.
8458    #[serde(default, skip_serializing_if = "Option::is_none")]
8459    pub owner: Option<bool>,
8460    /// The position of the item in the users list.
8461    #[serde(default, skip_serializing_if = "Option::is_none")]
8462    pub sort_order: Option<f64>,
8463}
8464#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8465#[serde(rename_all = "camelCase")]
8466pub struct TeamMembershipUpdateInput {
8467    /// Internal. Whether the user is the owner of the team.
8468    #[serde(default, skip_serializing_if = "Option::is_none")]
8469    pub owner: Option<bool>,
8470    /// The position of the item in the users list.
8471    #[serde(default, skip_serializing_if = "Option::is_none")]
8472    pub sort_order: Option<f64>,
8473}
8474#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8475#[serde(rename_all = "camelCase")]
8476pub struct TeamSecuritySettingsInput {
8477    /// The minimum team role required to manage labels in the team.
8478    #[serde(default, skip_serializing_if = "Option::is_none")]
8479    pub label_management: Option<TeamRoleType>,
8480    /// The minimum team role required to manage full workspace members (non-guests) in the team.
8481    #[serde(default, skip_serializing_if = "Option::is_none")]
8482    pub member_management: Option<TeamRoleType>,
8483    /// The minimum team role required to manage team settings.
8484    #[serde(default, skip_serializing_if = "Option::is_none")]
8485    pub team_management: Option<TeamRoleType>,
8486    /// The minimum team role required to manage templates in the team.
8487    #[serde(default, skip_serializing_if = "Option::is_none")]
8488    pub template_management: Option<TeamRoleType>,
8489}
8490/// Issue team sorting options.
8491#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8492#[serde(rename_all = "camelCase")]
8493pub struct TeamSort {
8494    /// Whether nulls should be sorted first or last
8495    #[serde(default, skip_serializing_if = "Option::is_none")]
8496    pub nulls: Option<PaginationNulls>,
8497    /// The order for the individual sort
8498    #[serde(default, skip_serializing_if = "Option::is_none")]
8499    pub order: Option<PaginationSortOrder>,
8500}
8501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8502#[serde(rename_all = "camelCase")]
8503pub struct TeamUpdateInput {
8504    /// The name of the team.
8505    #[serde(default, skip_serializing_if = "Option::is_none")]
8506    pub name: Option<String>,
8507    /// The description of the team.
8508    #[serde(default, skip_serializing_if = "Option::is_none")]
8509    pub description: Option<String>,
8510    /// The key of the team.
8511    #[serde(default, skip_serializing_if = "Option::is_none")]
8512    pub key: Option<String>,
8513    /// The icon of the team.
8514    #[serde(default, skip_serializing_if = "Option::is_none")]
8515    pub icon: Option<String>,
8516    /// The color of the team.
8517    #[serde(default, skip_serializing_if = "Option::is_none")]
8518    pub color: Option<String>,
8519    /// Whether the team uses cycles.
8520    #[serde(default, skip_serializing_if = "Option::is_none")]
8521    pub cycles_enabled: Option<bool>,
8522    /// The day of the week that a new cycle starts.
8523    #[serde(default, skip_serializing_if = "Option::is_none")]
8524    pub cycle_start_day: Option<f64>,
8525    /// The duration of each cycle in weeks.
8526    #[serde(default, skip_serializing_if = "Option::is_none")]
8527    pub cycle_duration: Option<i64>,
8528    /// The cooldown time after each cycle in weeks.
8529    #[serde(default, skip_serializing_if = "Option::is_none")]
8530    pub cycle_cooldown_time: Option<i64>,
8531    /// Auto assign started issues to current active cycle setting.
8532    #[serde(default, skip_serializing_if = "Option::is_none")]
8533    pub cycle_issue_auto_assign_started: Option<bool>,
8534    /// Auto assign completed issues to current active cycle setting.
8535    #[serde(default, skip_serializing_if = "Option::is_none")]
8536    pub cycle_issue_auto_assign_completed: Option<bool>,
8537    /// Only allow issues with cycles in Active Issues.
8538    #[serde(default, skip_serializing_if = "Option::is_none")]
8539    pub cycle_lock_to_active: Option<bool>,
8540    /// The date to begin cycles on.
8541    #[serde(default, skip_serializing_if = "Option::is_none")]
8542    pub cycle_enabled_start_date: Option<chrono::DateTime<chrono::Utc>>,
8543    /// How many upcoming cycles to create.
8544    #[serde(default, skip_serializing_if = "Option::is_none")]
8545    pub upcoming_cycle_count: Option<f64>,
8546    /// The timezone of the team.
8547    #[serde(default, skip_serializing_if = "Option::is_none")]
8548    pub timezone: Option<String>,
8549    /// Whether the team should inherit estimation settings from its parent. Only applies to sub-teams.
8550    #[serde(default, skip_serializing_if = "Option::is_none")]
8551    pub inherit_issue_estimation: Option<bool>,
8552    /// The issue estimation type to use. Must be one of "notUsed", "exponential", "fibonacci", "linear", "tShirt".
8553    #[serde(default, skip_serializing_if = "Option::is_none")]
8554    pub issue_estimation_type: Option<String>,
8555    /// Whether to allow zeros in issues estimates.
8556    #[serde(default, skip_serializing_if = "Option::is_none")]
8557    pub issue_estimation_allow_zero: Option<bool>,
8558    /// Whether to move issues to bottom of the column when changing state.
8559    #[serde(default, skip_serializing_if = "Option::is_none")]
8560    pub set_issue_sort_order_on_state_change: Option<String>,
8561    /// Whether to add additional points to the estimate scale.
8562    #[serde(default, skip_serializing_if = "Option::is_none")]
8563    pub issue_estimation_extended: Option<bool>,
8564    /// What to use as an default estimate for unestimated issues.
8565    #[serde(default, skip_serializing_if = "Option::is_none")]
8566    pub default_issue_estimate: Option<f64>,
8567    /// Whether to send new issue notifications to Slack.
8568    #[serde(default, skip_serializing_if = "Option::is_none")]
8569    pub slack_new_issue: Option<bool>,
8570    /// Whether to send new issue comment notifications to Slack.
8571    #[serde(default, skip_serializing_if = "Option::is_none")]
8572    pub slack_issue_comments: Option<bool>,
8573    /// Whether to send issue status update notifications to Slack.
8574    #[serde(default, skip_serializing_if = "Option::is_none")]
8575    pub slack_issue_statuses: Option<bool>,
8576    /// Whether to group recent issue history entries.
8577    #[serde(default, skip_serializing_if = "Option::is_none")]
8578    pub group_issue_history: Option<bool>,
8579    /// Whether to enable resolved thread AI summaries.
8580    #[serde(default, skip_serializing_if = "Option::is_none")]
8581    pub ai_thread_summaries_enabled: Option<bool>,
8582    /// Whether to enable AI discussion summaries for issues.
8583    #[serde(default, skip_serializing_if = "Option::is_none")]
8584    pub ai_discussion_summaries_enabled: Option<bool>,
8585    /// The identifier of the default template for members of this team.
8586    #[serde(default, skip_serializing_if = "Option::is_none")]
8587    pub default_template_for_members_id: Option<String>,
8588    /// The identifier of the default template for non-members of this team.
8589    #[serde(default, skip_serializing_if = "Option::is_none")]
8590    pub default_template_for_non_members_id: Option<String>,
8591    /// The identifier of the default project template of this team.
8592    #[serde(default, skip_serializing_if = "Option::is_none")]
8593    pub default_project_template_id: Option<String>,
8594    /// Whether the team is private or not.
8595    #[serde(default, skip_serializing_if = "Option::is_none")]
8596    pub private: Option<bool>,
8597    /// Whether triage mode is enabled for the team.
8598    #[serde(default, skip_serializing_if = "Option::is_none")]
8599    pub triage_enabled: Option<bool>,
8600    /// Whether an issue needs to have a priority set before leaving triage.
8601    #[serde(default, skip_serializing_if = "Option::is_none")]
8602    pub require_priority_to_leave_triage: Option<bool>,
8603    /// Default status for newly created issues.
8604    #[serde(default, skip_serializing_if = "Option::is_none")]
8605    pub default_issue_state_id: Option<String>,
8606    /// Period after which issues are automatically closed, in months.
8607    #[serde(default, skip_serializing_if = "Option::is_none")]
8608    pub auto_close_period: Option<f64>,
8609    /// The canceled workflow state which auto closed issues will be set to.
8610    #[serde(default, skip_serializing_if = "Option::is_none")]
8611    pub auto_close_state_id: Option<String>,
8612    /// Whether to automatically close a parent issue in this team if all its sub-issues are closed.
8613    #[serde(default, skip_serializing_if = "Option::is_none")]
8614    pub auto_close_parent_issues: Option<bool>,
8615    /// Whether to automatically close all sub-issues when a parent issue in this team is closed.
8616    #[serde(default, skip_serializing_if = "Option::is_none")]
8617    pub auto_close_child_issues: Option<bool>,
8618    /// Period after which closed and completed issues are automatically archived, in months.
8619    #[serde(default, skip_serializing_if = "Option::is_none")]
8620    pub auto_archive_period: Option<f64>,
8621    /// The workflow state into which issues are moved when they are marked as a duplicate of another issue.
8622    #[serde(default, skip_serializing_if = "Option::is_none")]
8623    pub marked_as_duplicate_workflow_state_id: Option<String>,
8624    /// Whether new users should join this team by default. Mutation restricted to workspace admins or owners!
8625    #[serde(default, skip_serializing_if = "Option::is_none")]
8626    pub join_by_default: Option<bool>,
8627    /// Whether the team is managed by SCIM integration. Mutation restricted to workspace admins or owners and only unsetting is allowed!
8628    #[serde(default, skip_serializing_if = "Option::is_none")]
8629    pub scim_managed: Option<bool>,
8630    /// The parent team ID.
8631    #[serde(default, skip_serializing_if = "Option::is_none")]
8632    pub parent_id: Option<String>,
8633    /// `Internal` Whether the team should inherit workflow statuses from its parent.
8634    #[serde(default, skip_serializing_if = "Option::is_none")]
8635    pub inherit_workflow_statuses: Option<bool>,
8636    /// `Internal` Whether the team should inherit its product intelligence scope from its parent. Only applies to sub-teams.
8637    #[serde(default, skip_serializing_if = "Option::is_none")]
8638    pub inherit_product_intelligence_scope: Option<bool>,
8639    /// `Internal` The scope of product intelligence suggestion data for the team.
8640    #[serde(default, skip_serializing_if = "Option::is_none")]
8641    pub product_intelligence_scope: Option<ProductIntelligenceScope>,
8642    /// The security settings for the team.
8643    #[serde(default, skip_serializing_if = "Option::is_none")]
8644    pub security_settings: Option<Box<TeamSecuritySettingsInput>>,
8645    /// Whether all members in the workspace can join the team. Only used for public teams.
8646    #[serde(default, skip_serializing_if = "Option::is_none")]
8647    pub all_members_can_join: Option<bool>,
8648    /// When the team was retired.
8649    #[serde(default, skip_serializing_if = "Option::is_none")]
8650    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
8651    /// `Internal` How to handle sub-teams when retiring. Required if the team has active sub-teams.
8652    #[serde(default, skip_serializing_if = "Option::is_none")]
8653    pub handle_sub_teams_on_retirement: Option<TeamRetirementSubTeamHandling>,
8654}
8655#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8656#[serde(rename_all = "camelCase")]
8657pub struct TemplateCreateInput {
8658    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8659    #[serde(default, skip_serializing_if = "Option::is_none")]
8660    pub id: Option<String>,
8661    /// The template type, e.g. 'issue'.
8662    #[serde(default, skip_serializing_if = "Option::is_none")]
8663    pub r#type: Option<String>,
8664    /// The identifier or key of the team associated with the template. If not given, the template will be shared across all teams.
8665    #[serde(default, skip_serializing_if = "Option::is_none")]
8666    pub team_id: Option<String>,
8667    /// The template name.
8668    #[serde(default, skip_serializing_if = "Option::is_none")]
8669    pub name: Option<String>,
8670    /// The template description.
8671    #[serde(default, skip_serializing_if = "Option::is_none")]
8672    pub description: Option<String>,
8673    /// The template data as JSON encoded attributes of the type of entity, such as an issue.
8674    #[serde(default, skip_serializing_if = "Option::is_none")]
8675    pub template_data: Option<serde_json::Value>,
8676    /// The position of the template in the templates list.
8677    #[serde(default, skip_serializing_if = "Option::is_none")]
8678    pub sort_order: Option<f64>,
8679}
8680#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8681#[serde(rename_all = "camelCase")]
8682pub struct TemplateUpdateInput {
8683    /// The template name.
8684    #[serde(default, skip_serializing_if = "Option::is_none")]
8685    pub name: Option<String>,
8686    /// The template description.
8687    #[serde(default, skip_serializing_if = "Option::is_none")]
8688    pub description: Option<String>,
8689    /// The identifier or key of the team associated with the template. If set to null, the template will be shared across all teams.
8690    #[serde(default, skip_serializing_if = "Option::is_none")]
8691    pub team_id: Option<String>,
8692    /// The template data as JSON encoded attributes of the type of entity, such as an issue.
8693    #[serde(default, skip_serializing_if = "Option::is_none")]
8694    pub template_data: Option<serde_json::Value>,
8695    /// The position of the template in the templates list.
8696    #[serde(default, skip_serializing_if = "Option::is_none")]
8697    pub sort_order: Option<f64>,
8698}
8699/// Customer tier sorting options.
8700#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8701#[serde(rename_all = "camelCase")]
8702pub struct TierSort {
8703    /// Whether nulls should be sorted first or last
8704    #[serde(default, skip_serializing_if = "Option::is_none")]
8705    pub nulls: Option<PaginationNulls>,
8706    /// The order for the individual sort
8707    #[serde(default, skip_serializing_if = "Option::is_none")]
8708    pub order: Option<PaginationSortOrder>,
8709}
8710/// Issue time in status sorting options.
8711#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8712#[serde(rename_all = "camelCase")]
8713pub struct TimeInStatusSort {
8714    /// Whether nulls should be sorted first or last
8715    #[serde(default, skip_serializing_if = "Option::is_none")]
8716    pub nulls: Option<PaginationNulls>,
8717    /// The order for the individual sort
8718    #[serde(default, skip_serializing_if = "Option::is_none")]
8719    pub order: Option<PaginationSortOrder>,
8720}
8721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8722#[serde(rename_all = "camelCase")]
8723pub struct TimeScheduleCreateInput {
8724    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8725    #[serde(default, skip_serializing_if = "Option::is_none")]
8726    pub id: Option<String>,
8727    /// The name of the schedule.
8728    #[serde(default, skip_serializing_if = "Option::is_none")]
8729    pub name: Option<String>,
8730    /// The schedule entries.
8731    #[serde(default, skip_serializing_if = "Option::is_none")]
8732    pub entries: Option<Vec<Box<TimeScheduleEntryInput>>>,
8733    /// The unique identifier of the external schedule.
8734    #[serde(default, skip_serializing_if = "Option::is_none")]
8735    pub external_id: Option<String>,
8736    /// The URL to the external schedule.
8737    #[serde(default, skip_serializing_if = "Option::is_none")]
8738    pub external_url: Option<String>,
8739}
8740#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8741#[serde(rename_all = "camelCase")]
8742pub struct TimeScheduleEntryInput {
8743    /// The start date of the schedule in ISO 8601 date-time format.
8744    #[serde(default, skip_serializing_if = "Option::is_none")]
8745    pub starts_at: Option<chrono::DateTime<chrono::Utc>>,
8746    /// The end date of the schedule in ISO 8601 date-time format.
8747    #[serde(default, skip_serializing_if = "Option::is_none")]
8748    pub ends_at: Option<chrono::DateTime<chrono::Utc>>,
8749    /// 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.
8750    #[serde(default, skip_serializing_if = "Option::is_none")]
8751    pub user_id: Option<String>,
8752    /// 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.
8753    #[serde(default, skip_serializing_if = "Option::is_none")]
8754    pub user_email: Option<String>,
8755}
8756#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8757#[serde(rename_all = "camelCase")]
8758pub struct TimeScheduleUpdateInput {
8759    /// The name of the schedule.
8760    #[serde(default, skip_serializing_if = "Option::is_none")]
8761    pub name: Option<String>,
8762    /// The schedule entries.
8763    #[serde(default, skip_serializing_if = "Option::is_none")]
8764    pub entries: Option<Vec<Box<TimeScheduleEntryInput>>>,
8765    /// The unique identifier of the external schedule.
8766    #[serde(default, skip_serializing_if = "Option::is_none")]
8767    pub external_id: Option<String>,
8768    /// The URL to the external schedule.
8769    #[serde(default, skip_serializing_if = "Option::is_none")]
8770    pub external_url: Option<String>,
8771}
8772/// Issue title sorting options.
8773#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8774#[serde(rename_all = "camelCase")]
8775pub struct TitleSort {
8776    /// Whether nulls should be sorted first or last
8777    #[serde(default, skip_serializing_if = "Option::is_none")]
8778    pub nulls: Option<PaginationNulls>,
8779    /// The order for the individual sort
8780    #[serde(default, skip_serializing_if = "Option::is_none")]
8781    pub order: Option<PaginationSortOrder>,
8782}
8783#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8784#[serde(rename_all = "camelCase")]
8785pub struct TokenUserAccountAuthInput {
8786    /// The email which to login via the magic login code.
8787    #[serde(default, skip_serializing_if = "Option::is_none")]
8788    pub email: Option<String>,
8789    /// The magic login code.
8790    #[serde(default, skip_serializing_if = "Option::is_none")]
8791    pub token: Option<String>,
8792    /// The timezone of the user's browser.
8793    #[serde(default, skip_serializing_if = "Option::is_none")]
8794    pub timezone: Option<String>,
8795    /// An optional invite link for an organization.
8796    #[serde(default, skip_serializing_if = "Option::is_none")]
8797    pub invite_link: Option<String>,
8798}
8799#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8800#[serde(rename_all = "camelCase")]
8801pub struct TriageResponsibilityCreateInput {
8802    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8803    #[serde(default, skip_serializing_if = "Option::is_none")]
8804    pub id: Option<String>,
8805    /// The identifier of the team associated with the triage responsibility.
8806    #[serde(default, skip_serializing_if = "Option::is_none")]
8807    pub team_id: Option<String>,
8808    /// The action to take when an issue is added to triage.
8809    #[serde(default, skip_serializing_if = "Option::is_none")]
8810    pub action: Option<String>,
8811    /// The manual selection of users responsible for triage.
8812    #[serde(default, skip_serializing_if = "Option::is_none")]
8813    pub manual_selection: Option<Box<TriageResponsibilityManualSelectionInput>>,
8814    /// The identifier of the time schedule used for scheduling triage responsibility
8815    #[serde(default, skip_serializing_if = "Option::is_none")]
8816    pub time_schedule_id: Option<String>,
8817}
8818/// Manual triage responsibility using a set of users.
8819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8820#[serde(rename_all = "camelCase")]
8821pub struct TriageResponsibilityManualSelectionInput {
8822    /// The set of users responsible for triage.
8823    #[serde(default, skip_serializing_if = "Option::is_none")]
8824    pub user_ids: Option<Vec<String>>,
8825    /// `Internal` The index of the current userId used for the assign action when having more than one user.
8826    #[serde(default, skip_serializing_if = "Option::is_none")]
8827    pub assignment_index: Option<i64>,
8828}
8829#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8830#[serde(rename_all = "camelCase")]
8831pub struct TriageResponsibilityUpdateInput {
8832    /// The action to take when an issue is added to triage.
8833    #[serde(default, skip_serializing_if = "Option::is_none")]
8834    pub action: Option<String>,
8835    /// The manual selection of users responsible for triage.
8836    #[serde(default, skip_serializing_if = "Option::is_none")]
8837    pub manual_selection: Option<Box<TriageResponsibilityManualSelectionInput>>,
8838    /// The identifier of the time schedule used for scheduling triage responsibility.
8839    #[serde(default, skip_serializing_if = "Option::is_none")]
8840    pub time_schedule_id: Option<String>,
8841}
8842/// Issue update date sorting options.
8843#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8844#[serde(rename_all = "camelCase")]
8845pub struct UpdatedAtSort {
8846    /// Whether nulls should be sorted first or last
8847    #[serde(default, skip_serializing_if = "Option::is_none")]
8848    pub nulls: Option<PaginationNulls>,
8849    /// The order for the individual sort
8850    #[serde(default, skip_serializing_if = "Option::is_none")]
8851    pub order: Option<PaginationSortOrder>,
8852}
8853/// User filtering options.
8854#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8855#[serde(rename_all = "camelCase")]
8856pub struct UserCollectionFilter {
8857    /// Comparator for the identifier.
8858    #[serde(default, skip_serializing_if = "Option::is_none")]
8859    pub id: Option<Box<IDComparator>>,
8860    /// Comparator for the created at date.
8861    #[serde(default, skip_serializing_if = "Option::is_none")]
8862    pub created_at: Option<Box<DateComparator>>,
8863    /// Comparator for the updated at date.
8864    #[serde(default, skip_serializing_if = "Option::is_none")]
8865    pub updated_at: Option<Box<DateComparator>>,
8866    /// Comparator for the user's name.
8867    #[serde(default, skip_serializing_if = "Option::is_none")]
8868    pub name: Option<Box<StringComparator>>,
8869    /// Comparator for the user's display name.
8870    #[serde(default, skip_serializing_if = "Option::is_none")]
8871    pub display_name: Option<Box<StringComparator>>,
8872    /// Comparator for the user's email.
8873    #[serde(default, skip_serializing_if = "Option::is_none")]
8874    pub email: Option<Box<StringComparator>>,
8875    /// Comparator for the user's activity status.
8876    #[serde(default, skip_serializing_if = "Option::is_none")]
8877    pub active: Option<Box<BooleanComparator>>,
8878    /// Filters that the users assigned issues must satisfy.
8879    #[serde(default, skip_serializing_if = "Option::is_none")]
8880    pub assigned_issues: Option<Box<IssueCollectionFilter>>,
8881    /// Comparator for the user's admin status.
8882    #[serde(default, skip_serializing_if = "Option::is_none")]
8883    pub admin: Option<Box<BooleanComparator>>,
8884    /// Comparator for the user's owner status.
8885    #[serde(default, skip_serializing_if = "Option::is_none")]
8886    pub owner: Option<Box<BooleanComparator>>,
8887    /// Comparator for the user's invited status.
8888    #[serde(default, skip_serializing_if = "Option::is_none")]
8889    pub invited: Option<Box<BooleanComparator>>,
8890    /// Comparator for the user's invited status.
8891    #[serde(default, skip_serializing_if = "Option::is_none")]
8892    pub is_invited: Option<Box<BooleanComparator>>,
8893    /// Comparator for the user's app status.
8894    #[serde(default, skip_serializing_if = "Option::is_none")]
8895    pub app: Option<Box<BooleanComparator>>,
8896    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
8897    #[serde(default, skip_serializing_if = "Option::is_none")]
8898    pub is_me: Option<Box<BooleanComparator>>,
8899    /// Compound filters, all of which need to be matched by the user.
8900    #[serde(default, skip_serializing_if = "Option::is_none")]
8901    pub and: Option<Vec<Box<UserCollectionFilter>>>,
8902    /// Compound filters, one of which need to be matched by the user.
8903    #[serde(default, skip_serializing_if = "Option::is_none")]
8904    pub or: Option<Vec<Box<UserCollectionFilter>>>,
8905    /// Filters that needs to be matched by some users.
8906    #[serde(default, skip_serializing_if = "Option::is_none")]
8907    pub some: Option<Box<UserFilter>>,
8908    /// Filters that needs to be matched by all users.
8909    #[serde(default, skip_serializing_if = "Option::is_none")]
8910    pub every: Option<Box<UserFilter>>,
8911    /// Comparator for the collection length.
8912    #[serde(default, skip_serializing_if = "Option::is_none")]
8913    pub length: Option<Box<NumberComparator>>,
8914}
8915/// User display name sorting options.
8916#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8917#[serde(rename_all = "camelCase")]
8918pub struct UserDisplayNameSort {
8919    /// Whether nulls should be sorted first or last
8920    #[serde(default, skip_serializing_if = "Option::is_none")]
8921    pub nulls: Option<PaginationNulls>,
8922    /// The order for the individual sort
8923    #[serde(default, skip_serializing_if = "Option::is_none")]
8924    pub order: Option<PaginationSortOrder>,
8925}
8926/// User filtering options.
8927#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8928#[serde(rename_all = "camelCase")]
8929pub struct UserFilter {
8930    /// Comparator for the identifier.
8931    #[serde(default, skip_serializing_if = "Option::is_none")]
8932    pub id: Option<Box<IDComparator>>,
8933    /// Comparator for the created at date.
8934    #[serde(default, skip_serializing_if = "Option::is_none")]
8935    pub created_at: Option<Box<DateComparator>>,
8936    /// Comparator for the updated at date.
8937    #[serde(default, skip_serializing_if = "Option::is_none")]
8938    pub updated_at: Option<Box<DateComparator>>,
8939    /// Comparator for the user's name.
8940    #[serde(default, skip_serializing_if = "Option::is_none")]
8941    pub name: Option<Box<StringComparator>>,
8942    /// Comparator for the user's display name.
8943    #[serde(default, skip_serializing_if = "Option::is_none")]
8944    pub display_name: Option<Box<StringComparator>>,
8945    /// Comparator for the user's email.
8946    #[serde(default, skip_serializing_if = "Option::is_none")]
8947    pub email: Option<Box<StringComparator>>,
8948    /// Comparator for the user's activity status.
8949    #[serde(default, skip_serializing_if = "Option::is_none")]
8950    pub active: Option<Box<BooleanComparator>>,
8951    /// Filters that the users assigned issues must satisfy.
8952    #[serde(default, skip_serializing_if = "Option::is_none")]
8953    pub assigned_issues: Option<Box<IssueCollectionFilter>>,
8954    /// Comparator for the user's admin status.
8955    #[serde(default, skip_serializing_if = "Option::is_none")]
8956    pub admin: Option<Box<BooleanComparator>>,
8957    /// Comparator for the user's owner status.
8958    #[serde(default, skip_serializing_if = "Option::is_none")]
8959    pub owner: Option<Box<BooleanComparator>>,
8960    /// Comparator for the user's invited status.
8961    #[serde(default, skip_serializing_if = "Option::is_none")]
8962    pub invited: Option<Box<BooleanComparator>>,
8963    /// Comparator for the user's invited status.
8964    #[serde(default, skip_serializing_if = "Option::is_none")]
8965    pub is_invited: Option<Box<BooleanComparator>>,
8966    /// Comparator for the user's app status.
8967    #[serde(default, skip_serializing_if = "Option::is_none")]
8968    pub app: Option<Box<BooleanComparator>>,
8969    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
8970    #[serde(default, skip_serializing_if = "Option::is_none")]
8971    pub is_me: Option<Box<BooleanComparator>>,
8972    /// Compound filters, all of which need to be matched by the user.
8973    #[serde(default, skip_serializing_if = "Option::is_none")]
8974    pub and: Option<Vec<Box<UserFilter>>>,
8975    /// Compound filters, one of which need to be matched by the user.
8976    #[serde(default, skip_serializing_if = "Option::is_none")]
8977    pub or: Option<Vec<Box<UserFilter>>>,
8978}
8979/// User name sorting options.
8980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8981#[serde(rename_all = "camelCase")]
8982pub struct UserNameSort {
8983    /// Whether nulls should be sorted first or last
8984    #[serde(default, skip_serializing_if = "Option::is_none")]
8985    pub nulls: Option<PaginationNulls>,
8986    /// The order for the individual sort
8987    #[serde(default, skip_serializing_if = "Option::is_none")]
8988    pub order: Option<PaginationSortOrder>,
8989}
8990#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8991#[serde(rename_all = "camelCase")]
8992pub struct UserSettingsUpdateInput {
8993    /// The user's settings.
8994    #[serde(default, skip_serializing_if = "Option::is_none")]
8995    pub settings: Option<serde_json::Value>,
8996    /// Whether this user is subscribed to changelog email or not.
8997    #[serde(default, skip_serializing_if = "Option::is_none")]
8998    pub subscribed_to_changelog: Option<bool>,
8999    /// Whether this user is subscribed to DPA emails or not.
9000    #[serde(
9001        rename = "subscribedToDPA",
9002        default,
9003        skip_serializing_if = "Option::is_none"
9004    )]
9005    pub subscribed_to_dpa: Option<bool>,
9006    /// Whether this user is subscribed to invite accepted emails or not.
9007    #[serde(default, skip_serializing_if = "Option::is_none")]
9008    pub subscribed_to_invite_accepted: Option<bool>,
9009    /// Whether this user is subscribed to privacy and legal update emails or not.
9010    #[serde(default, skip_serializing_if = "Option::is_none")]
9011    pub subscribed_to_privacy_legal_updates: Option<bool>,
9012    /// Whether this user is subscribed to general marketing communications or not.
9013    #[serde(default, skip_serializing_if = "Option::is_none")]
9014    pub subscribed_to_general_marketing_communications: Option<bool>,
9015    /// The user's notification category preferences.
9016    #[serde(default, skip_serializing_if = "Option::is_none")]
9017    pub notification_category_preferences: Option<Box<NotificationCategoryPreferencesInput>>,
9018    /// The user's notification channel preferences.
9019    #[serde(default, skip_serializing_if = "Option::is_none")]
9020    pub notification_channel_preferences: Option<Box<PartialNotificationChannelPreferencesInput>>,
9021    /// The user's notification delivery preferences.
9022    #[serde(default, skip_serializing_if = "Option::is_none")]
9023    pub notification_delivery_preferences: Option<Box<NotificationDeliveryPreferencesInput>>,
9024    /// `Internal` The user's usage warning history.
9025    #[serde(default, skip_serializing_if = "Option::is_none")]
9026    pub usage_warning_history: Option<serde_json::Value>,
9027    /// `Internal` How often to generate a feed summary.
9028    #[serde(default, skip_serializing_if = "Option::is_none")]
9029    pub feed_summary_schedule: Option<FeedSummarySchedule>,
9030    /// `Internal` The user's last seen time for the pulse feed.
9031    #[serde(default, skip_serializing_if = "Option::is_none")]
9032    pub feed_last_seen_time: Option<chrono::DateTime<chrono::Utc>>,
9033}
9034/// User sorting options.
9035#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9036#[serde(rename_all = "camelCase")]
9037pub struct UserSortInput {
9038    /// Sort by user name
9039    #[serde(default, skip_serializing_if = "Option::is_none")]
9040    pub name: Option<Box<UserNameSort>>,
9041    /// Sort by user display name
9042    #[serde(default, skip_serializing_if = "Option::is_none")]
9043    pub display_name: Option<Box<UserDisplayNameSort>>,
9044}
9045#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9046#[serde(rename_all = "camelCase")]
9047pub struct UserUpdateInput {
9048    /// The name of the user.
9049    #[serde(default, skip_serializing_if = "Option::is_none")]
9050    pub name: Option<String>,
9051    /// The display name of the user.
9052    #[serde(default, skip_serializing_if = "Option::is_none")]
9053    pub display_name: Option<String>,
9054    /// The avatar image URL of the user.
9055    #[serde(default, skip_serializing_if = "Option::is_none")]
9056    pub avatar_url: Option<String>,
9057    /// The user description or a short bio.
9058    #[serde(default, skip_serializing_if = "Option::is_none")]
9059    pub description: Option<String>,
9060    /// The emoji part of the user status.
9061    #[serde(default, skip_serializing_if = "Option::is_none")]
9062    pub status_emoji: Option<String>,
9063    /// The label part of the user status.
9064    #[serde(default, skip_serializing_if = "Option::is_none")]
9065    pub status_label: Option<String>,
9066    /// When the user status should be cleared.
9067    #[serde(default, skip_serializing_if = "Option::is_none")]
9068    pub status_until_at: Option<chrono::DateTime<chrono::Utc>>,
9069    /// The local timezone of the user.
9070    #[serde(default, skip_serializing_if = "Option::is_none")]
9071    pub timezone: Option<String>,
9072}
9073#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9074#[serde(rename_all = "camelCase")]
9075pub struct ViewPreferencesCreateInput {
9076    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9077    #[serde(default, skip_serializing_if = "Option::is_none")]
9078    pub id: Option<String>,
9079    /// The type of view preferences (either user or organization level preferences).
9080    #[serde(default, skip_serializing_if = "Option::is_none")]
9081    pub r#type: Option<ViewPreferencesType>,
9082    /// The view type of the view preferences are associated with.
9083    #[serde(default, skip_serializing_if = "Option::is_none")]
9084    pub view_type: Option<ViewType>,
9085    /// View preferences object.
9086    #[serde(default, skip_serializing_if = "Option::is_none")]
9087    pub preferences: Option<serde_json::Value>,
9088    /// The default parameters for the insight on that view.
9089    #[serde(default, skip_serializing_if = "Option::is_none")]
9090    pub insights: Option<serde_json::Value>,
9091    /// The team these view preferences are associated with.
9092    #[serde(default, skip_serializing_if = "Option::is_none")]
9093    pub team_id: Option<String>,
9094    /// The project these view preferences are associated with.
9095    #[serde(default, skip_serializing_if = "Option::is_none")]
9096    pub project_id: Option<String>,
9097    /// `Internal` The initiative these view preferences are associated with.
9098    #[serde(default, skip_serializing_if = "Option::is_none")]
9099    pub initiative_id: Option<String>,
9100    /// The label these view preferences are associated with.
9101    #[serde(default, skip_serializing_if = "Option::is_none")]
9102    pub label_id: Option<String>,
9103    /// The project label these view preferences are associated with.
9104    #[serde(default, skip_serializing_if = "Option::is_none")]
9105    pub project_label_id: Option<String>,
9106    /// The custom view these view preferences are associated with.
9107    #[serde(default, skip_serializing_if = "Option::is_none")]
9108    pub custom_view_id: Option<String>,
9109    /// The user profile these view preferences are associated with.
9110    #[serde(default, skip_serializing_if = "Option::is_none")]
9111    pub user_id: Option<String>,
9112}
9113#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9114#[serde(rename_all = "camelCase")]
9115pub struct ViewPreferencesUpdateInput {
9116    /// View preferences.
9117    #[serde(default, skip_serializing_if = "Option::is_none")]
9118    pub preferences: Option<serde_json::Value>,
9119    /// The default parameters for the insight on that view.
9120    #[serde(default, skip_serializing_if = "Option::is_none")]
9121    pub insights: Option<serde_json::Value>,
9122}
9123#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9124#[serde(rename_all = "camelCase")]
9125pub struct WebhookCreateInput {
9126    /// Label for the webhook.
9127    #[serde(default, skip_serializing_if = "Option::is_none")]
9128    pub label: Option<String>,
9129    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9130    #[serde(default, skip_serializing_if = "Option::is_none")]
9131    pub id: Option<String>,
9132    /// Whether this webhook is enabled.
9133    #[serde(default, skip_serializing_if = "Option::is_none")]
9134    pub enabled: Option<bool>,
9135    /// A secret token used to sign the webhook payload.
9136    #[serde(default, skip_serializing_if = "Option::is_none")]
9137    pub secret: Option<String>,
9138    /// The URL that will be called on data changes.
9139    #[serde(default, skip_serializing_if = "Option::is_none")]
9140    pub url: Option<String>,
9141    /// List of resources the webhook should subscribe to.
9142    #[serde(default, skip_serializing_if = "Option::is_none")]
9143    pub resource_types: Option<Vec<String>>,
9144    /// The identifier or key of the team associated with the Webhook.
9145    #[serde(default, skip_serializing_if = "Option::is_none")]
9146    pub team_id: Option<String>,
9147    /// Whether this webhook is enabled for all public teams.
9148    #[serde(default, skip_serializing_if = "Option::is_none")]
9149    pub all_public_teams: Option<bool>,
9150}
9151#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9152#[serde(rename_all = "camelCase")]
9153pub struct WebhookUpdateInput {
9154    /// Label for the webhook.
9155    #[serde(default, skip_serializing_if = "Option::is_none")]
9156    pub label: Option<String>,
9157    /// A secret token used to sign the webhook payload.
9158    #[serde(default, skip_serializing_if = "Option::is_none")]
9159    pub secret: Option<String>,
9160    /// Whether this webhook is enabled.
9161    #[serde(default, skip_serializing_if = "Option::is_none")]
9162    pub enabled: Option<bool>,
9163    /// The URL that will be called on data changes.
9164    #[serde(default, skip_serializing_if = "Option::is_none")]
9165    pub url: Option<String>,
9166    /// List of resources the webhook should subscribe to.
9167    #[serde(default, skip_serializing_if = "Option::is_none")]
9168    pub resource_types: Option<Vec<String>>,
9169}
9170#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9171#[serde(rename_all = "camelCase")]
9172pub struct WorkflowStateCreateInput {
9173    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9174    #[serde(default, skip_serializing_if = "Option::is_none")]
9175    pub id: Option<String>,
9176    /// The workflow type.
9177    #[serde(default, skip_serializing_if = "Option::is_none")]
9178    pub r#type: Option<String>,
9179    /// The name of the state.
9180    #[serde(default, skip_serializing_if = "Option::is_none")]
9181    pub name: Option<String>,
9182    /// The color of the state.
9183    #[serde(default, skip_serializing_if = "Option::is_none")]
9184    pub color: Option<String>,
9185    /// The description of the state.
9186    #[serde(default, skip_serializing_if = "Option::is_none")]
9187    pub description: Option<String>,
9188    /// The position of the state.
9189    #[serde(default, skip_serializing_if = "Option::is_none")]
9190    pub position: Option<f64>,
9191    /// The team associated with the state.
9192    #[serde(default, skip_serializing_if = "Option::is_none")]
9193    pub team_id: Option<String>,
9194}
9195/// Workflow state filtering options.
9196#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9197#[serde(rename_all = "camelCase")]
9198pub struct WorkflowStateFilter {
9199    /// Comparator for the identifier.
9200    #[serde(default, skip_serializing_if = "Option::is_none")]
9201    pub id: Option<Box<IDComparator>>,
9202    /// Comparator for the created at date.
9203    #[serde(default, skip_serializing_if = "Option::is_none")]
9204    pub created_at: Option<Box<DateComparator>>,
9205    /// Comparator for the updated at date.
9206    #[serde(default, skip_serializing_if = "Option::is_none")]
9207    pub updated_at: Option<Box<DateComparator>>,
9208    /// Comparator for the workflow state name.
9209    #[serde(default, skip_serializing_if = "Option::is_none")]
9210    pub name: Option<Box<StringComparator>>,
9211    /// Comparator for the workflow state description.
9212    #[serde(default, skip_serializing_if = "Option::is_none")]
9213    pub description: Option<Box<StringComparator>>,
9214    /// Comparator for the workflow state position.
9215    #[serde(default, skip_serializing_if = "Option::is_none")]
9216    pub position: Option<Box<NumberComparator>>,
9217    /// Comparator for the workflow state type. Possible values are "triage", "backlog", "unstarted", "started", "completed", "canceled".
9218    #[serde(default, skip_serializing_if = "Option::is_none")]
9219    pub r#type: Option<Box<StringComparator>>,
9220    /// Filters that the workflow states team must satisfy.
9221    #[serde(default, skip_serializing_if = "Option::is_none")]
9222    pub team: Option<Box<TeamFilter>>,
9223    /// Filters that the workflow states issues must satisfy.
9224    #[serde(default, skip_serializing_if = "Option::is_none")]
9225    pub issues: Option<Box<IssueCollectionFilter>>,
9226    /// Compound filters, all of which need to be matched by the workflow state.
9227    #[serde(default, skip_serializing_if = "Option::is_none")]
9228    pub and: Option<Vec<Box<WorkflowStateFilter>>>,
9229    /// Compound filters, one of which need to be matched by the workflow state.
9230    #[serde(default, skip_serializing_if = "Option::is_none")]
9231    pub or: Option<Vec<Box<WorkflowStateFilter>>>,
9232}
9233/// Issue workflow state sorting options.
9234#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9235#[serde(rename_all = "camelCase")]
9236pub struct WorkflowStateSort {
9237    /// Whether nulls should be sorted first or last
9238    #[serde(default, skip_serializing_if = "Option::is_none")]
9239    pub nulls: Option<PaginationNulls>,
9240    /// The order for the individual sort
9241    #[serde(default, skip_serializing_if = "Option::is_none")]
9242    pub order: Option<PaginationSortOrder>,
9243    /// Whether to sort closed issues by recency
9244    #[serde(default, skip_serializing_if = "Option::is_none")]
9245    pub closed_issues_ordered_by_recency: Option<bool>,
9246}
9247#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9248#[serde(rename_all = "camelCase")]
9249pub struct WorkflowStateUpdateInput {
9250    /// The name of the state.
9251    #[serde(default, skip_serializing_if = "Option::is_none")]
9252    pub name: Option<String>,
9253    /// The color of the state.
9254    #[serde(default, skip_serializing_if = "Option::is_none")]
9255    pub color: Option<String>,
9256    /// The description of the state.
9257    #[serde(default, skip_serializing_if = "Option::is_none")]
9258    pub description: Option<String>,
9259    /// The position of the state.
9260    #[serde(default, skip_serializing_if = "Option::is_none")]
9261    pub position: Option<f64>,
9262}
9263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9264#[serde(rename_all = "camelCase")]
9265pub struct ZendeskSettingsInput {
9266    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
9267    #[serde(default, skip_serializing_if = "Option::is_none")]
9268    pub send_note_on_status_change: Option<bool>,
9269    /// Whether an internal message should be added when someone comments on an issue.
9270    #[serde(default, skip_serializing_if = "Option::is_none")]
9271    pub send_note_on_comment: Option<bool>,
9272    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
9273    #[serde(default, skip_serializing_if = "Option::is_none")]
9274    pub automate_ticket_reopening_on_completion: Option<bool>,
9275    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
9276    #[serde(default, skip_serializing_if = "Option::is_none")]
9277    pub automate_ticket_reopening_on_cancellation: Option<bool>,
9278    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
9279    #[serde(default, skip_serializing_if = "Option::is_none")]
9280    pub automate_ticket_reopening_on_comment: Option<bool>,
9281    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
9282    #[serde(default, skip_serializing_if = "Option::is_none")]
9283    pub disable_customer_requests_auto_creation: Option<bool>,
9284    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
9285    #[serde(default, skip_serializing_if = "Option::is_none")]
9286    pub automate_ticket_reopening_on_project_completion: Option<bool>,
9287    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
9288    #[serde(default, skip_serializing_if = "Option::is_none")]
9289    pub automate_ticket_reopening_on_project_cancellation: Option<bool>,
9290    /// Whether Linear Agent should be enabled for this integration.
9291    #[serde(default, skip_serializing_if = "Option::is_none")]
9292    pub enable_ai_intake: Option<bool>,
9293    /// The subdomain of the Zendesk organization being connected.
9294    #[serde(default, skip_serializing_if = "Option::is_none")]
9295    pub subdomain: Option<String>,
9296    /// The URL of the connected Zendesk organization.
9297    #[serde(default, skip_serializing_if = "Option::is_none")]
9298    pub url: Option<String>,
9299    /// The ID of the Linear bot user.
9300    #[serde(default, skip_serializing_if = "Option::is_none")]
9301    pub bot_user_id: Option<String>,
9302    /// `INTERNAL` Temporary flag indicating if the integration has the necessary scopes for Customers
9303    #[serde(default, skip_serializing_if = "Option::is_none")]
9304    pub can_read_customers: Option<bool>,
9305    /// `INTERNAL` Flag indicating if the integration supports OAuth refresh tokens
9306    #[serde(default, skip_serializing_if = "Option::is_none")]
9307    pub supports_o_auth_refresh: Option<bool>,
9308    /// The host mappings from Zendesk brands.
9309    #[serde(default, skip_serializing_if = "Option::is_none")]
9310    pub host_mappings: Option<Vec<String>>,
9311}