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/// Document content history filtering options.
1800#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1801#[serde(rename_all = "camelCase")]
1802pub struct DocumentContentHistoryFilter {
1803    /// Comparator for the identifier.
1804    #[serde(default, skip_serializing_if = "Option::is_none")]
1805    pub id: Option<Box<IDComparator>>,
1806    /// Comparator for the created at date.
1807    #[serde(default, skip_serializing_if = "Option::is_none")]
1808    pub created_at: Option<Box<DateComparator>>,
1809    /// Comparator for the updated at date.
1810    #[serde(default, skip_serializing_if = "Option::is_none")]
1811    pub updated_at: Option<Box<DateComparator>>,
1812}
1813#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1814#[serde(rename_all = "camelCase")]
1815pub struct DocumentCreateInput {
1816    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1817    #[serde(default, skip_serializing_if = "Option::is_none")]
1818    pub id: Option<String>,
1819    /// The title of the document.
1820    #[serde(default, skip_serializing_if = "Option::is_none")]
1821    pub title: Option<String>,
1822    /// The icon of the document.
1823    #[serde(default, skip_serializing_if = "Option::is_none")]
1824    pub icon: Option<String>,
1825    /// The color of the icon.
1826    #[serde(default, skip_serializing_if = "Option::is_none")]
1827    pub color: Option<String>,
1828    /// The document content as markdown.
1829    #[serde(default, skip_serializing_if = "Option::is_none")]
1830    pub content: Option<String>,
1831    /// Related project for the document.
1832    #[serde(default, skip_serializing_if = "Option::is_none")]
1833    pub project_id: Option<String>,
1834    /// `Internal` Related initiative for the document.
1835    #[serde(default, skip_serializing_if = "Option::is_none")]
1836    pub initiative_id: Option<String>,
1837    /// `Internal` Related team for the document.
1838    #[serde(default, skip_serializing_if = "Option::is_none")]
1839    pub team_id: Option<String>,
1840    /// Related issue for the document. Can be a UUID or issue identifier (e.g., 'LIN-123').
1841    #[serde(default, skip_serializing_if = "Option::is_none")]
1842    pub issue_id: Option<String>,
1843    /// `Internal` Related release for the document.
1844    #[serde(default, skip_serializing_if = "Option::is_none")]
1845    pub release_id: Option<String>,
1846    /// `Internal` Related cycle for the document.
1847    #[serde(default, skip_serializing_if = "Option::is_none")]
1848    pub cycle_id: Option<String>,
1849    /// `Internal` The resource folder containing the document.
1850    #[serde(default, skip_serializing_if = "Option::is_none")]
1851    pub resource_folder_id: Option<String>,
1852    /// The ID of the last template applied to the document.
1853    #[serde(default, skip_serializing_if = "Option::is_none")]
1854    pub last_applied_template_id: Option<String>,
1855    /// The order of the item in the resources list.
1856    #[serde(default, skip_serializing_if = "Option::is_none")]
1857    pub sort_order: Option<f64>,
1858    /// `INTERNAL` The identifiers of the users subscribing to this document.
1859    #[serde(default, skip_serializing_if = "Option::is_none")]
1860    pub subscriber_ids: Option<Vec<String>>,
1861}
1862/// Document filtering options.
1863#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1864#[serde(rename_all = "camelCase")]
1865pub struct DocumentFilter {
1866    /// Comparator for the identifier.
1867    #[serde(default, skip_serializing_if = "Option::is_none")]
1868    pub id: Option<Box<IDComparator>>,
1869    /// Comparator for the created at date.
1870    #[serde(default, skip_serializing_if = "Option::is_none")]
1871    pub created_at: Option<Box<DateComparator>>,
1872    /// Comparator for the updated at date.
1873    #[serde(default, skip_serializing_if = "Option::is_none")]
1874    pub updated_at: Option<Box<DateComparator>>,
1875    /// Comparator for the document title.
1876    #[serde(default, skip_serializing_if = "Option::is_none")]
1877    pub title: Option<Box<StringComparator>>,
1878    /// Comparator for the document slug ID.
1879    #[serde(default, skip_serializing_if = "Option::is_none")]
1880    pub slug_id: Option<Box<StringComparator>>,
1881    /// Filters that the document's creator must satisfy.
1882    #[serde(default, skip_serializing_if = "Option::is_none")]
1883    pub creator: Option<Box<UserFilter>>,
1884    /// Filters that the document's project must satisfy.
1885    #[serde(default, skip_serializing_if = "Option::is_none")]
1886    pub project: Option<Box<ProjectFilter>>,
1887    /// Filters that the document's issue must satisfy.
1888    #[serde(default, skip_serializing_if = "Option::is_none")]
1889    pub issue: Option<Box<IssueFilter>>,
1890    /// Filters that the document's initiative must satisfy.
1891    #[serde(default, skip_serializing_if = "Option::is_none")]
1892    pub initiative: Option<Box<InitiativeFilter>>,
1893    /// Compound filters, all of which need to be matched by the document.
1894    #[serde(default, skip_serializing_if = "Option::is_none")]
1895    pub and: Option<Vec<Box<DocumentFilter>>>,
1896    /// Compound filters, one of which need to be matched by the document.
1897    #[serde(default, skip_serializing_if = "Option::is_none")]
1898    pub or: Option<Vec<Box<DocumentFilter>>>,
1899}
1900#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1901#[serde(rename_all = "camelCase")]
1902pub struct DocumentUpdateInput {
1903    /// The title of the document.
1904    #[serde(default, skip_serializing_if = "Option::is_none")]
1905    pub title: Option<String>,
1906    /// The icon of the document.
1907    #[serde(default, skip_serializing_if = "Option::is_none")]
1908    pub icon: Option<String>,
1909    /// The color of the icon.
1910    #[serde(default, skip_serializing_if = "Option::is_none")]
1911    pub color: Option<String>,
1912    /// The document content as markdown.
1913    #[serde(default, skip_serializing_if = "Option::is_none")]
1914    pub content: Option<String>,
1915    /// Related project for the document.
1916    #[serde(default, skip_serializing_if = "Option::is_none")]
1917    pub project_id: Option<String>,
1918    /// `Internal` Related initiative for the document.
1919    #[serde(default, skip_serializing_if = "Option::is_none")]
1920    pub initiative_id: Option<String>,
1921    /// `Internal` Related team for the document.
1922    #[serde(default, skip_serializing_if = "Option::is_none")]
1923    pub team_id: Option<String>,
1924    /// Related issue for the document. Can be a UUID or issue identifier (e.g., 'LIN-123').
1925    #[serde(default, skip_serializing_if = "Option::is_none")]
1926    pub issue_id: Option<String>,
1927    /// `Internal` Related release for the document.
1928    #[serde(default, skip_serializing_if = "Option::is_none")]
1929    pub release_id: Option<String>,
1930    /// `Internal` Related cycle for the document.
1931    #[serde(default, skip_serializing_if = "Option::is_none")]
1932    pub cycle_id: Option<String>,
1933    /// `Internal` The resource folder containing the document.
1934    #[serde(default, skip_serializing_if = "Option::is_none")]
1935    pub resource_folder_id: Option<String>,
1936    /// The ID of the last template applied to the document.
1937    #[serde(default, skip_serializing_if = "Option::is_none")]
1938    pub last_applied_template_id: Option<String>,
1939    /// The time at which the document was hidden.
1940    #[serde(default, skip_serializing_if = "Option::is_none")]
1941    pub hidden_at: Option<chrono::DateTime<chrono::Utc>>,
1942    /// The order of the item in the resources list.
1943    #[serde(default, skip_serializing_if = "Option::is_none")]
1944    pub sort_order: Option<f64>,
1945    /// Whether the document has been trashed.
1946    #[serde(default, skip_serializing_if = "Option::is_none")]
1947    pub trashed: Option<bool>,
1948    /// `INTERNAL` The identifiers of the users subscribing to this document.
1949    #[serde(default, skip_serializing_if = "Option::is_none")]
1950    pub subscriber_ids: Option<Vec<String>>,
1951}
1952/// Issue due date sorting options.
1953#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1954#[serde(rename_all = "camelCase")]
1955pub struct DueDateSort {
1956    /// Whether nulls should be sorted first or last
1957    #[serde(default, skip_serializing_if = "Option::is_none")]
1958    pub nulls: Option<PaginationNulls>,
1959    /// The order for the individual sort
1960    #[serde(default, skip_serializing_if = "Option::is_none")]
1961    pub order: Option<PaginationSortOrder>,
1962}
1963#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1964#[serde(rename_all = "camelCase")]
1965pub struct EmailIntakeAddressCreateInput {
1966    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
1967    #[serde(default, skip_serializing_if = "Option::is_none")]
1968    pub id: Option<String>,
1969    /// The type of the email address. If not provided, the backend will default to team or template.
1970    #[serde(default, skip_serializing_if = "Option::is_none")]
1971    pub r#type: Option<EmailIntakeAddressType>,
1972    /// The email address used to forward emails to the intake address.
1973    #[serde(default, skip_serializing_if = "Option::is_none")]
1974    pub forwarding_email_address: Option<String>,
1975    /// The name to be used for outgoing emails.
1976    #[serde(default, skip_serializing_if = "Option::is_none")]
1977    pub sender_name: Option<String>,
1978    /// The identifier or key of the team this email address will intake issues for.
1979    #[serde(default, skip_serializing_if = "Option::is_none")]
1980    pub team_id: Option<String>,
1981    /// The identifier of the template this email address will intake issues for.
1982    #[serde(default, skip_serializing_if = "Option::is_none")]
1983    pub template_id: Option<String>,
1984    /// Whether email replies are enabled.
1985    #[serde(default, skip_serializing_if = "Option::is_none")]
1986    pub replies_enabled: Option<bool>,
1987    /// Whether the commenter's name is included in the email replies.
1988    #[serde(default, skip_serializing_if = "Option::is_none")]
1989    pub use_user_names_in_replies: Option<bool>,
1990    /// Whether the issue created auto-reply is enabled.
1991    #[serde(default, skip_serializing_if = "Option::is_none")]
1992    pub issue_created_auto_reply_enabled: Option<bool>,
1993    /// The auto-reply message for issue created.
1994    #[serde(default, skip_serializing_if = "Option::is_none")]
1995    pub issue_created_auto_reply: Option<String>,
1996    /// Whether the issue completed auto-reply is enabled.
1997    #[serde(default, skip_serializing_if = "Option::is_none")]
1998    pub issue_completed_auto_reply_enabled: Option<bool>,
1999    /// The auto-reply message for issue completed.
2000    #[serde(default, skip_serializing_if = "Option::is_none")]
2001    pub issue_completed_auto_reply: Option<String>,
2002    /// Whether the issue canceled auto-reply is enabled.
2003    #[serde(default, skip_serializing_if = "Option::is_none")]
2004    pub issue_canceled_auto_reply_enabled: Option<bool>,
2005    /// The auto-reply message for issue canceled.
2006    #[serde(default, skip_serializing_if = "Option::is_none")]
2007    pub issue_canceled_auto_reply: Option<String>,
2008    /// Whether customer requests are enabled.
2009    #[serde(default, skip_serializing_if = "Option::is_none")]
2010    pub customer_requests_enabled: Option<bool>,
2011}
2012#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2013#[serde(rename_all = "camelCase")]
2014pub struct EmailIntakeAddressUpdateInput {
2015    /// Whether the email address is currently enabled. If set to false, the email address will be disabled and no longer accept incoming emails.
2016    #[serde(default, skip_serializing_if = "Option::is_none")]
2017    pub enabled: Option<bool>,
2018    /// The email address used to forward emails to the intake address.
2019    #[serde(default, skip_serializing_if = "Option::is_none")]
2020    pub forwarding_email_address: Option<String>,
2021    /// The name to be used for outgoing emails.
2022    #[serde(default, skip_serializing_if = "Option::is_none")]
2023    pub sender_name: Option<String>,
2024    /// The identifier or key of the team this email address will intake issues for.
2025    #[serde(default, skip_serializing_if = "Option::is_none")]
2026    pub team_id: Option<String>,
2027    /// The identifier of the template this email address will intake issues for.
2028    #[serde(default, skip_serializing_if = "Option::is_none")]
2029    pub template_id: Option<String>,
2030    /// Whether email replies are enabled.
2031    #[serde(default, skip_serializing_if = "Option::is_none")]
2032    pub replies_enabled: Option<bool>,
2033    /// Whether the commenter's name is included in the email replies.
2034    #[serde(default, skip_serializing_if = "Option::is_none")]
2035    pub use_user_names_in_replies: Option<bool>,
2036    /// Whether the issue created auto-reply is enabled.
2037    #[serde(default, skip_serializing_if = "Option::is_none")]
2038    pub issue_created_auto_reply_enabled: Option<bool>,
2039    /// The auto-reply message for issue created.
2040    #[serde(default, skip_serializing_if = "Option::is_none")]
2041    pub issue_created_auto_reply: Option<String>,
2042    /// Whether the issue completed auto-reply is enabled.
2043    #[serde(default, skip_serializing_if = "Option::is_none")]
2044    pub issue_completed_auto_reply_enabled: Option<bool>,
2045    /// Custom auto-reply message for issue completed.
2046    #[serde(default, skip_serializing_if = "Option::is_none")]
2047    pub issue_completed_auto_reply: Option<String>,
2048    /// Whether the issue canceled auto-reply is enabled.
2049    #[serde(default, skip_serializing_if = "Option::is_none")]
2050    pub issue_canceled_auto_reply_enabled: Option<bool>,
2051    /// Custom auto-reply message for issue canceled.
2052    #[serde(default, skip_serializing_if = "Option::is_none")]
2053    pub issue_canceled_auto_reply: Option<String>,
2054    /// Whether customer requests are enabled.
2055    #[serde(default, skip_serializing_if = "Option::is_none")]
2056    pub customer_requests_enabled: Option<bool>,
2057}
2058#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2059#[serde(rename_all = "camelCase")]
2060pub struct EmailUnsubscribeInput {
2061    /// Email type to unsubscribe from.
2062    #[serde(default, skip_serializing_if = "Option::is_none")]
2063    pub r#type: Option<String>,
2064    /// The user's email validation token.
2065    #[serde(default, skip_serializing_if = "Option::is_none")]
2066    pub token: Option<String>,
2067    /// The identifier of the user.
2068    #[serde(default, skip_serializing_if = "Option::is_none")]
2069    pub user_id: Option<String>,
2070}
2071#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2072#[serde(rename_all = "camelCase")]
2073pub struct EmailUserAccountAuthChallengeInput {
2074    /// The email for which to generate the magic login code.
2075    #[serde(default, skip_serializing_if = "Option::is_none")]
2076    pub email: Option<String>,
2077    /// Whether the login was requested from the desktop app.
2078    #[serde(default, skip_serializing_if = "Option::is_none")]
2079    pub is_desktop: Option<bool>,
2080    /// Auth code for the client initiating the sequence.
2081    #[serde(default, skip_serializing_if = "Option::is_none")]
2082    pub client_auth_code: Option<String>,
2083    /// The organization invite link to associate with this authentication.
2084    #[serde(default, skip_serializing_if = "Option::is_none")]
2085    pub invite_link: Option<String>,
2086    /// Whether to only return the login code. This is used by mobile apps to skip showing the login link.
2087    #[serde(default, skip_serializing_if = "Option::is_none")]
2088    pub login_code_only: Option<bool>,
2089    /// Response from the login challenge.
2090    #[serde(default, skip_serializing_if = "Option::is_none")]
2091    pub challenge_response: Option<String>,
2092}
2093#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2094#[serde(rename_all = "camelCase")]
2095pub struct EmojiCreateInput {
2096    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2097    #[serde(default, skip_serializing_if = "Option::is_none")]
2098    pub id: Option<String>,
2099    /// The name of the custom emoji.
2100    #[serde(default, skip_serializing_if = "Option::is_none")]
2101    pub name: Option<String>,
2102    /// The URL for the emoji.
2103    #[serde(default, skip_serializing_if = "Option::is_none")]
2104    pub url: Option<String>,
2105}
2106#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2107#[serde(rename_all = "camelCase")]
2108pub struct EntityExternalLinkCreateInput {
2109    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2110    #[serde(default, skip_serializing_if = "Option::is_none")]
2111    pub id: Option<String>,
2112    /// The URL of the link.
2113    #[serde(default, skip_serializing_if = "Option::is_none")]
2114    pub url: Option<String>,
2115    /// The label for the link.
2116    #[serde(default, skip_serializing_if = "Option::is_none")]
2117    pub label: Option<String>,
2118    /// The initiative associated with the link.
2119    #[serde(default, skip_serializing_if = "Option::is_none")]
2120    pub initiative_id: Option<String>,
2121    /// The project associated with the link.
2122    #[serde(default, skip_serializing_if = "Option::is_none")]
2123    pub project_id: Option<String>,
2124    /// `Internal` The team associated with the link.
2125    #[serde(default, skip_serializing_if = "Option::is_none")]
2126    pub team_id: Option<String>,
2127    /// `Internal` The release associated with the link.
2128    #[serde(default, skip_serializing_if = "Option::is_none")]
2129    pub release_id: Option<String>,
2130    /// `Internal` The cycle associated with the link.
2131    #[serde(default, skip_serializing_if = "Option::is_none")]
2132    pub cycle_id: Option<String>,
2133    /// `Internal` The resource folder containing the link.
2134    #[serde(default, skip_serializing_if = "Option::is_none")]
2135    pub resource_folder_id: Option<String>,
2136    /// The order of the item in the entities resources list.
2137    #[serde(default, skip_serializing_if = "Option::is_none")]
2138    pub sort_order: Option<f64>,
2139}
2140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2141#[serde(rename_all = "camelCase")]
2142pub struct EntityExternalLinkUpdateInput {
2143    /// The URL of the link.
2144    #[serde(default, skip_serializing_if = "Option::is_none")]
2145    pub url: Option<String>,
2146    /// The label for the link.
2147    #[serde(default, skip_serializing_if = "Option::is_none")]
2148    pub label: Option<String>,
2149    /// The order of the item in the entities resources list.
2150    #[serde(default, skip_serializing_if = "Option::is_none")]
2151    pub sort_order: Option<f64>,
2152    /// `Internal` The resource folder containing the link.
2153    #[serde(default, skip_serializing_if = "Option::is_none")]
2154    pub resource_folder_id: Option<String>,
2155}
2156/// Comparator for estimates.
2157#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2158#[serde(rename_all = "camelCase")]
2159pub struct EstimateComparator {
2160    /// Equals constraint.
2161    #[serde(default, skip_serializing_if = "Option::is_none")]
2162    pub eq: Option<f64>,
2163    /// Not-equals constraint.
2164    #[serde(default, skip_serializing_if = "Option::is_none")]
2165    pub neq: Option<f64>,
2166    /// In-array constraint.
2167    #[serde(default, skip_serializing_if = "Option::is_none")]
2168    pub r#in: Option<Vec<f64>>,
2169    /// Not-in-array constraint.
2170    #[serde(default, skip_serializing_if = "Option::is_none")]
2171    pub nin: Option<Vec<f64>>,
2172    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
2173    #[serde(default, skip_serializing_if = "Option::is_none")]
2174    pub null: Option<bool>,
2175    /// Less-than constraint. Matches any values that are less than the given value.
2176    #[serde(default, skip_serializing_if = "Option::is_none")]
2177    pub lt: Option<f64>,
2178    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
2179    #[serde(default, skip_serializing_if = "Option::is_none")]
2180    pub lte: Option<f64>,
2181    /// Greater-than constraint. Matches any values that are greater than the given value.
2182    #[serde(default, skip_serializing_if = "Option::is_none")]
2183    pub gt: Option<f64>,
2184    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
2185    #[serde(default, skip_serializing_if = "Option::is_none")]
2186    pub gte: Option<f64>,
2187    /// Compound filters, all of which need to be matched by the estimate.
2188    #[serde(default, skip_serializing_if = "Option::is_none")]
2189    pub or: Option<Vec<Box<NullableNumberComparator>>>,
2190    /// Compound filters, one of which need to be matched by the estimate.
2191    #[serde(default, skip_serializing_if = "Option::is_none")]
2192    pub and: Option<Vec<Box<NullableNumberComparator>>>,
2193}
2194/// Issue estimate sorting options.
2195#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2196#[serde(rename_all = "camelCase")]
2197pub struct EstimateSort {
2198    /// Whether nulls should be sorted first or last
2199    #[serde(default, skip_serializing_if = "Option::is_none")]
2200    pub nulls: Option<PaginationNulls>,
2201    /// The order for the individual sort
2202    #[serde(default, skip_serializing_if = "Option::is_none")]
2203    pub order: Option<PaginationSortOrder>,
2204}
2205#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2206#[serde(rename_all = "camelCase")]
2207pub struct FavoriteCreateInput {
2208    /// The identifier. If none is provided, the backend will generate one.
2209    #[serde(default, skip_serializing_if = "Option::is_none")]
2210    pub id: Option<String>,
2211    /// The name of the favorite folder.
2212    #[serde(default, skip_serializing_if = "Option::is_none")]
2213    pub folder_name: Option<String>,
2214    /// The parent folder of the favorite.
2215    #[serde(default, skip_serializing_if = "Option::is_none")]
2216    pub parent_id: Option<String>,
2217    /// The identifier of the issue to favorite. Can be a UUID or issue identifier (e.g., 'LIN-123').
2218    #[serde(default, skip_serializing_if = "Option::is_none")]
2219    pub issue_id: Option<String>,
2220    /// The identifier of the facet to favorite.
2221    #[serde(default, skip_serializing_if = "Option::is_none")]
2222    pub facet_id: Option<String>,
2223    /// The identifier of the project to favorite.
2224    #[serde(default, skip_serializing_if = "Option::is_none")]
2225    pub project_id: Option<String>,
2226    /// The tab of the project to favorite.
2227    #[serde(default, skip_serializing_if = "Option::is_none")]
2228    pub project_tab: Option<ProjectTab>,
2229    /// The type of the predefined view to favorite.
2230    #[serde(default, skip_serializing_if = "Option::is_none")]
2231    pub predefined_view_type: Option<String>,
2232    /// The identifier of team for the predefined view to favorite.
2233    #[serde(default, skip_serializing_if = "Option::is_none")]
2234    pub predefined_view_team_id: Option<String>,
2235    /// The identifier of the cycle to favorite.
2236    #[serde(default, skip_serializing_if = "Option::is_none")]
2237    pub cycle_id: Option<String>,
2238    /// The identifier of the custom view to favorite.
2239    #[serde(default, skip_serializing_if = "Option::is_none")]
2240    pub custom_view_id: Option<String>,
2241    /// The identifier of the document to favorite.
2242    #[serde(default, skip_serializing_if = "Option::is_none")]
2243    pub document_id: Option<String>,
2244    /// `INTERNAL` The identifier of the initiative to favorite.
2245    #[serde(default, skip_serializing_if = "Option::is_none")]
2246    pub initiative_id: Option<String>,
2247    /// The tab of the initiative to favorite.
2248    #[serde(default, skip_serializing_if = "Option::is_none")]
2249    pub initiative_tab: Option<InitiativeTab>,
2250    /// The identifier of the label to favorite.
2251    #[serde(default, skip_serializing_if = "Option::is_none")]
2252    pub label_id: Option<String>,
2253    /// The identifier of the label to favorite.
2254    #[serde(default, skip_serializing_if = "Option::is_none")]
2255    pub project_label_id: Option<String>,
2256    /// The identifier of the user to favorite.
2257    #[serde(default, skip_serializing_if = "Option::is_none")]
2258    pub user_id: Option<String>,
2259    /// The position of the item in the favorites list.
2260    #[serde(default, skip_serializing_if = "Option::is_none")]
2261    pub sort_order: Option<f64>,
2262    /// The identifier of the customer to favorite.
2263    #[serde(default, skip_serializing_if = "Option::is_none")]
2264    pub customer_id: Option<String>,
2265    /// The identifier of the dashboard to favorite.
2266    #[serde(default, skip_serializing_if = "Option::is_none")]
2267    pub dashboard_id: Option<String>,
2268    /// The identifier of the pull request to favorite.
2269    #[serde(default, skip_serializing_if = "Option::is_none")]
2270    pub pull_request_id: Option<String>,
2271    /// `ALPHA` The identifier of the release to favorite.
2272    #[serde(default, skip_serializing_if = "Option::is_none")]
2273    pub release_id: Option<String>,
2274    /// `ALPHA` The identifier of the release pipeline to favorite.
2275    #[serde(default, skip_serializing_if = "Option::is_none")]
2276    pub release_pipeline_id: Option<String>,
2277}
2278#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2279#[serde(rename_all = "camelCase")]
2280pub struct FavoriteUpdateInput {
2281    /// The position of the item in the favorites list.
2282    #[serde(default, skip_serializing_if = "Option::is_none")]
2283    pub sort_order: Option<f64>,
2284    /// The identifier (in UUID v4 format) of the folder to move the favorite under.
2285    #[serde(default, skip_serializing_if = "Option::is_none")]
2286    pub parent_id: Option<String>,
2287    /// The name of the favorite folder.
2288    #[serde(default, skip_serializing_if = "Option::is_none")]
2289    pub folder_name: Option<String>,
2290}
2291/// Feed item filtering options
2292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2293#[serde(rename_all = "camelCase")]
2294pub struct FeedItemFilter {
2295    /// Comparator for the identifier.
2296    #[serde(default, skip_serializing_if = "Option::is_none")]
2297    pub id: Option<Box<IDComparator>>,
2298    /// Comparator for the created at date.
2299    #[serde(default, skip_serializing_if = "Option::is_none")]
2300    pub created_at: Option<Box<DateComparator>>,
2301    /// Comparator for the updated at date.
2302    #[serde(default, skip_serializing_if = "Option::is_none")]
2303    pub updated_at: Option<Box<DateComparator>>,
2304    /// Filters that the feed item author must satisfy.
2305    #[serde(default, skip_serializing_if = "Option::is_none")]
2306    pub author: Option<Box<UserFilter>>,
2307    /// Comparator for the update type: initiative, project, team
2308    #[serde(default, skip_serializing_if = "Option::is_none")]
2309    pub update_type: Option<Box<StringComparator>>,
2310    /// Comparator for the project or initiative update health: onTrack, atRisk, offTrack
2311    #[serde(default, skip_serializing_if = "Option::is_none")]
2312    pub update_health: Option<Box<StringComparator>>,
2313    /// Filters that the feed item's project update must satisfy.
2314    #[serde(default, skip_serializing_if = "Option::is_none")]
2315    pub project_update: Option<Box<ProjectUpdateFilter>>,
2316    /// Filters that the related feed item initiatives must satisfy.
2317    #[serde(default, skip_serializing_if = "Option::is_none")]
2318    pub related_initiatives: Option<Box<InitiativeCollectionFilter>>,
2319    /// Filters that the related feed item team must satisfy.
2320    #[serde(default, skip_serializing_if = "Option::is_none")]
2321    pub related_teams: Option<Box<TeamCollectionFilter>>,
2322    /// Compound filters, all of which need to be matched by the feed item.
2323    #[serde(default, skip_serializing_if = "Option::is_none")]
2324    pub and: Option<Vec<Box<FeedItemFilter>>>,
2325    /// Compound filters, one of which need to be matched by the feed item.
2326    #[serde(default, skip_serializing_if = "Option::is_none")]
2327    pub or: Option<Vec<Box<FeedItemFilter>>>,
2328}
2329#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2330#[serde(rename_all = "camelCase")]
2331pub struct FrontSettingsInput {
2332    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
2333    #[serde(default, skip_serializing_if = "Option::is_none")]
2334    pub send_note_on_status_change: Option<bool>,
2335    /// Whether an internal message should be added when someone comments on an issue.
2336    #[serde(default, skip_serializing_if = "Option::is_none")]
2337    pub send_note_on_comment: Option<bool>,
2338    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
2339    #[serde(default, skip_serializing_if = "Option::is_none")]
2340    pub automate_ticket_reopening_on_completion: Option<bool>,
2341    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
2342    #[serde(default, skip_serializing_if = "Option::is_none")]
2343    pub automate_ticket_reopening_on_cancellation: Option<bool>,
2344    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
2345    #[serde(default, skip_serializing_if = "Option::is_none")]
2346    pub automate_ticket_reopening_on_comment: Option<bool>,
2347    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
2348    #[serde(default, skip_serializing_if = "Option::is_none")]
2349    pub disable_customer_requests_auto_creation: Option<bool>,
2350    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
2351    #[serde(default, skip_serializing_if = "Option::is_none")]
2352    pub automate_ticket_reopening_on_project_completion: Option<bool>,
2353    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
2354    #[serde(default, skip_serializing_if = "Option::is_none")]
2355    pub automate_ticket_reopening_on_project_cancellation: Option<bool>,
2356    /// Whether Linear Agent should be enabled for this integration.
2357    #[serde(default, skip_serializing_if = "Option::is_none")]
2358    pub enable_ai_intake: Option<bool>,
2359}
2360#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2361#[serde(rename_all = "camelCase")]
2362pub struct GitAutomationStateCreateInput {
2363    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2364    #[serde(default, skip_serializing_if = "Option::is_none")]
2365    pub id: Option<String>,
2366    /// The team associated with the automation state.
2367    #[serde(default, skip_serializing_if = "Option::is_none")]
2368    pub team_id: Option<String>,
2369    /// The associated workflow state. If null, will override default behaviour and take no action.
2370    #[serde(default, skip_serializing_if = "Option::is_none")]
2371    pub state_id: Option<String>,
2372    /// The associated target branch. If null, all branches are targeted.
2373    #[serde(default, skip_serializing_if = "Option::is_none")]
2374    pub target_branch_id: Option<String>,
2375    /// The event that triggers the automation.
2376    #[serde(default, skip_serializing_if = "Option::is_none")]
2377    pub event: Option<GitAutomationStates>,
2378}
2379#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2380#[serde(rename_all = "camelCase")]
2381pub struct GitAutomationStateUpdateInput {
2382    /// The associated workflow state.
2383    #[serde(default, skip_serializing_if = "Option::is_none")]
2384    pub state_id: Option<String>,
2385    /// The associated target branch. If null, all branches are targeted.
2386    #[serde(default, skip_serializing_if = "Option::is_none")]
2387    pub target_branch_id: Option<String>,
2388    /// The event that triggers the automation.
2389    #[serde(default, skip_serializing_if = "Option::is_none")]
2390    pub event: Option<GitAutomationStates>,
2391}
2392#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2393#[serde(rename_all = "camelCase")]
2394pub struct GitAutomationTargetBranchCreateInput {
2395    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2396    #[serde(default, skip_serializing_if = "Option::is_none")]
2397    pub id: Option<String>,
2398    /// The team associated with the Git target branch automation.
2399    #[serde(default, skip_serializing_if = "Option::is_none")]
2400    pub team_id: Option<String>,
2401    /// The target branch pattern.
2402    #[serde(default, skip_serializing_if = "Option::is_none")]
2403    pub branch_pattern: Option<String>,
2404    /// Whether the branch pattern is a regular expression.
2405    #[serde(default, skip_serializing_if = "Option::is_none")]
2406    pub is_regex: Option<bool>,
2407}
2408#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2409#[serde(rename_all = "camelCase")]
2410pub struct GitAutomationTargetBranchUpdateInput {
2411    /// The target branch pattern.
2412    #[serde(default, skip_serializing_if = "Option::is_none")]
2413    pub branch_pattern: Option<String>,
2414    /// Whether the branch pattern is a regular expression.
2415    #[serde(default, skip_serializing_if = "Option::is_none")]
2416    pub is_regex: Option<bool>,
2417}
2418#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2419#[serde(rename_all = "camelCase")]
2420pub struct GitHubImportSettingsInput {
2421    /// The GitHub organization's name.
2422    #[serde(default, skip_serializing_if = "Option::is_none")]
2423    pub org_login: Option<String>,
2424    /// The avatar URL for the GitHub organization.
2425    #[serde(default, skip_serializing_if = "Option::is_none")]
2426    pub org_avatar_url: Option<String>,
2427    /// The names of the repositories connected for the GitHub integration.
2428    #[serde(default, skip_serializing_if = "Option::is_none")]
2429    pub repositories: Option<Vec<Box<GitHubRepoInput>>>,
2430    /// A map storing all available issue labels per repository
2431    #[serde(default, skip_serializing_if = "Option::is_none")]
2432    pub labels: Option<serde_json::Value>,
2433    /// The type of Github org
2434    #[serde(default, skip_serializing_if = "Option::is_none")]
2435    pub org_type: Option<GithubOrgType>,
2436}
2437#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2438#[serde(rename_all = "camelCase")]
2439pub struct GitHubPersonalSettingsInput {
2440    /// The GitHub user's name.
2441    #[serde(default, skip_serializing_if = "Option::is_none")]
2442    pub login: Option<String>,
2443}
2444#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2445#[serde(rename_all = "camelCase")]
2446pub struct GitHubRepoInput {
2447    /// The GitHub repo id.
2448    #[serde(default, skip_serializing_if = "Option::is_none")]
2449    pub id: Option<f64>,
2450    /// The full name of the repository.
2451    #[serde(default, skip_serializing_if = "Option::is_none")]
2452    pub full_name: Option<String>,
2453    /// Whether the repository is archived.
2454    #[serde(default, skip_serializing_if = "Option::is_none")]
2455    pub archived: Option<bool>,
2456}
2457#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2458#[serde(rename_all = "camelCase")]
2459pub struct GitHubRepoMappingInput {
2460    /// The unique identifier for this mapping.
2461    #[serde(default, skip_serializing_if = "Option::is_none")]
2462    pub id: Option<String>,
2463    /// The Linear team id to map to the given project.
2464    #[serde(default, skip_serializing_if = "Option::is_none")]
2465    pub linear_team_id: Option<String>,
2466    /// The GitHub repo id.
2467    #[serde(default, skip_serializing_if = "Option::is_none")]
2468    pub git_hub_repo_id: Option<f64>,
2469    /// Labels to filter incoming GitHub issue creation by.
2470    #[serde(default, skip_serializing_if = "Option::is_none")]
2471    pub git_hub_labels: Option<Vec<String>>,
2472    /// Whether the sync for this mapping is bidirectional.
2473    #[serde(default, skip_serializing_if = "Option::is_none")]
2474    pub bidirectional: Option<bool>,
2475    /// Whether this mapping is the default one for issue creation.
2476    #[serde(default, skip_serializing_if = "Option::is_none")]
2477    pub default: Option<bool>,
2478}
2479#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2480#[serde(rename_all = "camelCase")]
2481pub struct GitHubSettingsInput {
2482    #[serde(default, skip_serializing_if = "Option::is_none")]
2483    pub pull_request_review_tool: Option<PullRequestReviewTool>,
2484    /// The avatar URL for the GitHub organization.
2485    #[serde(default, skip_serializing_if = "Option::is_none")]
2486    pub org_avatar_url: Option<String>,
2487    /// The GitHub organization's name.
2488    #[serde(default, skip_serializing_if = "Option::is_none")]
2489    pub org_login: Option<String>,
2490    /// The names of the repositories connected for the GitHub integration.
2491    #[serde(default, skip_serializing_if = "Option::is_none")]
2492    pub repositories: Option<Vec<Box<GitHubRepoInput>>>,
2493    /// Mapping of team to repository for syncing.
2494    #[serde(default, skip_serializing_if = "Option::is_none")]
2495    pub repositories_mapping: Option<Vec<Box<GitHubRepoMappingInput>>>,
2496    /// The type of Github org
2497    #[serde(default, skip_serializing_if = "Option::is_none")]
2498    pub org_type: Option<GithubOrgType>,
2499    /// Whether the integration has code access
2500    #[serde(default, skip_serializing_if = "Option::is_none")]
2501    pub code_access: Option<bool>,
2502}
2503#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2504#[serde(rename_all = "camelCase")]
2505pub struct GitLabSettingsInput {
2506    /// The self-hosted URL of the GitLab instance.
2507    #[serde(default, skip_serializing_if = "Option::is_none")]
2508    pub url: Option<String>,
2509    /// Whether the token is limited to a read-only scope.
2510    #[serde(default, skip_serializing_if = "Option::is_none")]
2511    pub readonly: Option<bool>,
2512    /// The ISO timestamp the GitLab access token expires.
2513    #[serde(default, skip_serializing_if = "Option::is_none")]
2514    pub expires_at: Option<String>,
2515}
2516#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2517#[serde(rename_all = "camelCase")]
2518pub struct GongRecordingImportConfigInput {
2519    /// The team ID to create issues in for imported recordings. Set to null to disable import.
2520    #[serde(default, skip_serializing_if = "Option::is_none")]
2521    pub team_id: Option<String>,
2522}
2523#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2524#[serde(rename_all = "camelCase")]
2525pub struct GongSettingsInput {
2526    /// Configuration for recording import.
2527    #[serde(default, skip_serializing_if = "Option::is_none")]
2528    pub import_config: Option<Box<GongRecordingImportConfigInput>>,
2529}
2530#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2531#[serde(rename_all = "camelCase")]
2532pub struct GoogleSheetsExportSettings {
2533    /// Whether the export is enabled.
2534    #[serde(default, skip_serializing_if = "Option::is_none")]
2535    pub enabled: Option<bool>,
2536    /// The ID of the exported Google Sheet.
2537    #[serde(default, skip_serializing_if = "Option::is_none")]
2538    pub spreadsheet_id: Option<String>,
2539    /// The URL of the exported Google Sheet.
2540    #[serde(default, skip_serializing_if = "Option::is_none")]
2541    pub spreadsheet_url: Option<String>,
2542    /// The ID of the target sheet (tab) within the Google Sheet.
2543    #[serde(default, skip_serializing_if = "Option::is_none")]
2544    pub sheet_id: Option<f64>,
2545    /// The date of the most recent export.
2546    #[serde(default, skip_serializing_if = "Option::is_none")]
2547    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2548}
2549#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2550#[serde(rename_all = "camelCase")]
2551pub struct GoogleSheetsSettingsInput {
2552    /// `Deprecated` The ID of the exported Google Sheet.
2553    #[serde(default, skip_serializing_if = "Option::is_none")]
2554    pub spreadsheet_id: Option<String>,
2555    /// `Deprecated` The URL of the exported Google Sheet.
2556    #[serde(default, skip_serializing_if = "Option::is_none")]
2557    pub spreadsheet_url: Option<String>,
2558    /// `Deprecated` The ID of the target sheet (tab) within the Google Sheet.
2559    #[serde(default, skip_serializing_if = "Option::is_none")]
2560    pub sheet_id: Option<f64>,
2561    /// `Deprecated` The date of the most recent export.
2562    #[serde(default, skip_serializing_if = "Option::is_none")]
2563    pub updated_issues_at: Option<chrono::DateTime<chrono::Utc>>,
2564    /// The export settings for issues.
2565    #[serde(default, skip_serializing_if = "Option::is_none")]
2566    pub issue: Option<Box<GoogleSheetsExportSettings>>,
2567    /// The export settings for projects.
2568    #[serde(default, skip_serializing_if = "Option::is_none")]
2569    pub project: Option<Box<GoogleSheetsExportSettings>>,
2570    /// The export settings for initiatives.
2571    #[serde(default, skip_serializing_if = "Option::is_none")]
2572    pub initiative: Option<Box<GoogleSheetsExportSettings>>,
2573}
2574#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2575#[serde(rename_all = "camelCase")]
2576pub struct GoogleUserAccountAuthInput {
2577    /// Code returned from Google's OAuth flow.
2578    #[serde(default, skip_serializing_if = "Option::is_none")]
2579    pub code: Option<String>,
2580    /// The URI to redirect the user to.
2581    #[serde(default, skip_serializing_if = "Option::is_none")]
2582    pub redirect_uri: Option<String>,
2583    /// The timezone of the user's browser.
2584    #[serde(default, skip_serializing_if = "Option::is_none")]
2585    pub timezone: Option<String>,
2586    /// An optional invite link for an organization used to populate available organizations.
2587    #[serde(default, skip_serializing_if = "Option::is_none")]
2588    pub invite_link: Option<String>,
2589    /// An optional parameter to disable new user signup and force login. Default: false.
2590    #[serde(default, skip_serializing_if = "Option::is_none")]
2591    pub disallow_signup: Option<bool>,
2592}
2593/// Comparator for identifiers.
2594#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2595#[serde(rename_all = "camelCase")]
2596pub struct IDComparator {
2597    /// Equals constraint.
2598    #[serde(default, skip_serializing_if = "Option::is_none")]
2599    pub eq: Option<String>,
2600    /// Not-equals constraint.
2601    #[serde(default, skip_serializing_if = "Option::is_none")]
2602    pub neq: Option<String>,
2603    /// In-array constraint.
2604    #[serde(default, skip_serializing_if = "Option::is_none")]
2605    pub r#in: Option<Vec<String>>,
2606    /// Not-in-array constraint.
2607    #[serde(default, skip_serializing_if = "Option::is_none")]
2608    pub nin: Option<Vec<String>>,
2609}
2610#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2611#[serde(rename_all = "camelCase")]
2612pub struct InheritanceEntityMapping {
2613    /// Mapping of the WorkflowState ID to the new WorkflowState ID.
2614    #[serde(default, skip_serializing_if = "Option::is_none")]
2615    pub workflow_states: Option<serde_json::Value>,
2616    /// Mapping of the IssueLabel ID to the new IssueLabel name.
2617    #[serde(default, skip_serializing_if = "Option::is_none")]
2618    pub issue_labels: Option<serde_json::Value>,
2619}
2620/// Initiative collection filtering options.
2621#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2622#[serde(rename_all = "camelCase")]
2623pub struct InitiativeCollectionFilter {
2624    /// Comparator for the identifier.
2625    #[serde(default, skip_serializing_if = "Option::is_none")]
2626    pub id: Option<Box<IDComparator>>,
2627    /// Comparator for the created at date.
2628    #[serde(default, skip_serializing_if = "Option::is_none")]
2629    pub created_at: Option<Box<DateComparator>>,
2630    /// Comparator for the updated at date.
2631    #[serde(default, skip_serializing_if = "Option::is_none")]
2632    pub updated_at: Option<Box<DateComparator>>,
2633    /// Comparator for the initiative name.
2634    #[serde(default, skip_serializing_if = "Option::is_none")]
2635    pub name: Option<Box<StringComparator>>,
2636    /// Comparator for the initiative slug ID.
2637    #[serde(default, skip_serializing_if = "Option::is_none")]
2638    pub slug_id: Option<Box<StringComparator>>,
2639    /// Filters that the initiative creator must satisfy.
2640    #[serde(default, skip_serializing_if = "Option::is_none")]
2641    pub creator: Option<Box<NullableUserFilter>>,
2642    /// Comparator for the initiative status: Planned, Active, Completed
2643    #[serde(default, skip_serializing_if = "Option::is_none")]
2644    pub status: Option<Box<StringComparator>>,
2645    /// Filters that the initiative teams must satisfy.
2646    #[serde(default, skip_serializing_if = "Option::is_none")]
2647    pub teams: Option<Box<TeamCollectionFilter>>,
2648    /// Filters that the initiative owner must satisfy.
2649    #[serde(default, skip_serializing_if = "Option::is_none")]
2650    pub owner: Option<Box<NullableUserFilter>>,
2651    /// Comparator for the initiative target date.
2652    #[serde(default, skip_serializing_if = "Option::is_none")]
2653    pub target_date: Option<Box<NullableDateComparator>>,
2654    /// Comparator for the initiative health: onTrack, atRisk, offTrack
2655    #[serde(default, skip_serializing_if = "Option::is_none")]
2656    pub health: Option<Box<StringComparator>>,
2657    /// Comparator for the initiative health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
2658    #[serde(default, skip_serializing_if = "Option::is_none")]
2659    pub health_with_age: Option<Box<StringComparator>>,
2660    /// Comparator for the initiative activity type.
2661    #[serde(default, skip_serializing_if = "Option::is_none")]
2662    pub activity_type: Option<Box<StringComparator>>,
2663    /// Filters that the initiative must be an ancestor of.
2664    #[serde(default, skip_serializing_if = "Option::is_none")]
2665    pub ancestors: Option<Box<InitiativeCollectionFilter>>,
2666    /// Compound filters, all of which need to be matched by the initiative.
2667    #[serde(default, skip_serializing_if = "Option::is_none")]
2668    pub and: Option<Vec<Box<InitiativeCollectionFilter>>>,
2669    /// Compound filters, one of which need to be matched by the initiative.
2670    #[serde(default, skip_serializing_if = "Option::is_none")]
2671    pub or: Option<Vec<Box<InitiativeCollectionFilter>>>,
2672    /// Filters that needs to be matched by some initiatives.
2673    #[serde(default, skip_serializing_if = "Option::is_none")]
2674    pub some: Option<Box<InitiativeFilter>>,
2675    /// Filters that needs to be matched by all initiatives.
2676    #[serde(default, skip_serializing_if = "Option::is_none")]
2677    pub every: Option<Box<InitiativeFilter>>,
2678    /// Comparator for the collection length.
2679    #[serde(default, skip_serializing_if = "Option::is_none")]
2680    pub length: Option<Box<NumberComparator>>,
2681}
2682/// The properties of the initiative to create.
2683#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2684#[serde(rename_all = "camelCase")]
2685pub struct InitiativeCreateInput {
2686    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2687    #[serde(default, skip_serializing_if = "Option::is_none")]
2688    pub id: Option<String>,
2689    /// The name of the initiative.
2690    #[serde(default, skip_serializing_if = "Option::is_none")]
2691    pub name: Option<String>,
2692    /// The description of the initiative.
2693    #[serde(default, skip_serializing_if = "Option::is_none")]
2694    pub description: Option<String>,
2695    /// The owner of the initiative.
2696    #[serde(default, skip_serializing_if = "Option::is_none")]
2697    pub owner_id: Option<String>,
2698    /// The sort order of the initiative within the organization.
2699    #[serde(default, skip_serializing_if = "Option::is_none")]
2700    pub sort_order: Option<f64>,
2701    /// The initiative's color.
2702    #[serde(default, skip_serializing_if = "Option::is_none")]
2703    pub color: Option<String>,
2704    /// The initiative's icon.
2705    #[serde(default, skip_serializing_if = "Option::is_none")]
2706    pub icon: Option<String>,
2707    /// The initiative's status.
2708    #[serde(default, skip_serializing_if = "Option::is_none")]
2709    pub status: Option<InitiativeStatus>,
2710    /// The estimated completion date of the initiative.
2711    #[serde(default, skip_serializing_if = "Option::is_none")]
2712    pub target_date: Option<chrono::NaiveDate>,
2713    /// The resolution of the initiative's estimated completion date.
2714    #[serde(default, skip_serializing_if = "Option::is_none")]
2715    pub target_date_resolution: Option<DateResolutionType>,
2716    /// The initiative's content in markdown format.
2717    #[serde(default, skip_serializing_if = "Option::is_none")]
2718    pub content: Option<String>,
2719}
2720/// Initiative creation date sorting options.
2721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2722#[serde(rename_all = "camelCase")]
2723pub struct InitiativeCreatedAtSort {
2724    /// Whether nulls should be sorted first or last
2725    #[serde(default, skip_serializing_if = "Option::is_none")]
2726    pub nulls: Option<PaginationNulls>,
2727    /// The order for the individual sort
2728    #[serde(default, skip_serializing_if = "Option::is_none")]
2729    pub order: Option<PaginationSortOrder>,
2730}
2731/// Initiative filtering options.
2732#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2733#[serde(rename_all = "camelCase")]
2734pub struct InitiativeFilter {
2735    /// Comparator for the identifier.
2736    #[serde(default, skip_serializing_if = "Option::is_none")]
2737    pub id: Option<Box<IDComparator>>,
2738    /// Comparator for the created at date.
2739    #[serde(default, skip_serializing_if = "Option::is_none")]
2740    pub created_at: Option<Box<DateComparator>>,
2741    /// Comparator for the updated at date.
2742    #[serde(default, skip_serializing_if = "Option::is_none")]
2743    pub updated_at: Option<Box<DateComparator>>,
2744    /// Comparator for the initiative name.
2745    #[serde(default, skip_serializing_if = "Option::is_none")]
2746    pub name: Option<Box<StringComparator>>,
2747    /// Comparator for the initiative slug ID.
2748    #[serde(default, skip_serializing_if = "Option::is_none")]
2749    pub slug_id: Option<Box<StringComparator>>,
2750    /// Filters that the initiative creator must satisfy.
2751    #[serde(default, skip_serializing_if = "Option::is_none")]
2752    pub creator: Option<Box<NullableUserFilter>>,
2753    /// Comparator for the initiative status: Planned, Active, Completed
2754    #[serde(default, skip_serializing_if = "Option::is_none")]
2755    pub status: Option<Box<StringComparator>>,
2756    /// Filters that the initiative teams must satisfy.
2757    #[serde(default, skip_serializing_if = "Option::is_none")]
2758    pub teams: Option<Box<TeamCollectionFilter>>,
2759    /// Filters that the initiative owner must satisfy.
2760    #[serde(default, skip_serializing_if = "Option::is_none")]
2761    pub owner: Option<Box<NullableUserFilter>>,
2762    /// Comparator for the initiative target date.
2763    #[serde(default, skip_serializing_if = "Option::is_none")]
2764    pub target_date: Option<Box<NullableDateComparator>>,
2765    /// Comparator for the initiative health: onTrack, atRisk, offTrack
2766    #[serde(default, skip_serializing_if = "Option::is_none")]
2767    pub health: Option<Box<StringComparator>>,
2768    /// Comparator for the initiative health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
2769    #[serde(default, skip_serializing_if = "Option::is_none")]
2770    pub health_with_age: Option<Box<StringComparator>>,
2771    /// Comparator for the initiative activity type.
2772    #[serde(default, skip_serializing_if = "Option::is_none")]
2773    pub activity_type: Option<Box<StringComparator>>,
2774    /// Filters that the initiative must be an ancestor of.
2775    #[serde(default, skip_serializing_if = "Option::is_none")]
2776    pub ancestors: Option<Box<InitiativeCollectionFilter>>,
2777    /// Compound filters, all of which need to be matched by the initiative.
2778    #[serde(default, skip_serializing_if = "Option::is_none")]
2779    pub and: Option<Vec<Box<InitiativeFilter>>>,
2780    /// Compound filters, one of which need to be matched by the initiative.
2781    #[serde(default, skip_serializing_if = "Option::is_none")]
2782    pub or: Option<Vec<Box<InitiativeFilter>>>,
2783}
2784/// Initiative health sorting options.
2785#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2786#[serde(rename_all = "camelCase")]
2787pub struct InitiativeHealthSort {
2788    /// Whether nulls should be sorted first or last
2789    #[serde(default, skip_serializing_if = "Option::is_none")]
2790    pub nulls: Option<PaginationNulls>,
2791    /// The order for the individual sort
2792    #[serde(default, skip_serializing_if = "Option::is_none")]
2793    pub order: Option<PaginationSortOrder>,
2794}
2795/// Initiative health update date sorting options.
2796#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2797#[serde(rename_all = "camelCase")]
2798pub struct InitiativeHealthUpdatedAtSort {
2799    /// Whether nulls should be sorted first or last
2800    #[serde(default, skip_serializing_if = "Option::is_none")]
2801    pub nulls: Option<PaginationNulls>,
2802    /// The order for the individual sort
2803    #[serde(default, skip_serializing_if = "Option::is_none")]
2804    pub order: Option<PaginationSortOrder>,
2805}
2806/// Initiative manual sorting options.
2807#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2808#[serde(rename_all = "camelCase")]
2809pub struct InitiativeManualSort {
2810    /// Whether nulls should be sorted first or last
2811    #[serde(default, skip_serializing_if = "Option::is_none")]
2812    pub nulls: Option<PaginationNulls>,
2813    /// The order for the individual sort
2814    #[serde(default, skip_serializing_if = "Option::is_none")]
2815    pub order: Option<PaginationSortOrder>,
2816}
2817/// Initiative name sorting options.
2818#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2819#[serde(rename_all = "camelCase")]
2820pub struct InitiativeNameSort {
2821    /// Whether nulls should be sorted first or last
2822    #[serde(default, skip_serializing_if = "Option::is_none")]
2823    pub nulls: Option<PaginationNulls>,
2824    /// The order for the individual sort
2825    #[serde(default, skip_serializing_if = "Option::is_none")]
2826    pub order: Option<PaginationSortOrder>,
2827}
2828/// Initiative owner sorting options.
2829#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2830#[serde(rename_all = "camelCase")]
2831pub struct InitiativeOwnerSort {
2832    /// Whether nulls should be sorted first or last
2833    #[serde(default, skip_serializing_if = "Option::is_none")]
2834    pub nulls: Option<PaginationNulls>,
2835    /// The order for the individual sort
2836    #[serde(default, skip_serializing_if = "Option::is_none")]
2837    pub order: Option<PaginationSortOrder>,
2838}
2839#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2840#[serde(rename_all = "camelCase")]
2841pub struct InitiativeRelationCreateInput {
2842    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2843    #[serde(default, skip_serializing_if = "Option::is_none")]
2844    pub id: Option<String>,
2845    /// The identifier of the parent initiative.
2846    #[serde(default, skip_serializing_if = "Option::is_none")]
2847    pub initiative_id: Option<String>,
2848    /// The identifier of the child initiative.
2849    #[serde(default, skip_serializing_if = "Option::is_none")]
2850    pub related_initiative_id: Option<String>,
2851    /// The sort order of the initiative relation.
2852    #[serde(default, skip_serializing_if = "Option::is_none")]
2853    pub sort_order: Option<f64>,
2854}
2855/// The properties of the initiativeRelation to update.
2856#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2857#[serde(rename_all = "camelCase")]
2858pub struct InitiativeRelationUpdateInput {
2859    /// The sort order of the initiative relation.
2860    #[serde(default, skip_serializing_if = "Option::is_none")]
2861    pub sort_order: Option<f64>,
2862}
2863/// Initiative sorting options.
2864#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2865#[serde(rename_all = "camelCase")]
2866pub struct InitiativeSortInput {
2867    /// Sort by initiative name.
2868    #[serde(default, skip_serializing_if = "Option::is_none")]
2869    pub name: Option<Box<InitiativeNameSort>>,
2870    /// Sort by manual order.
2871    #[serde(default, skip_serializing_if = "Option::is_none")]
2872    pub manual: Option<Box<InitiativeManualSort>>,
2873    /// Sort by initiative update date.
2874    #[serde(default, skip_serializing_if = "Option::is_none")]
2875    pub updated_at: Option<Box<InitiativeUpdatedAtSort>>,
2876    /// Sort by initiative creation date.
2877    #[serde(default, skip_serializing_if = "Option::is_none")]
2878    pub created_at: Option<Box<InitiativeCreatedAtSort>>,
2879    /// Sort by initiative target date.
2880    #[serde(default, skip_serializing_if = "Option::is_none")]
2881    pub target_date: Option<Box<InitiativeTargetDateSort>>,
2882    /// Sort by initiative health status.
2883    #[serde(default, skip_serializing_if = "Option::is_none")]
2884    pub health: Option<Box<InitiativeHealthSort>>,
2885    /// Sort by initiative health update date.
2886    #[serde(default, skip_serializing_if = "Option::is_none")]
2887    pub health_updated_at: Option<Box<InitiativeHealthUpdatedAtSort>>,
2888    /// Sort by initiative owner name.
2889    #[serde(default, skip_serializing_if = "Option::is_none")]
2890    pub owner: Option<Box<InitiativeOwnerSort>>,
2891}
2892/// Initiative target date sorting options.
2893#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2894#[serde(rename_all = "camelCase")]
2895pub struct InitiativeTargetDateSort {
2896    /// Whether nulls should be sorted first or last
2897    #[serde(default, skip_serializing_if = "Option::is_none")]
2898    pub nulls: Option<PaginationNulls>,
2899    /// The order for the individual sort
2900    #[serde(default, skip_serializing_if = "Option::is_none")]
2901    pub order: Option<PaginationSortOrder>,
2902}
2903/// The properties of the initiativeToProject to create.
2904#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2905#[serde(rename_all = "camelCase")]
2906pub struct InitiativeToProjectCreateInput {
2907    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2908    #[serde(default, skip_serializing_if = "Option::is_none")]
2909    pub id: Option<String>,
2910    /// The identifier of the project.
2911    #[serde(default, skip_serializing_if = "Option::is_none")]
2912    pub project_id: Option<String>,
2913    /// The identifier of the initiative.
2914    #[serde(default, skip_serializing_if = "Option::is_none")]
2915    pub initiative_id: Option<String>,
2916    /// The sort order for the project within its organization.
2917    #[serde(default, skip_serializing_if = "Option::is_none")]
2918    pub sort_order: Option<f64>,
2919}
2920/// The properties of the initiativeToProject to update.
2921#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2922#[serde(rename_all = "camelCase")]
2923pub struct InitiativeToProjectUpdateInput {
2924    /// The sort order for the project within its organization.
2925    #[serde(default, skip_serializing_if = "Option::is_none")]
2926    pub sort_order: Option<f64>,
2927}
2928#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2929#[serde(rename_all = "camelCase")]
2930pub struct InitiativeUpdateCreateInput {
2931    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
2932    #[serde(default, skip_serializing_if = "Option::is_none")]
2933    pub id: Option<String>,
2934    /// The content of the update in markdown format.
2935    #[serde(default, skip_serializing_if = "Option::is_none")]
2936    pub body: Option<String>,
2937    /// `Internal` The content of the update as a Prosemirror document.
2938    #[serde(default, skip_serializing_if = "Option::is_none")]
2939    pub body_data: Option<serde_json::Value>,
2940    /// The health of the initiative at the time of the update.
2941    #[serde(default, skip_serializing_if = "Option::is_none")]
2942    pub health: Option<InitiativeUpdateHealthType>,
2943    /// The initiative to associate the update with.
2944    #[serde(default, skip_serializing_if = "Option::is_none")]
2945    pub initiative_id: Option<String>,
2946    /// Whether the diff between the current update and the previous one should be hidden.
2947    #[serde(default, skip_serializing_if = "Option::is_none")]
2948    pub is_diff_hidden: Option<bool>,
2949}
2950/// Options for filtering initiative updates.
2951#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2952#[serde(rename_all = "camelCase")]
2953pub struct InitiativeUpdateFilter {
2954    /// Comparator for the identifier.
2955    #[serde(default, skip_serializing_if = "Option::is_none")]
2956    pub id: Option<Box<IDComparator>>,
2957    /// Comparator for the created at date.
2958    #[serde(default, skip_serializing_if = "Option::is_none")]
2959    pub created_at: Option<Box<DateComparator>>,
2960    /// Comparator for the updated at date.
2961    #[serde(default, skip_serializing_if = "Option::is_none")]
2962    pub updated_at: Option<Box<DateComparator>>,
2963    /// Filters that the initiative update creator must satisfy.
2964    #[serde(default, skip_serializing_if = "Option::is_none")]
2965    pub user: Option<Box<UserFilter>>,
2966    /// Filters that the initiative update initiative must satisfy.
2967    #[serde(default, skip_serializing_if = "Option::is_none")]
2968    pub initiative: Option<Box<InitiativeFilter>>,
2969    /// Filters that the initiative updates reactions must satisfy.
2970    #[serde(default, skip_serializing_if = "Option::is_none")]
2971    pub reactions: Option<Box<ReactionCollectionFilter>>,
2972    /// Compound filters, all of which need to be matched by the InitiativeUpdate.
2973    #[serde(default, skip_serializing_if = "Option::is_none")]
2974    pub and: Option<Vec<Box<InitiativeUpdateFilter>>>,
2975    /// Compound filters, one of which need to be matched by the InitiativeUpdate.
2976    #[serde(default, skip_serializing_if = "Option::is_none")]
2977    pub or: Option<Vec<Box<InitiativeUpdateFilter>>>,
2978}
2979/// The properties of the initiative to update.
2980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2981#[serde(rename_all = "camelCase")]
2982pub struct InitiativeUpdateInput {
2983    /// The name of the initiative.
2984    #[serde(default, skip_serializing_if = "Option::is_none")]
2985    pub name: Option<String>,
2986    /// The description of the initiative.
2987    #[serde(default, skip_serializing_if = "Option::is_none")]
2988    pub description: Option<String>,
2989    /// The owner of the initiative.
2990    #[serde(default, skip_serializing_if = "Option::is_none")]
2991    pub owner_id: Option<String>,
2992    /// The sort order of the initiative within the organization.
2993    #[serde(default, skip_serializing_if = "Option::is_none")]
2994    pub sort_order: Option<f64>,
2995    /// The initiative's color.
2996    #[serde(default, skip_serializing_if = "Option::is_none")]
2997    pub color: Option<String>,
2998    /// The initiative's icon.
2999    #[serde(default, skip_serializing_if = "Option::is_none")]
3000    pub icon: Option<String>,
3001    /// The estimated completion date of the initiative.
3002    #[serde(default, skip_serializing_if = "Option::is_none")]
3003    pub target_date: Option<chrono::NaiveDate>,
3004    /// The initiative's status.
3005    #[serde(default, skip_serializing_if = "Option::is_none")]
3006    pub status: Option<InitiativeStatus>,
3007    /// The resolution of the initiative's estimated completion date.
3008    #[serde(default, skip_serializing_if = "Option::is_none")]
3009    pub target_date_resolution: Option<DateResolutionType>,
3010    /// Whether the initiative has been trashed.
3011    #[serde(default, skip_serializing_if = "Option::is_none")]
3012    pub trashed: Option<bool>,
3013    /// The initiative's content in markdown format.
3014    #[serde(default, skip_serializing_if = "Option::is_none")]
3015    pub content: Option<String>,
3016    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
3017    #[serde(default, skip_serializing_if = "Option::is_none")]
3018    pub update_reminder_frequency_in_weeks: Option<f64>,
3019    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
3020    #[serde(default, skip_serializing_if = "Option::is_none")]
3021    pub update_reminder_frequency: Option<f64>,
3022    /// The frequency resolution.
3023    #[serde(default, skip_serializing_if = "Option::is_none")]
3024    pub frequency_resolution: Option<FrequencyResolutionType>,
3025    /// The day at which to prompt for updates.
3026    #[serde(default, skip_serializing_if = "Option::is_none")]
3027    pub update_reminders_day: Option<Day>,
3028    /// The hour at which to prompt for updates.
3029    #[serde(default, skip_serializing_if = "Option::is_none")]
3030    pub update_reminders_hour: Option<i64>,
3031}
3032#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3033#[serde(rename_all = "camelCase")]
3034pub struct InitiativeUpdateUpdateInput {
3035    /// The content of the update in markdown format.
3036    #[serde(default, skip_serializing_if = "Option::is_none")]
3037    pub body: Option<String>,
3038    /// The content of the update as a Prosemirror document.
3039    #[serde(default, skip_serializing_if = "Option::is_none")]
3040    pub body_data: Option<serde_json::Value>,
3041    /// The health of the initiative at the time of the update.
3042    #[serde(default, skip_serializing_if = "Option::is_none")]
3043    pub health: Option<InitiativeUpdateHealthType>,
3044    /// Whether the diff between the current update and the previous one should be hidden.
3045    #[serde(default, skip_serializing_if = "Option::is_none")]
3046    pub is_diff_hidden: Option<bool>,
3047}
3048/// Initiative update date sorting options.
3049#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3050#[serde(rename_all = "camelCase")]
3051pub struct InitiativeUpdatedAtSort {
3052    /// Whether nulls should be sorted first or last
3053    #[serde(default, skip_serializing_if = "Option::is_none")]
3054    pub nulls: Option<PaginationNulls>,
3055    /// The order for the individual sort
3056    #[serde(default, skip_serializing_if = "Option::is_none")]
3057    pub order: Option<PaginationSortOrder>,
3058}
3059#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3060#[serde(rename_all = "camelCase")]
3061pub struct IntegrationCustomerDataAttributesRefreshInput {
3062    /// The integration service to refresh customer data attributes from.
3063    #[serde(default, skip_serializing_if = "Option::is_none")]
3064    pub service: Option<String>,
3065}
3066#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3067#[serde(rename_all = "camelCase")]
3068pub struct IntegrationRequestInput {
3069    /// Email associated with the request.
3070    #[serde(default, skip_serializing_if = "Option::is_none")]
3071    pub email: Option<String>,
3072    /// Name of the requested integration.
3073    #[serde(default, skip_serializing_if = "Option::is_none")]
3074    pub name: Option<String>,
3075}
3076#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3077#[serde(rename_all = "camelCase")]
3078pub struct IntegrationSettingsInput {
3079    #[serde(default, skip_serializing_if = "Option::is_none")]
3080    pub slack: Option<Box<SlackSettingsInput>>,
3081    #[serde(default, skip_serializing_if = "Option::is_none")]
3082    pub slack_asks: Option<Box<SlackAsksSettingsInput>>,
3083    #[serde(default, skip_serializing_if = "Option::is_none")]
3084    pub slack_post: Option<Box<SlackPostSettingsInput>>,
3085    #[serde(default, skip_serializing_if = "Option::is_none")]
3086    pub slack_project_post: Option<Box<SlackPostSettingsInput>>,
3087    #[serde(default, skip_serializing_if = "Option::is_none")]
3088    pub slack_initiative_post: Option<Box<SlackPostSettingsInput>>,
3089    #[serde(default, skip_serializing_if = "Option::is_none")]
3090    pub slack_custom_view_notifications: Option<Box<SlackPostSettingsInput>>,
3091    #[serde(default, skip_serializing_if = "Option::is_none")]
3092    pub slack_org_project_updates_post: Option<Box<SlackPostSettingsInput>>,
3093    #[serde(default, skip_serializing_if = "Option::is_none")]
3094    pub slack_org_initiative_updates_post: Option<Box<SlackPostSettingsInput>>,
3095    #[serde(default, skip_serializing_if = "Option::is_none")]
3096    pub google_sheets: Option<Box<GoogleSheetsSettingsInput>>,
3097    #[serde(default, skip_serializing_if = "Option::is_none")]
3098    pub git_hub: Option<Box<GitHubSettingsInput>>,
3099    #[serde(default, skip_serializing_if = "Option::is_none")]
3100    pub git_hub_import: Option<Box<GitHubImportSettingsInput>>,
3101    #[serde(default, skip_serializing_if = "Option::is_none")]
3102    pub git_hub_personal: Option<Box<GitHubPersonalSettingsInput>>,
3103    #[serde(default, skip_serializing_if = "Option::is_none")]
3104    pub git_lab: Option<Box<GitLabSettingsInput>>,
3105    #[serde(default, skip_serializing_if = "Option::is_none")]
3106    pub sentry: Option<Box<SentrySettingsInput>>,
3107    #[serde(default, skip_serializing_if = "Option::is_none")]
3108    pub zendesk: Option<Box<ZendeskSettingsInput>>,
3109    #[serde(default, skip_serializing_if = "Option::is_none")]
3110    pub intercom: Option<Box<IntercomSettingsInput>>,
3111    #[serde(default, skip_serializing_if = "Option::is_none")]
3112    pub front: Option<Box<FrontSettingsInput>>,
3113    #[serde(default, skip_serializing_if = "Option::is_none")]
3114    pub gong: Option<Box<GongSettingsInput>>,
3115    #[serde(default, skip_serializing_if = "Option::is_none")]
3116    pub microsoft_teams: Option<Box<MicrosoftTeamsSettingsInput>>,
3117    #[serde(default, skip_serializing_if = "Option::is_none")]
3118    pub jira: Option<Box<JiraSettingsInput>>,
3119    #[serde(default, skip_serializing_if = "Option::is_none")]
3120    pub notion: Option<Box<NotionSettingsInput>>,
3121    #[serde(default, skip_serializing_if = "Option::is_none")]
3122    pub opsgenie: Option<Box<OpsgenieInput>>,
3123    #[serde(default, skip_serializing_if = "Option::is_none")]
3124    pub pager_duty: Option<Box<PagerDutyInput>>,
3125    #[serde(default, skip_serializing_if = "Option::is_none")]
3126    pub launch_darkly: Option<Box<LaunchDarklySettingsInput>>,
3127    #[serde(default, skip_serializing_if = "Option::is_none")]
3128    pub jira_personal: Option<Box<JiraPersonalSettingsInput>>,
3129    #[serde(default, skip_serializing_if = "Option::is_none")]
3130    pub salesforce: Option<Box<SalesforceSettingsInput>>,
3131}
3132#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3133#[serde(rename_all = "camelCase")]
3134pub struct IntegrationTemplateCreateInput {
3135    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3136    #[serde(default, skip_serializing_if = "Option::is_none")]
3137    pub id: Option<String>,
3138    /// The identifier of the integration.
3139    #[serde(default, skip_serializing_if = "Option::is_none")]
3140    pub integration_id: Option<String>,
3141    /// The identifier of the template.
3142    #[serde(default, skip_serializing_if = "Option::is_none")]
3143    pub template_id: Option<String>,
3144    /// The foreign identifier in the other service.
3145    #[serde(default, skip_serializing_if = "Option::is_none")]
3146    pub foreign_entity_id: Option<String>,
3147}
3148#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3149#[serde(rename_all = "camelCase")]
3150pub struct IntegrationUpdateInput {
3151    /// The settings to update.
3152    #[serde(default, skip_serializing_if = "Option::is_none")]
3153    pub settings: Option<Box<IntegrationSettingsInput>>,
3154}
3155#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3156#[serde(rename_all = "camelCase")]
3157pub struct IntegrationsSettingsCreateInput {
3158    /// Whether to send a Slack message when a new issue is created for the project or the team.
3159    #[serde(default, skip_serializing_if = "Option::is_none")]
3160    pub slack_issue_created: Option<bool>,
3161    /// Whether to send a Slack message when an issue is added to a view.
3162    #[serde(default, skip_serializing_if = "Option::is_none")]
3163    pub slack_issue_added_to_view: Option<bool>,
3164    /// Whether to send a Slack message when a comment is created on any of the project or team's issues.
3165    #[serde(default, skip_serializing_if = "Option::is_none")]
3166    pub slack_issue_new_comment: Option<bool>,
3167    /// Whether to send a Slack message when any of the project or team's issues change to completed or cancelled.
3168    #[serde(default, skip_serializing_if = "Option::is_none")]
3169    pub slack_issue_status_changed_done: Option<bool>,
3170    /// Whether to send a Slack message when any of the project or team's issues has a change in status.
3171    #[serde(default, skip_serializing_if = "Option::is_none")]
3172    pub slack_issue_status_changed_all: Option<bool>,
3173    /// Whether to send a Slack message when a project update is created.
3174    #[serde(default, skip_serializing_if = "Option::is_none")]
3175    pub slack_project_update_created: Option<bool>,
3176    /// Whether to send a Slack message when a project update is created to team channels.
3177    #[serde(default, skip_serializing_if = "Option::is_none")]
3178    pub slack_project_update_created_to_team: Option<bool>,
3179    /// Whether to send a Slack message when a project update is created to workspace channel.
3180    #[serde(default, skip_serializing_if = "Option::is_none")]
3181    pub slack_project_update_created_to_workspace: Option<bool>,
3182    /// Whether to send a Slack message when an initiative update is created.
3183    #[serde(default, skip_serializing_if = "Option::is_none")]
3184    pub slack_initiative_update_created: Option<bool>,
3185    /// Whether to send a Slack message when a new issue is added to triage.
3186    #[serde(default, skip_serializing_if = "Option::is_none")]
3187    pub slack_issue_added_to_triage: Option<bool>,
3188    /// Whether to send a Slack message when an SLA is at high risk.
3189    #[serde(default, skip_serializing_if = "Option::is_none")]
3190    pub slack_issue_sla_high_risk: Option<bool>,
3191    /// Whether to receive notification when an SLA has breached on Slack.
3192    #[serde(default, skip_serializing_if = "Option::is_none")]
3193    pub slack_issue_sla_breached: Option<bool>,
3194    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3195    #[serde(default, skip_serializing_if = "Option::is_none")]
3196    pub id: Option<String>,
3197    /// The identifier of the team to create settings for.
3198    #[serde(default, skip_serializing_if = "Option::is_none")]
3199    pub team_id: Option<String>,
3200    /// The identifier of the project to create settings for.
3201    #[serde(default, skip_serializing_if = "Option::is_none")]
3202    pub project_id: Option<String>,
3203    /// The identifier of the initiative to create settings for.
3204    #[serde(default, skip_serializing_if = "Option::is_none")]
3205    pub initiative_id: Option<String>,
3206    /// The identifier of the custom view to create settings for.
3207    #[serde(default, skip_serializing_if = "Option::is_none")]
3208    pub custom_view_id: Option<String>,
3209    /// The type of view to which the integration settings context is associated with.
3210    #[serde(default, skip_serializing_if = "Option::is_none")]
3211    pub context_view_type: Option<ContextViewType>,
3212}
3213#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3214#[serde(rename_all = "camelCase")]
3215pub struct IntegrationsSettingsUpdateInput {
3216    /// Whether to send a Slack message when a new issue is created for the project or the team.
3217    #[serde(default, skip_serializing_if = "Option::is_none")]
3218    pub slack_issue_created: Option<bool>,
3219    /// Whether to send a Slack message when an issue is added to a view.
3220    #[serde(default, skip_serializing_if = "Option::is_none")]
3221    pub slack_issue_added_to_view: Option<bool>,
3222    /// Whether to send a Slack message when a comment is created on any of the project or team's issues.
3223    #[serde(default, skip_serializing_if = "Option::is_none")]
3224    pub slack_issue_new_comment: Option<bool>,
3225    /// Whether to send a Slack message when any of the project or team's issues change to completed or cancelled.
3226    #[serde(default, skip_serializing_if = "Option::is_none")]
3227    pub slack_issue_status_changed_done: Option<bool>,
3228    /// Whether to send a Slack message when any of the project or team's issues has a change in status.
3229    #[serde(default, skip_serializing_if = "Option::is_none")]
3230    pub slack_issue_status_changed_all: Option<bool>,
3231    /// Whether to send a Slack message when a project update is created.
3232    #[serde(default, skip_serializing_if = "Option::is_none")]
3233    pub slack_project_update_created: Option<bool>,
3234    /// Whether to send a Slack message when a project update is created to team channels.
3235    #[serde(default, skip_serializing_if = "Option::is_none")]
3236    pub slack_project_update_created_to_team: Option<bool>,
3237    /// Whether to send a Slack message when a project update is created to workspace channel.
3238    #[serde(default, skip_serializing_if = "Option::is_none")]
3239    pub slack_project_update_created_to_workspace: Option<bool>,
3240    /// Whether to send a Slack message when an initiative update is created.
3241    #[serde(default, skip_serializing_if = "Option::is_none")]
3242    pub slack_initiative_update_created: Option<bool>,
3243    /// Whether to send a Slack message when a new issue is added to triage.
3244    #[serde(default, skip_serializing_if = "Option::is_none")]
3245    pub slack_issue_added_to_triage: Option<bool>,
3246    /// Whether to send a Slack message when an SLA is at high risk.
3247    #[serde(default, skip_serializing_if = "Option::is_none")]
3248    pub slack_issue_sla_high_risk: Option<bool>,
3249    /// Whether to receive notification when an SLA has breached on Slack.
3250    #[serde(default, skip_serializing_if = "Option::is_none")]
3251    pub slack_issue_sla_breached: Option<bool>,
3252}
3253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3254#[serde(rename_all = "camelCase")]
3255pub struct IntercomSettingsInput {
3256    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
3257    #[serde(default, skip_serializing_if = "Option::is_none")]
3258    pub send_note_on_status_change: Option<bool>,
3259    /// Whether an internal message should be added when someone comments on an issue.
3260    #[serde(default, skip_serializing_if = "Option::is_none")]
3261    pub send_note_on_comment: Option<bool>,
3262    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
3263    #[serde(default, skip_serializing_if = "Option::is_none")]
3264    pub automate_ticket_reopening_on_completion: Option<bool>,
3265    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
3266    #[serde(default, skip_serializing_if = "Option::is_none")]
3267    pub automate_ticket_reopening_on_cancellation: Option<bool>,
3268    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
3269    #[serde(default, skip_serializing_if = "Option::is_none")]
3270    pub automate_ticket_reopening_on_comment: Option<bool>,
3271    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
3272    #[serde(default, skip_serializing_if = "Option::is_none")]
3273    pub disable_customer_requests_auto_creation: Option<bool>,
3274    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
3275    #[serde(default, skip_serializing_if = "Option::is_none")]
3276    pub automate_ticket_reopening_on_project_completion: Option<bool>,
3277    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
3278    #[serde(default, skip_serializing_if = "Option::is_none")]
3279    pub automate_ticket_reopening_on_project_cancellation: Option<bool>,
3280    /// Whether Linear Agent should be enabled for this integration.
3281    #[serde(default, skip_serializing_if = "Option::is_none")]
3282    pub enable_ai_intake: Option<bool>,
3283}
3284#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3285#[serde(rename_all = "camelCase")]
3286pub struct IssueBatchCreateInput {
3287    /// The issues to create.
3288    #[serde(default, skip_serializing_if = "Option::is_none")]
3289    pub issues: Option<Vec<Box<IssueCreateInput>>>,
3290}
3291/// Issue filtering options.
3292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3293#[serde(rename_all = "camelCase")]
3294pub struct IssueCollectionFilter {
3295    /// Comparator for the identifier.
3296    #[serde(default, skip_serializing_if = "Option::is_none")]
3297    pub id: Option<Box<IssueIDComparator>>,
3298    /// Comparator for the created at date.
3299    #[serde(default, skip_serializing_if = "Option::is_none")]
3300    pub created_at: Option<Box<DateComparator>>,
3301    /// Comparator for the updated at date.
3302    #[serde(default, skip_serializing_if = "Option::is_none")]
3303    pub updated_at: Option<Box<DateComparator>>,
3304    /// Comparator for the issues number.
3305    #[serde(default, skip_serializing_if = "Option::is_none")]
3306    pub number: Option<Box<NumberComparator>>,
3307    /// Comparator for the issues title.
3308    #[serde(default, skip_serializing_if = "Option::is_none")]
3309    pub title: Option<Box<StringComparator>>,
3310    /// Comparator for the issues description.
3311    #[serde(default, skip_serializing_if = "Option::is_none")]
3312    pub description: Option<Box<NullableStringComparator>>,
3313    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
3314    #[serde(default, skip_serializing_if = "Option::is_none")]
3315    pub priority: Option<Box<NullableNumberComparator>>,
3316    /// Comparator for the issues estimate.
3317    #[serde(default, skip_serializing_if = "Option::is_none")]
3318    pub estimate: Option<Box<EstimateComparator>>,
3319    /// Comparator for the issues started at date.
3320    #[serde(default, skip_serializing_if = "Option::is_none")]
3321    pub started_at: Option<Box<NullableDateComparator>>,
3322    /// Comparator for the issues triaged at date.
3323    #[serde(default, skip_serializing_if = "Option::is_none")]
3324    pub triaged_at: Option<Box<NullableDateComparator>>,
3325    /// Comparator for the issues completed at date.
3326    #[serde(default, skip_serializing_if = "Option::is_none")]
3327    pub completed_at: Option<Box<NullableDateComparator>>,
3328    /// Comparator for the issues canceled at date.
3329    #[serde(default, skip_serializing_if = "Option::is_none")]
3330    pub canceled_at: Option<Box<NullableDateComparator>>,
3331    /// Comparator for the issues archived at date.
3332    #[serde(default, skip_serializing_if = "Option::is_none")]
3333    pub archived_at: Option<Box<NullableDateComparator>>,
3334    /// Comparator for the issues auto closed at date.
3335    #[serde(default, skip_serializing_if = "Option::is_none")]
3336    pub auto_closed_at: Option<Box<NullableDateComparator>>,
3337    /// Comparator for the issues auto archived at date.
3338    #[serde(default, skip_serializing_if = "Option::is_none")]
3339    pub auto_archived_at: Option<Box<NullableDateComparator>>,
3340    /// Comparator for the issues added to cycle at date.
3341    #[serde(default, skip_serializing_if = "Option::is_none")]
3342    pub added_to_cycle_at: Option<Box<NullableDateComparator>>,
3343    /// Comparator for the period when issue was added to a cycle.
3344    #[serde(default, skip_serializing_if = "Option::is_none")]
3345    pub added_to_cycle_period: Option<Box<CyclePeriodComparator>>,
3346    /// Comparator for the issues due date.
3347    #[serde(default, skip_serializing_if = "Option::is_none")]
3348    pub due_date: Option<Box<NullableTimelessDateComparator>>,
3349    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
3350    #[serde(default, skip_serializing_if = "Option::is_none")]
3351    pub accumulated_state_updated_at: Option<Box<NullableDateComparator>>,
3352    /// Comparator for the issues snoozed until date.
3353    #[serde(default, skip_serializing_if = "Option::is_none")]
3354    pub snoozed_until_at: Option<Box<NullableDateComparator>>,
3355    /// Filters that the issues assignee must satisfy.
3356    #[serde(default, skip_serializing_if = "Option::is_none")]
3357    pub assignee: Option<Box<NullableUserFilter>>,
3358    /// Filters that the issue's delegated agent must satisfy.
3359    #[serde(default, skip_serializing_if = "Option::is_none")]
3360    pub delegate: Option<Box<NullableUserFilter>>,
3361    /// Filters that the last applied template must satisfy.
3362    #[serde(default, skip_serializing_if = "Option::is_none")]
3363    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
3364    /// `ALPHA` Filters that the recurring issue template must satisfy.
3365    #[serde(default, skip_serializing_if = "Option::is_none")]
3366    pub recurring_issue_template: Option<Box<NullableTemplateFilter>>,
3367    /// Filters that the source must satisfy.
3368    #[serde(default, skip_serializing_if = "Option::is_none")]
3369    pub source_metadata: Option<Box<SourceMetadataComparator>>,
3370    /// Filters that the issues creator must satisfy.
3371    #[serde(default, skip_serializing_if = "Option::is_none")]
3372    pub creator: Option<Box<NullableUserFilter>>,
3373    /// Filters that the issue parent must satisfy.
3374    #[serde(default, skip_serializing_if = "Option::is_none")]
3375    pub parent: Option<Box<NullableIssueFilter>>,
3376    /// Filters that the issues snoozer must satisfy.
3377    #[serde(default, skip_serializing_if = "Option::is_none")]
3378    pub snoozed_by: Option<Box<NullableUserFilter>>,
3379    /// Filters that issue labels must satisfy.
3380    #[serde(default, skip_serializing_if = "Option::is_none")]
3381    pub labels: Option<Box<IssueLabelCollectionFilter>>,
3382    /// Filters that issue subscribers must satisfy.
3383    #[serde(default, skip_serializing_if = "Option::is_none")]
3384    pub subscribers: Option<Box<UserCollectionFilter>>,
3385    /// Comparator for filtering issues which have been shared with users outside of the team.
3386    #[serde(default, skip_serializing_if = "Option::is_none")]
3387    pub has_shared_users: Option<Box<RelationExistsComparator>>,
3388    /// Filters that users the issue has been shared with must satisfy.
3389    #[serde(default, skip_serializing_if = "Option::is_none")]
3390    pub shared_with: Option<Box<UserCollectionFilter>>,
3391    /// Filters that the issues team must satisfy.
3392    #[serde(default, skip_serializing_if = "Option::is_none")]
3393    pub team: Option<Box<TeamFilter>>,
3394    /// Filters that the issues project milestone must satisfy.
3395    #[serde(default, skip_serializing_if = "Option::is_none")]
3396    pub project_milestone: Option<Box<NullableProjectMilestoneFilter>>,
3397    /// Filters that the issues comments must satisfy.
3398    #[serde(default, skip_serializing_if = "Option::is_none")]
3399    pub comments: Option<Box<CommentCollectionFilter>>,
3400    /// Filters that the issue's activities must satisfy.
3401    #[serde(default, skip_serializing_if = "Option::is_none")]
3402    pub activity: Option<Box<ActivityCollectionFilter>>,
3403    /// `Internal` Filters that the issue's suggestions must satisfy.
3404    #[serde(default, skip_serializing_if = "Option::is_none")]
3405    pub suggestions: Option<Box<IssueSuggestionCollectionFilter>>,
3406    /// Filters that the issues cycle must satisfy.
3407    #[serde(default, skip_serializing_if = "Option::is_none")]
3408    pub cycle: Option<Box<NullableCycleFilter>>,
3409    /// Filters that the issues project must satisfy.
3410    #[serde(default, skip_serializing_if = "Option::is_none")]
3411    pub project: Option<Box<NullableProjectFilter>>,
3412    /// Filters that the issues state must satisfy.
3413    #[serde(default, skip_serializing_if = "Option::is_none")]
3414    pub state: Option<Box<WorkflowStateFilter>>,
3415    /// Filters that the child issues must satisfy.
3416    #[serde(default, skip_serializing_if = "Option::is_none")]
3417    pub children: Option<Box<IssueCollectionFilter>>,
3418    /// Filters that the issues attachments must satisfy.
3419    #[serde(default, skip_serializing_if = "Option::is_none")]
3420    pub attachments: Option<Box<AttachmentCollectionFilter>>,
3421    /// `Internal` Comparator for the issues content.
3422    #[serde(default, skip_serializing_if = "Option::is_none")]
3423    pub searchable_content: Option<Box<ContentComparator>>,
3424    /// Comparator for filtering issues with relations.
3425    #[serde(default, skip_serializing_if = "Option::is_none")]
3426    pub has_related_relations: Option<Box<RelationExistsComparator>>,
3427    /// Comparator for filtering issues which are duplicates.
3428    #[serde(default, skip_serializing_if = "Option::is_none")]
3429    pub has_duplicate_relations: Option<Box<RelationExistsComparator>>,
3430    /// Comparator for filtering issues which are blocked.
3431    #[serde(default, skip_serializing_if = "Option::is_none")]
3432    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
3433    /// Comparator for filtering issues which are blocking.
3434    #[serde(default, skip_serializing_if = "Option::is_none")]
3435    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
3436    /// `Internal` Comparator for filtering issues which have suggested related issues.
3437    #[serde(default, skip_serializing_if = "Option::is_none")]
3438    pub has_suggested_related_issues: Option<Box<RelationExistsComparator>>,
3439    /// `Internal` Comparator for filtering issues which have suggested similar issues.
3440    #[serde(default, skip_serializing_if = "Option::is_none")]
3441    pub has_suggested_similar_issues: Option<Box<RelationExistsComparator>>,
3442    /// `Internal` Comparator for filtering issues which have suggested assignees.
3443    #[serde(default, skip_serializing_if = "Option::is_none")]
3444    pub has_suggested_assignees: Option<Box<RelationExistsComparator>>,
3445    /// `Internal` Comparator for filtering issues which have suggested projects.
3446    #[serde(default, skip_serializing_if = "Option::is_none")]
3447    pub has_suggested_projects: Option<Box<RelationExistsComparator>>,
3448    /// `Internal` Comparator for filtering issues which have suggested labels.
3449    #[serde(default, skip_serializing_if = "Option::is_none")]
3450    pub has_suggested_labels: Option<Box<RelationExistsComparator>>,
3451    /// `Internal` Comparator for filtering issues which have suggested teams.
3452    #[serde(default, skip_serializing_if = "Option::is_none")]
3453    pub has_suggested_teams: Option<Box<RelationExistsComparator>>,
3454    /// Comparator for the issues sla status.
3455    #[serde(default, skip_serializing_if = "Option::is_none")]
3456    pub sla_status: Option<Box<SlaStatusComparator>>,
3457    /// Filters that the issues reactions must satisfy.
3458    #[serde(default, skip_serializing_if = "Option::is_none")]
3459    pub reactions: Option<Box<ReactionCollectionFilter>>,
3460    /// Filters that the issue's customer needs must satisfy.
3461    #[serde(default, skip_serializing_if = "Option::is_none")]
3462    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
3463    /// `ALPHA` Filters that the issue's releases must satisfy.
3464    #[serde(default, skip_serializing_if = "Option::is_none")]
3465    pub releases: Option<Box<ReleaseCollectionFilter>>,
3466    /// Count of customers
3467    #[serde(default, skip_serializing_if = "Option::is_none")]
3468    pub customer_count: Option<Box<NumberComparator>>,
3469    /// Count of important customers
3470    #[serde(default, skip_serializing_if = "Option::is_none")]
3471    pub customer_important_count: Option<Box<NumberComparator>>,
3472    /// `Internal` Lead time (created -> completed) comparator.
3473    #[serde(default, skip_serializing_if = "Option::is_none")]
3474    pub lead_time: Option<Box<NullableDurationComparator>>,
3475    /// `Internal` Cycle time (started -> completed) comparator.
3476    #[serde(default, skip_serializing_if = "Option::is_none")]
3477    pub cycle_time: Option<Box<NullableDurationComparator>>,
3478    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
3479    #[serde(default, skip_serializing_if = "Option::is_none")]
3480    pub age_time: Option<Box<NullableDurationComparator>>,
3481    /// `Internal` Triage time (entered triaged -> triaged) comparator.
3482    #[serde(default, skip_serializing_if = "Option::is_none")]
3483    pub triage_time: Option<Box<NullableDurationComparator>>,
3484    /// Compound filters, all of which need to be matched by the issue.
3485    #[serde(default, skip_serializing_if = "Option::is_none")]
3486    pub and: Option<Vec<Box<IssueCollectionFilter>>>,
3487    /// Compound filters, one of which need to be matched by the issue.
3488    #[serde(default, skip_serializing_if = "Option::is_none")]
3489    pub or: Option<Vec<Box<IssueCollectionFilter>>>,
3490    /// Filters that needs to be matched by some issues.
3491    #[serde(default, skip_serializing_if = "Option::is_none")]
3492    pub some: Option<Box<IssueFilter>>,
3493    /// Filters that needs to be matched by all issues.
3494    #[serde(default, skip_serializing_if = "Option::is_none")]
3495    pub every: Option<Box<IssueFilter>>,
3496    /// Comparator for the collection length.
3497    #[serde(default, skip_serializing_if = "Option::is_none")]
3498    pub length: Option<Box<NumberComparator>>,
3499}
3500#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3501#[serde(rename_all = "camelCase")]
3502pub struct IssueCreateInput {
3503    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3504    #[serde(default, skip_serializing_if = "Option::is_none")]
3505    pub id: Option<String>,
3506    /// The title of the issue.
3507    #[serde(default, skip_serializing_if = "Option::is_none")]
3508    pub title: Option<String>,
3509    /// The issue description in markdown format.
3510    #[serde(default, skip_serializing_if = "Option::is_none")]
3511    pub description: Option<String>,
3512    /// `Internal` The issue description as a Prosemirror document.
3513    #[serde(default, skip_serializing_if = "Option::is_none")]
3514    pub description_data: Option<serde_json::Value>,
3515    /// The identifier of the user to assign the issue to.
3516    #[serde(default, skip_serializing_if = "Option::is_none")]
3517    pub assignee_id: Option<String>,
3518    /// The identifier of the agent user to delegate the issue to.
3519    #[serde(default, skip_serializing_if = "Option::is_none")]
3520    pub delegate_id: Option<String>,
3521    /// The identifier of the parent issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3522    #[serde(default, skip_serializing_if = "Option::is_none")]
3523    pub parent_id: Option<String>,
3524    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
3525    #[serde(default, skip_serializing_if = "Option::is_none")]
3526    pub priority: Option<i64>,
3527    /// The estimated complexity of the issue.
3528    #[serde(default, skip_serializing_if = "Option::is_none")]
3529    pub estimate: Option<i64>,
3530    /// The identifiers of the users subscribing to this ticket.
3531    #[serde(default, skip_serializing_if = "Option::is_none")]
3532    pub subscriber_ids: Option<Vec<String>>,
3533    /// The identifiers of the issue labels associated with this ticket.
3534    #[serde(default, skip_serializing_if = "Option::is_none")]
3535    pub label_ids: Option<Vec<String>>,
3536    /// The identifier of the team associated with the issue.
3537    #[serde(default, skip_serializing_if = "Option::is_none")]
3538    pub team_id: Option<String>,
3539    /// The cycle associated with the issue.
3540    #[serde(default, skip_serializing_if = "Option::is_none")]
3541    pub cycle_id: Option<String>,
3542    /// The project associated with the issue.
3543    #[serde(default, skip_serializing_if = "Option::is_none")]
3544    pub project_id: Option<String>,
3545    /// The project milestone associated with the issue.
3546    #[serde(default, skip_serializing_if = "Option::is_none")]
3547    pub project_milestone_id: Option<String>,
3548    /// The ID of the last template applied to the issue.
3549    #[serde(default, skip_serializing_if = "Option::is_none")]
3550    pub last_applied_template_id: Option<String>,
3551    /// The team state of the issue.
3552    #[serde(default, skip_serializing_if = "Option::is_none")]
3553    pub state_id: Option<String>,
3554    /// The comment the issue is referencing.
3555    #[serde(default, skip_serializing_if = "Option::is_none")]
3556    pub reference_comment_id: Option<String>,
3557    /// The comment the issue is created from.
3558    #[serde(default, skip_serializing_if = "Option::is_none")]
3559    pub source_comment_id: Option<String>,
3560    /// `Internal` The pull request comment the issue is created from.
3561    #[serde(default, skip_serializing_if = "Option::is_none")]
3562    pub source_pull_request_comment_id: Option<String>,
3563    /// The position of the issue related to other issues.
3564    #[serde(default, skip_serializing_if = "Option::is_none")]
3565    pub sort_order: Option<f64>,
3566    /// The position of the issue related to other issues, when ordered by priority.
3567    #[serde(default, skip_serializing_if = "Option::is_none")]
3568    pub priority_sort_order: Option<f64>,
3569    /// The position of the issue in parent's sub-issue list.
3570    #[serde(default, skip_serializing_if = "Option::is_none")]
3571    pub sub_issue_sort_order: Option<f64>,
3572    /// The date at which the issue is due.
3573    #[serde(default, skip_serializing_if = "Option::is_none")]
3574    pub due_date: Option<chrono::NaiveDate>,
3575    /// Create issue as a user with the provided name. This option is only available to OAuth applications creating issues in `actor=app` mode.
3576    #[serde(default, skip_serializing_if = "Option::is_none")]
3577    pub create_as_user: Option<String>,
3578    /// 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.
3579    #[serde(default, skip_serializing_if = "Option::is_none")]
3580    pub display_icon_url: Option<String>,
3581    /// Whether the passed sort order should be preserved.
3582    #[serde(default, skip_serializing_if = "Option::is_none")]
3583    pub preserve_sort_order_on_create: Option<bool>,
3584    /// 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.
3585    #[serde(default, skip_serializing_if = "Option::is_none")]
3586    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3587    /// `Internal` The timestamp at which an issue will be considered in breach of SLA.
3588    #[serde(default, skip_serializing_if = "Option::is_none")]
3589    pub sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
3590    /// `Internal` The timestamp at which the issue's SLA was started.
3591    #[serde(default, skip_serializing_if = "Option::is_none")]
3592    pub sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
3593    /// The identifier of a template the issue should be created from. If other values are provided in the input, they will override template values.
3594    #[serde(default, skip_serializing_if = "Option::is_none")]
3595    pub template_id: Option<String>,
3596    /// 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.
3597    #[serde(default, skip_serializing_if = "Option::is_none")]
3598    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
3599    /// The SLA day count type for the issue. Whether SLA should be business days only or calendar days (default).
3600    #[serde(default, skip_serializing_if = "Option::is_none")]
3601    pub sla_type: Option<SLADayCountType>,
3602    /// 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.
3603    #[serde(default, skip_serializing_if = "Option::is_none")]
3604    pub use_default_template: Option<bool>,
3605}
3606/// Issue filtering options.
3607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3608#[serde(rename_all = "camelCase")]
3609pub struct IssueFilter {
3610    /// Comparator for the identifier.
3611    #[serde(default, skip_serializing_if = "Option::is_none")]
3612    pub id: Option<Box<IssueIDComparator>>,
3613    /// Comparator for the created at date.
3614    #[serde(default, skip_serializing_if = "Option::is_none")]
3615    pub created_at: Option<Box<DateComparator>>,
3616    /// Comparator for the updated at date.
3617    #[serde(default, skip_serializing_if = "Option::is_none")]
3618    pub updated_at: Option<Box<DateComparator>>,
3619    /// Comparator for the issues number.
3620    #[serde(default, skip_serializing_if = "Option::is_none")]
3621    pub number: Option<Box<NumberComparator>>,
3622    /// Comparator for the issues title.
3623    #[serde(default, skip_serializing_if = "Option::is_none")]
3624    pub title: Option<Box<StringComparator>>,
3625    /// Comparator for the issues description.
3626    #[serde(default, skip_serializing_if = "Option::is_none")]
3627    pub description: Option<Box<NullableStringComparator>>,
3628    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
3629    #[serde(default, skip_serializing_if = "Option::is_none")]
3630    pub priority: Option<Box<NullableNumberComparator>>,
3631    /// Comparator for the issues estimate.
3632    #[serde(default, skip_serializing_if = "Option::is_none")]
3633    pub estimate: Option<Box<EstimateComparator>>,
3634    /// Comparator for the issues started at date.
3635    #[serde(default, skip_serializing_if = "Option::is_none")]
3636    pub started_at: Option<Box<NullableDateComparator>>,
3637    /// Comparator for the issues triaged at date.
3638    #[serde(default, skip_serializing_if = "Option::is_none")]
3639    pub triaged_at: Option<Box<NullableDateComparator>>,
3640    /// Comparator for the issues completed at date.
3641    #[serde(default, skip_serializing_if = "Option::is_none")]
3642    pub completed_at: Option<Box<NullableDateComparator>>,
3643    /// Comparator for the issues canceled at date.
3644    #[serde(default, skip_serializing_if = "Option::is_none")]
3645    pub canceled_at: Option<Box<NullableDateComparator>>,
3646    /// Comparator for the issues archived at date.
3647    #[serde(default, skip_serializing_if = "Option::is_none")]
3648    pub archived_at: Option<Box<NullableDateComparator>>,
3649    /// Comparator for the issues auto closed at date.
3650    #[serde(default, skip_serializing_if = "Option::is_none")]
3651    pub auto_closed_at: Option<Box<NullableDateComparator>>,
3652    /// Comparator for the issues auto archived at date.
3653    #[serde(default, skip_serializing_if = "Option::is_none")]
3654    pub auto_archived_at: Option<Box<NullableDateComparator>>,
3655    /// Comparator for the issues added to cycle at date.
3656    #[serde(default, skip_serializing_if = "Option::is_none")]
3657    pub added_to_cycle_at: Option<Box<NullableDateComparator>>,
3658    /// Comparator for the period when issue was added to a cycle.
3659    #[serde(default, skip_serializing_if = "Option::is_none")]
3660    pub added_to_cycle_period: Option<Box<CyclePeriodComparator>>,
3661    /// Comparator for the issues due date.
3662    #[serde(default, skip_serializing_if = "Option::is_none")]
3663    pub due_date: Option<Box<NullableTimelessDateComparator>>,
3664    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
3665    #[serde(default, skip_serializing_if = "Option::is_none")]
3666    pub accumulated_state_updated_at: Option<Box<NullableDateComparator>>,
3667    /// Comparator for the issues snoozed until date.
3668    #[serde(default, skip_serializing_if = "Option::is_none")]
3669    pub snoozed_until_at: Option<Box<NullableDateComparator>>,
3670    /// Filters that the issues assignee must satisfy.
3671    #[serde(default, skip_serializing_if = "Option::is_none")]
3672    pub assignee: Option<Box<NullableUserFilter>>,
3673    /// Filters that the issue's delegated agent must satisfy.
3674    #[serde(default, skip_serializing_if = "Option::is_none")]
3675    pub delegate: Option<Box<NullableUserFilter>>,
3676    /// Filters that the last applied template must satisfy.
3677    #[serde(default, skip_serializing_if = "Option::is_none")]
3678    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
3679    /// `ALPHA` Filters that the recurring issue template must satisfy.
3680    #[serde(default, skip_serializing_if = "Option::is_none")]
3681    pub recurring_issue_template: Option<Box<NullableTemplateFilter>>,
3682    /// Filters that the source must satisfy.
3683    #[serde(default, skip_serializing_if = "Option::is_none")]
3684    pub source_metadata: Option<Box<SourceMetadataComparator>>,
3685    /// Filters that the issues creator must satisfy.
3686    #[serde(default, skip_serializing_if = "Option::is_none")]
3687    pub creator: Option<Box<NullableUserFilter>>,
3688    /// Filters that the issue parent must satisfy.
3689    #[serde(default, skip_serializing_if = "Option::is_none")]
3690    pub parent: Option<Box<NullableIssueFilter>>,
3691    /// Filters that the issues snoozer must satisfy.
3692    #[serde(default, skip_serializing_if = "Option::is_none")]
3693    pub snoozed_by: Option<Box<NullableUserFilter>>,
3694    /// Filters that issue labels must satisfy.
3695    #[serde(default, skip_serializing_if = "Option::is_none")]
3696    pub labels: Option<Box<IssueLabelCollectionFilter>>,
3697    /// Filters that issue subscribers must satisfy.
3698    #[serde(default, skip_serializing_if = "Option::is_none")]
3699    pub subscribers: Option<Box<UserCollectionFilter>>,
3700    /// Comparator for filtering issues which have been shared with users outside of the team.
3701    #[serde(default, skip_serializing_if = "Option::is_none")]
3702    pub has_shared_users: Option<Box<RelationExistsComparator>>,
3703    /// Filters that users the issue has been shared with must satisfy.
3704    #[serde(default, skip_serializing_if = "Option::is_none")]
3705    pub shared_with: Option<Box<UserCollectionFilter>>,
3706    /// Filters that the issues team must satisfy.
3707    #[serde(default, skip_serializing_if = "Option::is_none")]
3708    pub team: Option<Box<TeamFilter>>,
3709    /// Filters that the issues project milestone must satisfy.
3710    #[serde(default, skip_serializing_if = "Option::is_none")]
3711    pub project_milestone: Option<Box<NullableProjectMilestoneFilter>>,
3712    /// Filters that the issues comments must satisfy.
3713    #[serde(default, skip_serializing_if = "Option::is_none")]
3714    pub comments: Option<Box<CommentCollectionFilter>>,
3715    /// Filters that the issue's activities must satisfy.
3716    #[serde(default, skip_serializing_if = "Option::is_none")]
3717    pub activity: Option<Box<ActivityCollectionFilter>>,
3718    /// `Internal` Filters that the issue's suggestions must satisfy.
3719    #[serde(default, skip_serializing_if = "Option::is_none")]
3720    pub suggestions: Option<Box<IssueSuggestionCollectionFilter>>,
3721    /// Filters that the issues cycle must satisfy.
3722    #[serde(default, skip_serializing_if = "Option::is_none")]
3723    pub cycle: Option<Box<NullableCycleFilter>>,
3724    /// Filters that the issues project must satisfy.
3725    #[serde(default, skip_serializing_if = "Option::is_none")]
3726    pub project: Option<Box<NullableProjectFilter>>,
3727    /// Filters that the issues state must satisfy.
3728    #[serde(default, skip_serializing_if = "Option::is_none")]
3729    pub state: Option<Box<WorkflowStateFilter>>,
3730    /// Filters that the child issues must satisfy.
3731    #[serde(default, skip_serializing_if = "Option::is_none")]
3732    pub children: Option<Box<IssueCollectionFilter>>,
3733    /// Filters that the issues attachments must satisfy.
3734    #[serde(default, skip_serializing_if = "Option::is_none")]
3735    pub attachments: Option<Box<AttachmentCollectionFilter>>,
3736    /// `Internal` Comparator for the issues content.
3737    #[serde(default, skip_serializing_if = "Option::is_none")]
3738    pub searchable_content: Option<Box<ContentComparator>>,
3739    /// Comparator for filtering issues with relations.
3740    #[serde(default, skip_serializing_if = "Option::is_none")]
3741    pub has_related_relations: Option<Box<RelationExistsComparator>>,
3742    /// Comparator for filtering issues which are duplicates.
3743    #[serde(default, skip_serializing_if = "Option::is_none")]
3744    pub has_duplicate_relations: Option<Box<RelationExistsComparator>>,
3745    /// Comparator for filtering issues which are blocked.
3746    #[serde(default, skip_serializing_if = "Option::is_none")]
3747    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
3748    /// Comparator for filtering issues which are blocking.
3749    #[serde(default, skip_serializing_if = "Option::is_none")]
3750    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
3751    /// `Internal` Comparator for filtering issues which have suggested related issues.
3752    #[serde(default, skip_serializing_if = "Option::is_none")]
3753    pub has_suggested_related_issues: Option<Box<RelationExistsComparator>>,
3754    /// `Internal` Comparator for filtering issues which have suggested similar issues.
3755    #[serde(default, skip_serializing_if = "Option::is_none")]
3756    pub has_suggested_similar_issues: Option<Box<RelationExistsComparator>>,
3757    /// `Internal` Comparator for filtering issues which have suggested assignees.
3758    #[serde(default, skip_serializing_if = "Option::is_none")]
3759    pub has_suggested_assignees: Option<Box<RelationExistsComparator>>,
3760    /// `Internal` Comparator for filtering issues which have suggested projects.
3761    #[serde(default, skip_serializing_if = "Option::is_none")]
3762    pub has_suggested_projects: Option<Box<RelationExistsComparator>>,
3763    /// `Internal` Comparator for filtering issues which have suggested labels.
3764    #[serde(default, skip_serializing_if = "Option::is_none")]
3765    pub has_suggested_labels: Option<Box<RelationExistsComparator>>,
3766    /// `Internal` Comparator for filtering issues which have suggested teams.
3767    #[serde(default, skip_serializing_if = "Option::is_none")]
3768    pub has_suggested_teams: Option<Box<RelationExistsComparator>>,
3769    /// Comparator for the issues sla status.
3770    #[serde(default, skip_serializing_if = "Option::is_none")]
3771    pub sla_status: Option<Box<SlaStatusComparator>>,
3772    /// Filters that the issues reactions must satisfy.
3773    #[serde(default, skip_serializing_if = "Option::is_none")]
3774    pub reactions: Option<Box<ReactionCollectionFilter>>,
3775    /// Filters that the issue's customer needs must satisfy.
3776    #[serde(default, skip_serializing_if = "Option::is_none")]
3777    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
3778    /// `ALPHA` Filters that the issue's releases must satisfy.
3779    #[serde(default, skip_serializing_if = "Option::is_none")]
3780    pub releases: Option<Box<ReleaseCollectionFilter>>,
3781    /// Count of customers
3782    #[serde(default, skip_serializing_if = "Option::is_none")]
3783    pub customer_count: Option<Box<NumberComparator>>,
3784    /// Count of important customers
3785    #[serde(default, skip_serializing_if = "Option::is_none")]
3786    pub customer_important_count: Option<Box<NumberComparator>>,
3787    /// `Internal` Lead time (created -> completed) comparator.
3788    #[serde(default, skip_serializing_if = "Option::is_none")]
3789    pub lead_time: Option<Box<NullableDurationComparator>>,
3790    /// `Internal` Cycle time (started -> completed) comparator.
3791    #[serde(default, skip_serializing_if = "Option::is_none")]
3792    pub cycle_time: Option<Box<NullableDurationComparator>>,
3793    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
3794    #[serde(default, skip_serializing_if = "Option::is_none")]
3795    pub age_time: Option<Box<NullableDurationComparator>>,
3796    /// `Internal` Triage time (entered triaged -> triaged) comparator.
3797    #[serde(default, skip_serializing_if = "Option::is_none")]
3798    pub triage_time: Option<Box<NullableDurationComparator>>,
3799    /// Compound filters, all of which need to be matched by the issue.
3800    #[serde(default, skip_serializing_if = "Option::is_none")]
3801    pub and: Option<Vec<Box<IssueFilter>>>,
3802    /// Compound filters, one of which need to be matched by the issue.
3803    #[serde(default, skip_serializing_if = "Option::is_none")]
3804    pub or: Option<Vec<Box<IssueFilter>>>,
3805}
3806/// Comparator for issue identifiers.
3807#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3808#[serde(rename_all = "camelCase")]
3809pub struct IssueIDComparator {
3810    /// Equals constraint.
3811    #[serde(default, skip_serializing_if = "Option::is_none")]
3812    pub eq: Option<String>,
3813    /// Not-equals constraint.
3814    #[serde(default, skip_serializing_if = "Option::is_none")]
3815    pub neq: Option<String>,
3816    /// In-array constraint.
3817    #[serde(default, skip_serializing_if = "Option::is_none")]
3818    pub r#in: Option<Vec<String>>,
3819    /// Not-in-array constraint.
3820    #[serde(default, skip_serializing_if = "Option::is_none")]
3821    pub nin: Option<Vec<String>>,
3822}
3823#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3824#[serde(rename_all = "camelCase")]
3825pub struct IssueImportUpdateInput {
3826    /// The mapping configuration for the import.
3827    #[serde(default, skip_serializing_if = "Option::is_none")]
3828    pub mapping: Option<serde_json::Value>,
3829}
3830/// Issue label filtering options.
3831#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3832#[serde(rename_all = "camelCase")]
3833pub struct IssueLabelCollectionFilter {
3834    /// Comparator for the identifier.
3835    #[serde(default, skip_serializing_if = "Option::is_none")]
3836    pub id: Option<Box<IDComparator>>,
3837    /// Comparator for the created at date.
3838    #[serde(default, skip_serializing_if = "Option::is_none")]
3839    pub created_at: Option<Box<DateComparator>>,
3840    /// Comparator for the updated at date.
3841    #[serde(default, skip_serializing_if = "Option::is_none")]
3842    pub updated_at: Option<Box<DateComparator>>,
3843    /// Comparator for the name.
3844    #[serde(default, skip_serializing_if = "Option::is_none")]
3845    pub name: Option<Box<StringComparator>>,
3846    /// Comparator for whether the label is a group label.
3847    #[serde(default, skip_serializing_if = "Option::is_none")]
3848    pub is_group: Option<Box<BooleanComparator>>,
3849    /// Filters that the issue labels creator must satisfy.
3850    #[serde(default, skip_serializing_if = "Option::is_none")]
3851    pub creator: Option<Box<NullableUserFilter>>,
3852    /// Filters that the issue labels team must satisfy.
3853    #[serde(default, skip_serializing_if = "Option::is_none")]
3854    pub team: Option<Box<NullableTeamFilter>>,
3855    /// Filters that the issue label's parent label must satisfy.
3856    #[serde(default, skip_serializing_if = "Option::is_none")]
3857    pub parent: Option<Box<IssueLabelFilter>>,
3858    /// Filter based on the existence of the relation.
3859    #[serde(default, skip_serializing_if = "Option::is_none")]
3860    pub null: Option<bool>,
3861    /// Compound filters, all of which need to be matched by the label.
3862    #[serde(default, skip_serializing_if = "Option::is_none")]
3863    pub and: Option<Vec<Box<IssueLabelCollectionFilter>>>,
3864    /// Compound filters, one of which need to be matched by the label.
3865    #[serde(default, skip_serializing_if = "Option::is_none")]
3866    pub or: Option<Vec<Box<IssueLabelCollectionFilter>>>,
3867    /// Filters that needs to be matched by some issue labels.
3868    #[serde(default, skip_serializing_if = "Option::is_none")]
3869    pub some: Option<Box<IssueLabelFilter>>,
3870    /// Filters that needs to be matched by all issue labels.
3871    #[serde(default, skip_serializing_if = "Option::is_none")]
3872    pub every: Option<Box<IssueLabelFilter>>,
3873    /// Comparator for the collection length.
3874    #[serde(default, skip_serializing_if = "Option::is_none")]
3875    pub length: Option<Box<NumberComparator>>,
3876}
3877#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3878#[serde(rename_all = "camelCase")]
3879pub struct IssueLabelCreateInput {
3880    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3881    #[serde(default, skip_serializing_if = "Option::is_none")]
3882    pub id: Option<String>,
3883    /// The name of the label.
3884    #[serde(default, skip_serializing_if = "Option::is_none")]
3885    pub name: Option<String>,
3886    /// The description of the label.
3887    #[serde(default, skip_serializing_if = "Option::is_none")]
3888    pub description: Option<String>,
3889    /// The color of the label.
3890    #[serde(default, skip_serializing_if = "Option::is_none")]
3891    pub color: Option<String>,
3892    /// The identifier of the parent label.
3893    #[serde(default, skip_serializing_if = "Option::is_none")]
3894    pub parent_id: Option<String>,
3895    /// The team associated with the label. If not given, the label will be associated with the entire workspace.
3896    #[serde(default, skip_serializing_if = "Option::is_none")]
3897    pub team_id: Option<String>,
3898    /// Whether the label is a group.
3899    #[serde(default, skip_serializing_if = "Option::is_none")]
3900    pub is_group: Option<bool>,
3901    /// When the label was retired.
3902    #[serde(default, skip_serializing_if = "Option::is_none")]
3903    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
3904}
3905/// Issue label filtering options.
3906#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3907#[serde(rename_all = "camelCase")]
3908pub struct IssueLabelFilter {
3909    /// Comparator for the identifier.
3910    #[serde(default, skip_serializing_if = "Option::is_none")]
3911    pub id: Option<Box<IDComparator>>,
3912    /// Comparator for the created at date.
3913    #[serde(default, skip_serializing_if = "Option::is_none")]
3914    pub created_at: Option<Box<DateComparator>>,
3915    /// Comparator for the updated at date.
3916    #[serde(default, skip_serializing_if = "Option::is_none")]
3917    pub updated_at: Option<Box<DateComparator>>,
3918    /// Comparator for the name.
3919    #[serde(default, skip_serializing_if = "Option::is_none")]
3920    pub name: Option<Box<StringComparator>>,
3921    /// Comparator for whether the label is a group label.
3922    #[serde(default, skip_serializing_if = "Option::is_none")]
3923    pub is_group: Option<Box<BooleanComparator>>,
3924    /// Filters that the issue labels creator must satisfy.
3925    #[serde(default, skip_serializing_if = "Option::is_none")]
3926    pub creator: Option<Box<NullableUserFilter>>,
3927    /// Filters that the issue labels team must satisfy.
3928    #[serde(default, skip_serializing_if = "Option::is_none")]
3929    pub team: Option<Box<NullableTeamFilter>>,
3930    /// Filters that the issue label's parent label must satisfy.
3931    #[serde(default, skip_serializing_if = "Option::is_none")]
3932    pub parent: Option<Box<IssueLabelFilter>>,
3933    /// Compound filters, all of which need to be matched by the label.
3934    #[serde(default, skip_serializing_if = "Option::is_none")]
3935    pub and: Option<Vec<Box<IssueLabelFilter>>>,
3936    /// Compound filters, one of which need to be matched by the label.
3937    #[serde(default, skip_serializing_if = "Option::is_none")]
3938    pub or: Option<Vec<Box<IssueLabelFilter>>>,
3939}
3940#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3941#[serde(rename_all = "camelCase")]
3942pub struct IssueLabelUpdateInput {
3943    /// The name of the label.
3944    #[serde(default, skip_serializing_if = "Option::is_none")]
3945    pub name: Option<String>,
3946    /// The description of the label.
3947    #[serde(default, skip_serializing_if = "Option::is_none")]
3948    pub description: Option<String>,
3949    /// The identifier of the parent label.
3950    #[serde(default, skip_serializing_if = "Option::is_none")]
3951    pub parent_id: Option<String>,
3952    /// The color of the label.
3953    #[serde(default, skip_serializing_if = "Option::is_none")]
3954    pub color: Option<String>,
3955    /// Whether the label is a group.
3956    #[serde(default, skip_serializing_if = "Option::is_none")]
3957    pub is_group: Option<bool>,
3958    /// When the label was retired.
3959    #[serde(default, skip_serializing_if = "Option::is_none")]
3960    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
3961}
3962/// A reference to an issue found during release creation.
3963#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3964#[serde(rename_all = "camelCase")]
3965pub struct IssueReferenceInput {
3966    /// The issue identifier (e.g. ENG-123).
3967    #[serde(default, skip_serializing_if = "Option::is_none")]
3968    pub identifier: Option<String>,
3969    /// The commit SHA where this issue reference was found.
3970    #[serde(default, skip_serializing_if = "Option::is_none")]
3971    pub commit_sha: Option<String>,
3972}
3973#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3974#[serde(rename_all = "camelCase")]
3975pub struct IssueRelationCreateInput {
3976    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
3977    #[serde(default, skip_serializing_if = "Option::is_none")]
3978    pub id: Option<String>,
3979    /// The type of relation of the issue to the related issue.
3980    #[serde(default, skip_serializing_if = "Option::is_none")]
3981    pub r#type: Option<IssueRelationType>,
3982    /// The identifier of the issue that is related to another issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3983    #[serde(default, skip_serializing_if = "Option::is_none")]
3984    pub issue_id: Option<String>,
3985    /// The identifier of the related issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3986    #[serde(default, skip_serializing_if = "Option::is_none")]
3987    pub related_issue_id: Option<String>,
3988}
3989#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3990#[serde(rename_all = "camelCase")]
3991pub struct IssueRelationUpdateInput {
3992    /// The type of relation of the issue to the related issue.
3993    #[serde(default, skip_serializing_if = "Option::is_none")]
3994    pub r#type: Option<String>,
3995    /// The identifier of the issue that is related to another issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3996    #[serde(default, skip_serializing_if = "Option::is_none")]
3997    pub issue_id: Option<String>,
3998    /// The identifier of the related issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
3999    #[serde(default, skip_serializing_if = "Option::is_none")]
4000    pub related_issue_id: Option<String>,
4001}
4002/// Issue sorting options.
4003#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4004#[serde(rename_all = "camelCase")]
4005pub struct IssueSortInput {
4006    /// Sort by priority
4007    #[serde(default, skip_serializing_if = "Option::is_none")]
4008    pub priority: Option<Box<PrioritySort>>,
4009    /// Sort by estimate
4010    #[serde(default, skip_serializing_if = "Option::is_none")]
4011    pub estimate: Option<Box<EstimateSort>>,
4012    /// Sort by issue title
4013    #[serde(default, skip_serializing_if = "Option::is_none")]
4014    pub title: Option<Box<TitleSort>>,
4015    /// Sort by label
4016    #[serde(default, skip_serializing_if = "Option::is_none")]
4017    pub label: Option<Box<LabelSort>>,
4018    /// Sort by label group
4019    #[serde(default, skip_serializing_if = "Option::is_none")]
4020    pub label_group: Option<Box<LabelGroupSort>>,
4021    /// Sort by SLA status
4022    #[serde(default, skip_serializing_if = "Option::is_none")]
4023    pub sla_status: Option<Box<SlaStatusSort>>,
4024    /// Sort by issue creation date
4025    #[serde(default, skip_serializing_if = "Option::is_none")]
4026    pub created_at: Option<Box<CreatedAtSort>>,
4027    /// Sort by issue update date
4028    #[serde(default, skip_serializing_if = "Option::is_none")]
4029    pub updated_at: Option<Box<UpdatedAtSort>>,
4030    /// Sort by issue completion date
4031    #[serde(default, skip_serializing_if = "Option::is_none")]
4032    pub completed_at: Option<Box<CompletedAtSort>>,
4033    /// Sort by issue due date
4034    #[serde(default, skip_serializing_if = "Option::is_none")]
4035    pub due_date: Option<Box<DueDateSort>>,
4036    /// `Internal` Sort by the accumulated time in the current workflow state
4037    #[serde(default, skip_serializing_if = "Option::is_none")]
4038    pub accumulated_state_updated_at: Option<Box<TimeInStatusSort>>,
4039    /// Sort by Cycle start date
4040    #[serde(default, skip_serializing_if = "Option::is_none")]
4041    pub cycle: Option<Box<CycleSort>>,
4042    /// Sort by Project Milestone target date
4043    #[serde(default, skip_serializing_if = "Option::is_none")]
4044    pub milestone: Option<Box<MilestoneSort>>,
4045    /// Sort by assignee name
4046    #[serde(default, skip_serializing_if = "Option::is_none")]
4047    pub assignee: Option<Box<AssigneeSort>>,
4048    /// Sort by delegate name
4049    #[serde(default, skip_serializing_if = "Option::is_none")]
4050    pub delegate: Option<Box<DelegateSort>>,
4051    /// Sort by Project name
4052    #[serde(default, skip_serializing_if = "Option::is_none")]
4053    pub project: Option<Box<ProjectSort>>,
4054    /// Sort by Team name
4055    #[serde(default, skip_serializing_if = "Option::is_none")]
4056    pub team: Option<Box<TeamSort>>,
4057    /// Sort by manual order
4058    #[serde(default, skip_serializing_if = "Option::is_none")]
4059    pub manual: Option<Box<ManualSort>>,
4060    /// Sort by workflow state type
4061    #[serde(default, skip_serializing_if = "Option::is_none")]
4062    pub workflow_state: Option<Box<WorkflowStateSort>>,
4063    /// Sort by customer name
4064    #[serde(default, skip_serializing_if = "Option::is_none")]
4065    pub customer: Option<Box<CustomerSort>>,
4066    /// Sort by customer revenue
4067    #[serde(default, skip_serializing_if = "Option::is_none")]
4068    pub customer_revenue: Option<Box<CustomerRevenueSort>>,
4069    /// Sort by number of customers associated with the issue
4070    #[serde(default, skip_serializing_if = "Option::is_none")]
4071    pub customer_count: Option<Box<CustomerCountSort>>,
4072    /// Sort by number of important customers associated with the issue
4073    #[serde(default, skip_serializing_if = "Option::is_none")]
4074    pub customer_important_count: Option<Box<CustomerImportantCountSort>>,
4075    /// Sort by the root issue
4076    #[serde(default, skip_serializing_if = "Option::is_none")]
4077    pub root_issue: Option<Box<RootIssueSort>>,
4078    /// `ALPHA` Sort by number of links associated with the issue
4079    #[serde(default, skip_serializing_if = "Option::is_none")]
4080    pub link_count: Option<Box<LinkCountSort>>,
4081}
4082/// IssueSuggestion collection filtering options.
4083#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4084#[serde(rename_all = "camelCase")]
4085pub struct IssueSuggestionCollectionFilter {
4086    /// Comparator for the identifier.
4087    #[serde(default, skip_serializing_if = "Option::is_none")]
4088    pub id: Option<Box<IDComparator>>,
4089    /// Comparator for the created at date.
4090    #[serde(default, skip_serializing_if = "Option::is_none")]
4091    pub created_at: Option<Box<DateComparator>>,
4092    /// Comparator for the updated at date.
4093    #[serde(default, skip_serializing_if = "Option::is_none")]
4094    pub updated_at: Option<Box<DateComparator>>,
4095    /// Comparator for the suggestion type.
4096    #[serde(default, skip_serializing_if = "Option::is_none")]
4097    pub r#type: Option<Box<StringComparator>>,
4098    /// Comparator for the suggestion state.
4099    #[serde(default, skip_serializing_if = "Option::is_none")]
4100    pub state: Option<Box<StringComparator>>,
4101    /// Filters that the suggested user must satisfy.
4102    #[serde(default, skip_serializing_if = "Option::is_none")]
4103    pub suggested_user: Option<Box<NullableUserFilter>>,
4104    /// Filters that the suggested project must satisfy.
4105    #[serde(default, skip_serializing_if = "Option::is_none")]
4106    pub suggested_project: Option<Box<NullableProjectFilter>>,
4107    /// Filters that the suggested team must satisfy.
4108    #[serde(default, skip_serializing_if = "Option::is_none")]
4109    pub suggested_team: Option<Box<NullableTeamFilter>>,
4110    /// Filters that the suggested label must satisfy.
4111    #[serde(default, skip_serializing_if = "Option::is_none")]
4112    pub suggested_label: Option<Box<IssueLabelFilter>>,
4113    /// Compound filters, all of which need to be matched by the suggestion.
4114    #[serde(default, skip_serializing_if = "Option::is_none")]
4115    pub and: Option<Vec<Box<IssueSuggestionCollectionFilter>>>,
4116    /// Compound filters, one of which need to be matched by the suggestion.
4117    #[serde(default, skip_serializing_if = "Option::is_none")]
4118    pub or: Option<Vec<Box<IssueSuggestionCollectionFilter>>>,
4119    /// Filters that needs to be matched by some suggestions.
4120    #[serde(default, skip_serializing_if = "Option::is_none")]
4121    pub some: Option<Box<IssueSuggestionFilter>>,
4122    /// Filters that needs to be matched by all suggestions.
4123    #[serde(default, skip_serializing_if = "Option::is_none")]
4124    pub every: Option<Box<IssueSuggestionFilter>>,
4125    /// Comparator for the collection length.
4126    #[serde(default, skip_serializing_if = "Option::is_none")]
4127    pub length: Option<Box<NumberComparator>>,
4128}
4129/// IssueSuggestion filtering options.
4130#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4131#[serde(rename_all = "camelCase")]
4132pub struct IssueSuggestionFilter {
4133    /// Comparator for the identifier.
4134    #[serde(default, skip_serializing_if = "Option::is_none")]
4135    pub id: Option<Box<IDComparator>>,
4136    /// Comparator for the created at date.
4137    #[serde(default, skip_serializing_if = "Option::is_none")]
4138    pub created_at: Option<Box<DateComparator>>,
4139    /// Comparator for the updated at date.
4140    #[serde(default, skip_serializing_if = "Option::is_none")]
4141    pub updated_at: Option<Box<DateComparator>>,
4142    /// Comparator for the suggestion type.
4143    #[serde(default, skip_serializing_if = "Option::is_none")]
4144    pub r#type: Option<Box<StringComparator>>,
4145    /// Comparator for the suggestion state.
4146    #[serde(default, skip_serializing_if = "Option::is_none")]
4147    pub state: Option<Box<StringComparator>>,
4148    /// Filters that the suggested user must satisfy.
4149    #[serde(default, skip_serializing_if = "Option::is_none")]
4150    pub suggested_user: Option<Box<NullableUserFilter>>,
4151    /// Filters that the suggested project must satisfy.
4152    #[serde(default, skip_serializing_if = "Option::is_none")]
4153    pub suggested_project: Option<Box<NullableProjectFilter>>,
4154    /// Filters that the suggested team must satisfy.
4155    #[serde(default, skip_serializing_if = "Option::is_none")]
4156    pub suggested_team: Option<Box<NullableTeamFilter>>,
4157    /// Filters that the suggested label must satisfy.
4158    #[serde(default, skip_serializing_if = "Option::is_none")]
4159    pub suggested_label: Option<Box<IssueLabelFilter>>,
4160    /// Compound filters, all of which need to be matched by the suggestion.
4161    #[serde(default, skip_serializing_if = "Option::is_none")]
4162    pub and: Option<Vec<Box<IssueSuggestionFilter>>>,
4163    /// Compound filters, one of which need to be matched by the suggestion.
4164    #[serde(default, skip_serializing_if = "Option::is_none")]
4165    pub or: Option<Vec<Box<IssueSuggestionFilter>>>,
4166}
4167/// `ALPHA` The properties of the issueToRelease to create.
4168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4169#[serde(rename_all = "camelCase")]
4170pub struct IssueToReleaseCreateInput {
4171    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
4172    #[serde(default, skip_serializing_if = "Option::is_none")]
4173    pub id: Option<String>,
4174    /// The identifier of the issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4175    #[serde(default, skip_serializing_if = "Option::is_none")]
4176    pub issue_id: Option<String>,
4177    /// The identifier of the release
4178    #[serde(default, skip_serializing_if = "Option::is_none")]
4179    pub release_id: Option<String>,
4180}
4181#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4182#[serde(rename_all = "camelCase")]
4183pub struct IssueUpdateInput {
4184    /// The issue title.
4185    #[serde(default, skip_serializing_if = "Option::is_none")]
4186    pub title: Option<String>,
4187    /// The issue description in markdown format.
4188    #[serde(default, skip_serializing_if = "Option::is_none")]
4189    pub description: Option<String>,
4190    /// `Internal` The issue description as a Prosemirror document.
4191    #[serde(default, skip_serializing_if = "Option::is_none")]
4192    pub description_data: Option<serde_json::Value>,
4193    /// The identifier of the user to assign the issue to.
4194    #[serde(default, skip_serializing_if = "Option::is_none")]
4195    pub assignee_id: Option<String>,
4196    /// The identifier of the agent user to delegate the issue to.
4197    #[serde(default, skip_serializing_if = "Option::is_none")]
4198    pub delegate_id: Option<String>,
4199    /// The identifier of the parent issue. Can be a UUID or issue identifier (e.g., 'LIN-123').
4200    #[serde(default, skip_serializing_if = "Option::is_none")]
4201    pub parent_id: Option<String>,
4202    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
4203    #[serde(default, skip_serializing_if = "Option::is_none")]
4204    pub priority: Option<i64>,
4205    /// The estimated complexity of the issue.
4206    #[serde(default, skip_serializing_if = "Option::is_none")]
4207    pub estimate: Option<i64>,
4208    /// The identifiers of the users subscribing to this ticket.
4209    #[serde(default, skip_serializing_if = "Option::is_none")]
4210    pub subscriber_ids: Option<Vec<String>>,
4211    /// The identifiers of the issue labels associated with this ticket.
4212    #[serde(default, skip_serializing_if = "Option::is_none")]
4213    pub label_ids: Option<Vec<String>>,
4214    /// The identifiers of the issue labels to be added to this issue.
4215    #[serde(default, skip_serializing_if = "Option::is_none")]
4216    pub added_label_ids: Option<Vec<String>>,
4217    /// The identifiers of the issue labels to be removed from this issue.
4218    #[serde(default, skip_serializing_if = "Option::is_none")]
4219    pub removed_label_ids: Option<Vec<String>>,
4220    /// The identifier of the team associated with the issue.
4221    #[serde(default, skip_serializing_if = "Option::is_none")]
4222    pub team_id: Option<String>,
4223    /// The cycle associated with the issue.
4224    #[serde(default, skip_serializing_if = "Option::is_none")]
4225    pub cycle_id: Option<String>,
4226    /// The project associated with the issue.
4227    #[serde(default, skip_serializing_if = "Option::is_none")]
4228    pub project_id: Option<String>,
4229    /// The project milestone associated with the issue.
4230    #[serde(default, skip_serializing_if = "Option::is_none")]
4231    pub project_milestone_id: Option<String>,
4232    /// The ID of the last template applied to the issue.
4233    #[serde(default, skip_serializing_if = "Option::is_none")]
4234    pub last_applied_template_id: Option<String>,
4235    /// The team state of the issue.
4236    #[serde(default, skip_serializing_if = "Option::is_none")]
4237    pub state_id: Option<String>,
4238    /// The position of the issue related to other issues.
4239    #[serde(default, skip_serializing_if = "Option::is_none")]
4240    pub sort_order: Option<f64>,
4241    /// The position of the issue related to other issues, when ordered by priority.
4242    #[serde(default, skip_serializing_if = "Option::is_none")]
4243    pub priority_sort_order: Option<f64>,
4244    /// The position of the issue in parent's sub-issue list.
4245    #[serde(default, skip_serializing_if = "Option::is_none")]
4246    pub sub_issue_sort_order: Option<f64>,
4247    /// The date at which the issue is due.
4248    #[serde(default, skip_serializing_if = "Option::is_none")]
4249    pub due_date: Option<chrono::NaiveDate>,
4250    /// Whether the issue has been trashed.
4251    #[serde(default, skip_serializing_if = "Option::is_none")]
4252    pub trashed: Option<bool>,
4253    /// `Internal` The timestamp at which an issue will be considered in breach of SLA.
4254    #[serde(default, skip_serializing_if = "Option::is_none")]
4255    pub sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
4256    /// `Internal` The timestamp at which the issue's SLA was started.
4257    #[serde(default, skip_serializing_if = "Option::is_none")]
4258    pub sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
4259    /// The time until an issue will be snoozed in Triage view.
4260    #[serde(default, skip_serializing_if = "Option::is_none")]
4261    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
4262    /// The identifier of the user who snoozed the issue.
4263    #[serde(default, skip_serializing_if = "Option::is_none")]
4264    pub snoozed_by_id: Option<String>,
4265    /// The SLA day count type for the issue. Whether SLA should be business days only or calendar days (default).
4266    #[serde(default, skip_serializing_if = "Option::is_none")]
4267    pub sla_type: Option<SLADayCountType>,
4268    /// Whether the issue was automatically closed because its parent issue was closed.
4269    #[serde(default, skip_serializing_if = "Option::is_none")]
4270    pub auto_closed_by_parent_closing: Option<bool>,
4271}
4272#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4273#[serde(rename_all = "camelCase")]
4274pub struct JiraConfigurationInput {
4275    /// The Jira personal access token.
4276    #[serde(default, skip_serializing_if = "Option::is_none")]
4277    pub access_token: Option<String>,
4278    /// The Jira user's email address. A username is also accepted on Jira Server / DC.
4279    #[serde(default, skip_serializing_if = "Option::is_none")]
4280    pub email: Option<String>,
4281    /// The Jira installation hostname.
4282    #[serde(default, skip_serializing_if = "Option::is_none")]
4283    pub hostname: Option<String>,
4284    /// Whether this integration will be setup using the manual webhook flow.
4285    #[serde(default, skip_serializing_if = "Option::is_none")]
4286    pub manual_setup: Option<bool>,
4287}
4288#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4289#[serde(rename_all = "camelCase")]
4290pub struct JiraLinearMappingInput {
4291    /// The Jira id for this project.
4292    #[serde(default, skip_serializing_if = "Option::is_none")]
4293    pub jira_project_id: Option<String>,
4294    /// The Linear team id to map to the given project.
4295    #[serde(default, skip_serializing_if = "Option::is_none")]
4296    pub linear_team_id: Option<String>,
4297    /// Whether the sync for this mapping is bidirectional.
4298    #[serde(default, skip_serializing_if = "Option::is_none")]
4299    pub bidirectional: Option<bool>,
4300    /// Whether this mapping is the default one for issue creation.
4301    #[serde(default, skip_serializing_if = "Option::is_none")]
4302    pub default: Option<bool>,
4303}
4304#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4305#[serde(rename_all = "camelCase")]
4306pub struct JiraPersonalSettingsInput {
4307    /// The name of the Jira site currently authorized through the integration.
4308    #[serde(default, skip_serializing_if = "Option::is_none")]
4309    pub site_name: Option<String>,
4310}
4311#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4312#[serde(rename_all = "camelCase")]
4313pub struct JiraProjectDataInput {
4314    /// The Jira id for this project.
4315    #[serde(default, skip_serializing_if = "Option::is_none")]
4316    pub id: Option<String>,
4317    /// The Jira key for this project, such as ENG.
4318    #[serde(default, skip_serializing_if = "Option::is_none")]
4319    pub key: Option<String>,
4320    /// The Jira name for this project, such as Engineering.
4321    #[serde(default, skip_serializing_if = "Option::is_none")]
4322    pub name: Option<String>,
4323}
4324#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4325#[serde(rename_all = "camelCase")]
4326pub struct JiraSettingsInput {
4327    /// The mapping of Jira project id => Linear team id.
4328    #[serde(default, skip_serializing_if = "Option::is_none")]
4329    pub project_mapping: Option<Vec<Box<JiraLinearMappingInput>>>,
4330    /// The Jira projects for the organization.
4331    #[serde(default, skip_serializing_if = "Option::is_none")]
4332    pub projects: Option<Vec<Box<JiraProjectDataInput>>>,
4333    /// Whether this integration is for Jira Server or not.
4334    #[serde(default, skip_serializing_if = "Option::is_none")]
4335    pub is_jira_server: Option<bool>,
4336    /// 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
4337    #[serde(default, skip_serializing_if = "Option::is_none")]
4338    pub setup_pending: Option<bool>,
4339    /// Whether this integration is using a manual setup flow.
4340    #[serde(default, skip_serializing_if = "Option::is_none")]
4341    pub manual_setup: Option<bool>,
4342    /// The label of the Jira instance, for visual identification purposes only
4343    #[serde(default, skip_serializing_if = "Option::is_none")]
4344    pub label: Option<String>,
4345    /// The status names per issue type, per project.
4346    #[serde(default, skip_serializing_if = "Option::is_none")]
4347    pub status_names_per_issue_type: Option<serde_json::Value>,
4348}
4349#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4350#[serde(rename_all = "camelCase")]
4351pub struct JiraUpdateInput {
4352    /// The id of the integration to update.
4353    #[serde(default, skip_serializing_if = "Option::is_none")]
4354    pub id: Option<String>,
4355    /// Whether to refresh Jira Projects for the integration.
4356    #[serde(default, skip_serializing_if = "Option::is_none")]
4357    pub update_projects: Option<bool>,
4358    /// Whether to refresh Jira metadata for the integration.
4359    #[serde(default, skip_serializing_if = "Option::is_none")]
4360    pub update_metadata: Option<bool>,
4361    /// Whether to delete the current manual webhook configuration.
4362    #[serde(default, skip_serializing_if = "Option::is_none")]
4363    pub delete_webhook: Option<bool>,
4364    /// Webhook secret for a new manual configuration.
4365    #[serde(default, skip_serializing_if = "Option::is_none")]
4366    pub webhook_secret: Option<String>,
4367    /// Whether the Jira instance does not support webhook secrets.
4368    #[serde(default, skip_serializing_if = "Option::is_none")]
4369    pub no_secret: Option<bool>,
4370    /// The Jira personal access token.
4371    #[serde(default, skip_serializing_if = "Option::is_none")]
4372    pub access_token: Option<String>,
4373    /// The Jira user email address associated with the personal access token.
4374    #[serde(default, skip_serializing_if = "Option::is_none")]
4375    pub email: Option<String>,
4376}
4377#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4378#[serde(rename_all = "camelCase")]
4379pub struct JoinOrganizationInput {
4380    /// The identifier of the organization.
4381    #[serde(default, skip_serializing_if = "Option::is_none")]
4382    pub organization_id: Option<String>,
4383    /// An optional invite link for an organization.
4384    #[serde(default, skip_serializing_if = "Option::is_none")]
4385    pub invite_link: Option<String>,
4386}
4387/// Issue label-group sorting options.
4388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4389#[serde(rename_all = "camelCase")]
4390pub struct LabelGroupSort {
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    /// The label-group id to sort by
4398    #[serde(default, skip_serializing_if = "Option::is_none")]
4399    pub label_group_id: Option<String>,
4400}
4401/// Issue label sorting options.
4402#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4403#[serde(rename_all = "camelCase")]
4404pub struct LabelSort {
4405    /// Whether nulls should be sorted first or last
4406    #[serde(default, skip_serializing_if = "Option::is_none")]
4407    pub nulls: Option<PaginationNulls>,
4408    /// The order for the individual sort
4409    #[serde(default, skip_serializing_if = "Option::is_none")]
4410    pub order: Option<PaginationSortOrder>,
4411}
4412#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4413#[serde(rename_all = "camelCase")]
4414pub struct LaunchDarklySettingsInput {
4415    /// The project key of the LaunchDarkly integration.
4416    #[serde(default, skip_serializing_if = "Option::is_none")]
4417    pub project_key: Option<String>,
4418    /// The environment of the LaunchDarkly integration.
4419    #[serde(default, skip_serializing_if = "Option::is_none")]
4420    pub environment: Option<String>,
4421}
4422/// `ALPHA` Issue link count sorting options.
4423#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4424#[serde(rename_all = "camelCase")]
4425pub struct LinkCountSort {
4426    /// Whether nulls should be sorted first or last
4427    #[serde(default, skip_serializing_if = "Option::is_none")]
4428    pub nulls: Option<PaginationNulls>,
4429    /// The order for the individual sort
4430    #[serde(default, skip_serializing_if = "Option::is_none")]
4431    pub order: Option<PaginationSortOrder>,
4432}
4433/// Issue manual sorting options.
4434#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4435#[serde(rename_all = "camelCase")]
4436pub struct ManualSort {
4437    /// Whether nulls should be sorted first or last
4438    #[serde(default, skip_serializing_if = "Option::is_none")]
4439    pub nulls: Option<PaginationNulls>,
4440    /// The order for the individual sort
4441    #[serde(default, skip_serializing_if = "Option::is_none")]
4442    pub order: Option<PaginationSortOrder>,
4443}
4444#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4445#[serde(rename_all = "camelCase")]
4446pub struct MicrosoftTeamsSettingsInput {
4447    /// The display name of the Azure AD tenant.
4448    #[serde(default, skip_serializing_if = "Option::is_none")]
4449    pub tenant_name: Option<String>,
4450}
4451/// Issue project milestone options.
4452#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4453#[serde(rename_all = "camelCase")]
4454pub struct MilestoneSort {
4455    /// Whether nulls should be sorted first or last
4456    #[serde(default, skip_serializing_if = "Option::is_none")]
4457    pub nulls: Option<PaginationNulls>,
4458    /// The order for the individual sort
4459    #[serde(default, skip_serializing_if = "Option::is_none")]
4460    pub order: Option<PaginationSortOrder>,
4461}
4462/// Customer name sorting options.
4463#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4464#[serde(rename_all = "camelCase")]
4465pub struct NameSort {
4466    /// Whether nulls should be sorted first or last
4467    #[serde(default, skip_serializing_if = "Option::is_none")]
4468    pub nulls: Option<PaginationNulls>,
4469    /// The order for the individual sort
4470    #[serde(default, skip_serializing_if = "Option::is_none")]
4471    pub order: Option<PaginationSortOrder>,
4472}
4473#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4474#[serde(rename_all = "camelCase")]
4475pub struct NotificationCategoryPreferencesInput {
4476    /// The preferences for notifications about assignments.
4477    #[serde(default, skip_serializing_if = "Option::is_none")]
4478    pub assignments: Option<Box<PartialNotificationChannelPreferencesInput>>,
4479    /// The preferences for notifications about status changes.
4480    #[serde(default, skip_serializing_if = "Option::is_none")]
4481    pub status_changes: Option<Box<PartialNotificationChannelPreferencesInput>>,
4482    /// The preferences for notifications about comments and replies.
4483    #[serde(default, skip_serializing_if = "Option::is_none")]
4484    pub comments_and_replies: Option<Box<PartialNotificationChannelPreferencesInput>>,
4485    /// The preferences for notifications about mentions.
4486    #[serde(default, skip_serializing_if = "Option::is_none")]
4487    pub mentions: Option<Box<PartialNotificationChannelPreferencesInput>>,
4488    /// The preferences for notifications about reactions.
4489    #[serde(default, skip_serializing_if = "Option::is_none")]
4490    pub reactions: Option<Box<PartialNotificationChannelPreferencesInput>>,
4491    /// The preferences for notifications about subscriptions.
4492    #[serde(default, skip_serializing_if = "Option::is_none")]
4493    pub subscriptions: Option<Box<PartialNotificationChannelPreferencesInput>>,
4494    /// The preferences for notifications about document changes.
4495    #[serde(default, skip_serializing_if = "Option::is_none")]
4496    pub document_changes: Option<Box<PartialNotificationChannelPreferencesInput>>,
4497    /// The preferences for notifications about posts and updates.
4498    #[serde(default, skip_serializing_if = "Option::is_none")]
4499    pub posts_and_updates: Option<Box<PartialNotificationChannelPreferencesInput>>,
4500    /// The preferences for notifications about reminders.
4501    #[serde(default, skip_serializing_if = "Option::is_none")]
4502    pub reminders: Option<Box<PartialNotificationChannelPreferencesInput>>,
4503    /// The preferences for notifications about reviews.
4504    #[serde(default, skip_serializing_if = "Option::is_none")]
4505    pub reviews: Option<Box<PartialNotificationChannelPreferencesInput>>,
4506    /// The preferences for notifications about apps and integrations.
4507    #[serde(default, skip_serializing_if = "Option::is_none")]
4508    pub apps_and_integrations: Option<Box<PartialNotificationChannelPreferencesInput>>,
4509    /// The preferences for notifications about triage.
4510    #[serde(default, skip_serializing_if = "Option::is_none")]
4511    pub triage: Option<Box<PartialNotificationChannelPreferencesInput>>,
4512    /// The preferences for notifications about customers.
4513    #[serde(default, skip_serializing_if = "Option::is_none")]
4514    pub customers: Option<Box<PartialNotificationChannelPreferencesInput>>,
4515    /// The preferences for notifications about feed summaries.
4516    #[serde(default, skip_serializing_if = "Option::is_none")]
4517    pub feed: Option<Box<PartialNotificationChannelPreferencesInput>>,
4518}
4519#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4520#[serde(rename_all = "camelCase")]
4521pub struct NotificationDeliveryPreferencesChannelInput {
4522    /// The schedule for notifications on this channel.
4523    #[serde(default, skip_serializing_if = "Option::is_none")]
4524    pub schedule: Option<Box<NotificationDeliveryPreferencesScheduleInput>>,
4525}
4526#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4527#[serde(rename_all = "camelCase")]
4528pub struct NotificationDeliveryPreferencesDayInput {
4529    /// The time notifications start.
4530    #[serde(default, skip_serializing_if = "Option::is_none")]
4531    pub start: Option<String>,
4532    /// The time notifications end.
4533    #[serde(default, skip_serializing_if = "Option::is_none")]
4534    pub end: Option<String>,
4535}
4536#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4537#[serde(rename_all = "camelCase")]
4538pub struct NotificationDeliveryPreferencesInput {
4539    /// The delivery preferences for the mobile channel.
4540    #[serde(default, skip_serializing_if = "Option::is_none")]
4541    pub mobile: Option<Box<NotificationDeliveryPreferencesChannelInput>>,
4542}
4543#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4544#[serde(rename_all = "camelCase")]
4545pub struct NotificationDeliveryPreferencesScheduleInput {
4546    /// Whether the schedule is disabled.
4547    #[serde(default, skip_serializing_if = "Option::is_none")]
4548    pub disabled: Option<bool>,
4549    /// Delivery preferences for Sunday.
4550    #[serde(default, skip_serializing_if = "Option::is_none")]
4551    pub sunday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4552    /// Delivery preferences for Monday.
4553    #[serde(default, skip_serializing_if = "Option::is_none")]
4554    pub monday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4555    /// Delivery preferences for Tuesday.
4556    #[serde(default, skip_serializing_if = "Option::is_none")]
4557    pub tuesday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4558    /// Delivery preferences for Wednesday.
4559    #[serde(default, skip_serializing_if = "Option::is_none")]
4560    pub wednesday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4561    /// Delivery preferences for Thursday.
4562    #[serde(default, skip_serializing_if = "Option::is_none")]
4563    pub thursday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4564    /// Delivery preferences for Friday.
4565    #[serde(default, skip_serializing_if = "Option::is_none")]
4566    pub friday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4567    /// Delivery preferences for Saturday.
4568    #[serde(default, skip_serializing_if = "Option::is_none")]
4569    pub saturday: Option<Box<NotificationDeliveryPreferencesDayInput>>,
4570}
4571/// Describes the type and id of the entity to target for notifications.
4572#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4573#[serde(rename_all = "camelCase")]
4574pub struct NotificationEntityInput {
4575    /// The id of the issue related to the notification.
4576    #[serde(default, skip_serializing_if = "Option::is_none")]
4577    pub issue_id: Option<String>,
4578    /// `DEPRECATED` The id of the project related to the notification.
4579    #[serde(default, skip_serializing_if = "Option::is_none")]
4580    pub project_id: Option<String>,
4581    /// The id of the initiative related to the notification.
4582    #[serde(default, skip_serializing_if = "Option::is_none")]
4583    pub initiative_id: Option<String>,
4584    /// The id of the project update related to the notification.
4585    #[serde(default, skip_serializing_if = "Option::is_none")]
4586    pub project_update_id: Option<String>,
4587    /// The id of the initiative update related to the notification.
4588    #[serde(default, skip_serializing_if = "Option::is_none")]
4589    pub initiative_update_id: Option<String>,
4590    /// The id of the OAuth client approval related to the notification.
4591    #[serde(default, skip_serializing_if = "Option::is_none")]
4592    pub oauth_client_approval_id: Option<String>,
4593    /// The id of the notification.
4594    #[serde(default, skip_serializing_if = "Option::is_none")]
4595    pub id: Option<String>,
4596}
4597/// Notification filtering options.
4598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4599#[serde(rename_all = "camelCase")]
4600pub struct NotificationFilter {
4601    /// Comparator for the identifier.
4602    #[serde(default, skip_serializing_if = "Option::is_none")]
4603    pub id: Option<Box<IDComparator>>,
4604    /// Comparator for the created at date.
4605    #[serde(default, skip_serializing_if = "Option::is_none")]
4606    pub created_at: Option<Box<DateComparator>>,
4607    /// Comparator for the updated at date.
4608    #[serde(default, skip_serializing_if = "Option::is_none")]
4609    pub updated_at: Option<Box<DateComparator>>,
4610    /// Comparator for the notification type.
4611    #[serde(default, skip_serializing_if = "Option::is_none")]
4612    pub r#type: Option<Box<StringComparator>>,
4613    /// Comparator for the archived at date.
4614    #[serde(default, skip_serializing_if = "Option::is_none")]
4615    pub archived_at: Option<Box<DateComparator>>,
4616    /// Compound filters, all of which need to be matched by the notification.
4617    #[serde(default, skip_serializing_if = "Option::is_none")]
4618    pub and: Option<Vec<Box<NotificationFilter>>>,
4619    /// Compound filters, one of which need to be matched by the notification.
4620    #[serde(default, skip_serializing_if = "Option::is_none")]
4621    pub or: Option<Vec<Box<NotificationFilter>>>,
4622}
4623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4624#[serde(rename_all = "camelCase")]
4625pub struct NotificationSubscriptionCreateInput {
4626    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
4627    #[serde(default, skip_serializing_if = "Option::is_none")]
4628    pub id: Option<String>,
4629    /// The identifier of the customer to subscribe to.
4630    #[serde(default, skip_serializing_if = "Option::is_none")]
4631    pub customer_id: Option<String>,
4632    /// The identifier of the custom view to subscribe to.
4633    #[serde(default, skip_serializing_if = "Option::is_none")]
4634    pub custom_view_id: Option<String>,
4635    /// The identifier of the cycle to subscribe to.
4636    #[serde(default, skip_serializing_if = "Option::is_none")]
4637    pub cycle_id: Option<String>,
4638    /// The identifier of the initiative to subscribe to.
4639    #[serde(default, skip_serializing_if = "Option::is_none")]
4640    pub initiative_id: Option<String>,
4641    /// The identifier of the label to subscribe to.
4642    #[serde(default, skip_serializing_if = "Option::is_none")]
4643    pub label_id: Option<String>,
4644    /// The identifier of the project to subscribe to.
4645    #[serde(default, skip_serializing_if = "Option::is_none")]
4646    pub project_id: Option<String>,
4647    /// The identifier of the team to subscribe to.
4648    #[serde(default, skip_serializing_if = "Option::is_none")]
4649    pub team_id: Option<String>,
4650    /// The identifier of the user to subscribe to.
4651    #[serde(default, skip_serializing_if = "Option::is_none")]
4652    pub user_id: Option<String>,
4653    /// The type of view to which the notification subscription context is associated with.
4654    #[serde(default, skip_serializing_if = "Option::is_none")]
4655    pub context_view_type: Option<ContextViewType>,
4656    /// The type of user view to which the notification subscription context is associated with.
4657    #[serde(default, skip_serializing_if = "Option::is_none")]
4658    pub user_context_view_type: Option<UserContextViewType>,
4659    /// The types of notifications of the subscription.
4660    #[serde(default, skip_serializing_if = "Option::is_none")]
4661    pub notification_subscription_types: Option<Vec<String>>,
4662    /// Whether the subscription is active.
4663    #[serde(default, skip_serializing_if = "Option::is_none")]
4664    pub active: Option<bool>,
4665}
4666#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4667#[serde(rename_all = "camelCase")]
4668pub struct NotificationSubscriptionUpdateInput {
4669    /// The types of notifications of the subscription.
4670    #[serde(default, skip_serializing_if = "Option::is_none")]
4671    pub notification_subscription_types: Option<Vec<String>>,
4672    /// Whether the subscription is active.
4673    #[serde(default, skip_serializing_if = "Option::is_none")]
4674    pub active: Option<bool>,
4675}
4676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4677#[serde(rename_all = "camelCase")]
4678pub struct NotificationUpdateInput {
4679    /// The time when notification was marked as read.
4680    #[serde(default, skip_serializing_if = "Option::is_none")]
4681    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
4682    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
4683    #[serde(default, skip_serializing_if = "Option::is_none")]
4684    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
4685    /// The id of the project update related to the notification.
4686    #[serde(default, skip_serializing_if = "Option::is_none")]
4687    pub project_update_id: Option<String>,
4688    /// The id of the project update related to the notification.
4689    #[serde(default, skip_serializing_if = "Option::is_none")]
4690    pub initiative_update_id: Option<String>,
4691}
4692#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4693#[serde(rename_all = "camelCase")]
4694pub struct NotionSettingsInput {
4695    /// The ID of the Notion workspace being connected.
4696    #[serde(default, skip_serializing_if = "Option::is_none")]
4697    pub workspace_id: Option<String>,
4698    /// The name of the Notion workspace being connected.
4699    #[serde(default, skip_serializing_if = "Option::is_none")]
4700    pub workspace_name: Option<String>,
4701}
4702/// Comment filtering options.
4703#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4704#[serde(rename_all = "camelCase")]
4705pub struct NullableCommentFilter {
4706    /// Comparator for the identifier.
4707    #[serde(default, skip_serializing_if = "Option::is_none")]
4708    pub id: Option<Box<IDComparator>>,
4709    /// Comparator for the created at date.
4710    #[serde(default, skip_serializing_if = "Option::is_none")]
4711    pub created_at: Option<Box<DateComparator>>,
4712    /// Comparator for the updated at date.
4713    #[serde(default, skip_serializing_if = "Option::is_none")]
4714    pub updated_at: Option<Box<DateComparator>>,
4715    /// Comparator for the comment's body.
4716    #[serde(default, skip_serializing_if = "Option::is_none")]
4717    pub body: Option<Box<StringComparator>>,
4718    /// Filters that the comment's creator must satisfy.
4719    #[serde(default, skip_serializing_if = "Option::is_none")]
4720    pub user: Option<Box<UserFilter>>,
4721    /// Filters that the comment's issue must satisfy.
4722    #[serde(default, skip_serializing_if = "Option::is_none")]
4723    pub issue: Option<Box<NullableIssueFilter>>,
4724    /// Filters that the comment's project update must satisfy.
4725    #[serde(default, skip_serializing_if = "Option::is_none")]
4726    pub project_update: Option<Box<NullableProjectUpdateFilter>>,
4727    /// Filters that the comment parent must satisfy.
4728    #[serde(default, skip_serializing_if = "Option::is_none")]
4729    pub parent: Option<Box<NullableCommentFilter>>,
4730    /// Filters that the comment's document content must satisfy.
4731    #[serde(default, skip_serializing_if = "Option::is_none")]
4732    pub document_content: Option<Box<NullableDocumentContentFilter>>,
4733    /// Filters that the comment's reactions must satisfy.
4734    #[serde(default, skip_serializing_if = "Option::is_none")]
4735    pub reactions: Option<Box<ReactionCollectionFilter>>,
4736    /// Filters that the comment's customer needs must satisfy.
4737    #[serde(default, skip_serializing_if = "Option::is_none")]
4738    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
4739    /// Filter based on the existence of the relation.
4740    #[serde(default, skip_serializing_if = "Option::is_none")]
4741    pub null: Option<bool>,
4742    /// Compound filters, all of which need to be matched by the comment.
4743    #[serde(default, skip_serializing_if = "Option::is_none")]
4744    pub and: Option<Vec<Box<NullableCommentFilter>>>,
4745    /// Compound filters, one of which need to be matched by the comment.
4746    #[serde(default, skip_serializing_if = "Option::is_none")]
4747    pub or: Option<Vec<Box<NullableCommentFilter>>>,
4748}
4749/// Customer filtering options.
4750#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4751#[serde(rename_all = "camelCase")]
4752pub struct NullableCustomerFilter {
4753    /// Comparator for the identifier.
4754    #[serde(default, skip_serializing_if = "Option::is_none")]
4755    pub id: Option<Box<IDComparator>>,
4756    /// Comparator for the created at date.
4757    #[serde(default, skip_serializing_if = "Option::is_none")]
4758    pub created_at: Option<Box<DateComparator>>,
4759    /// Comparator for the updated at date.
4760    #[serde(default, skip_serializing_if = "Option::is_none")]
4761    pub updated_at: Option<Box<DateComparator>>,
4762    /// Comparator for the customer name.
4763    #[serde(default, skip_serializing_if = "Option::is_none")]
4764    pub name: Option<Box<StringComparator>>,
4765    /// Comparator for the customer slack channel ID.
4766    #[serde(default, skip_serializing_if = "Option::is_none")]
4767    pub slack_channel_id: Option<Box<StringComparator>>,
4768    /// Comparator for the customer's domains.
4769    #[serde(default, skip_serializing_if = "Option::is_none")]
4770    pub domains: Option<Box<StringArrayComparator>>,
4771    /// Comparator for the customer's external IDs.
4772    #[serde(default, skip_serializing_if = "Option::is_none")]
4773    pub external_ids: Option<Box<StringArrayComparator>>,
4774    /// Filters that the customer owner must satisfy.
4775    #[serde(default, skip_serializing_if = "Option::is_none")]
4776    pub owner: Option<Box<NullableUserFilter>>,
4777    /// Filters that the customer's needs must satisfy.
4778    #[serde(default, skip_serializing_if = "Option::is_none")]
4779    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
4780    /// Comparator for the customer generated revenue.
4781    #[serde(default, skip_serializing_if = "Option::is_none")]
4782    pub revenue: Option<Box<NumberComparator>>,
4783    /// Comparator for the customer size.
4784    #[serde(default, skip_serializing_if = "Option::is_none")]
4785    pub size: Option<Box<NumberComparator>>,
4786    /// Filters that the customer's status must satisfy.
4787    #[serde(default, skip_serializing_if = "Option::is_none")]
4788    pub status: Option<Box<CustomerStatusFilter>>,
4789    /// Filters that the customer's tier must satisfy.
4790    #[serde(default, skip_serializing_if = "Option::is_none")]
4791    pub tier: Option<Box<CustomerTierFilter>>,
4792    /// Filter based on the existence of the relation.
4793    #[serde(default, skip_serializing_if = "Option::is_none")]
4794    pub null: Option<bool>,
4795    /// Compound filters, all of which need to be matched by the customer.
4796    #[serde(default, skip_serializing_if = "Option::is_none")]
4797    pub and: Option<Vec<Box<NullableCustomerFilter>>>,
4798    /// Compound filters, one of which need to be matched by the customer.
4799    #[serde(default, skip_serializing_if = "Option::is_none")]
4800    pub or: Option<Vec<Box<NullableCustomerFilter>>>,
4801}
4802/// Cycle filtering options.
4803#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4804#[serde(rename_all = "camelCase")]
4805pub struct NullableCycleFilter {
4806    /// Comparator for the identifier.
4807    #[serde(default, skip_serializing_if = "Option::is_none")]
4808    pub id: Option<Box<IDComparator>>,
4809    /// Comparator for the created at date.
4810    #[serde(default, skip_serializing_if = "Option::is_none")]
4811    pub created_at: Option<Box<DateComparator>>,
4812    /// Comparator for the updated at date.
4813    #[serde(default, skip_serializing_if = "Option::is_none")]
4814    pub updated_at: Option<Box<DateComparator>>,
4815    /// Comparator for the cycle number.
4816    #[serde(default, skip_serializing_if = "Option::is_none")]
4817    pub number: Option<Box<NumberComparator>>,
4818    /// Comparator for the cycle name.
4819    #[serde(default, skip_serializing_if = "Option::is_none")]
4820    pub name: Option<Box<StringComparator>>,
4821    /// Comparator for the cycle start date.
4822    #[serde(default, skip_serializing_if = "Option::is_none")]
4823    pub starts_at: Option<Box<DateComparator>>,
4824    /// Comparator for the cycle ends at date.
4825    #[serde(default, skip_serializing_if = "Option::is_none")]
4826    pub ends_at: Option<Box<DateComparator>>,
4827    /// Comparator for the cycle completed at date.
4828    #[serde(default, skip_serializing_if = "Option::is_none")]
4829    pub completed_at: Option<Box<DateComparator>>,
4830    /// Comparator for the filtering active cycle.
4831    #[serde(default, skip_serializing_if = "Option::is_none")]
4832    pub is_active: Option<Box<BooleanComparator>>,
4833    /// Comparator for filtering for whether the cycle is currently in cooldown.
4834    #[serde(default, skip_serializing_if = "Option::is_none")]
4835    pub is_in_cooldown: Option<Box<BooleanComparator>>,
4836    /// Comparator for the filtering next cycle.
4837    #[serde(default, skip_serializing_if = "Option::is_none")]
4838    pub is_next: Option<Box<BooleanComparator>>,
4839    /// Comparator for the filtering previous cycle.
4840    #[serde(default, skip_serializing_if = "Option::is_none")]
4841    pub is_previous: Option<Box<BooleanComparator>>,
4842    /// Comparator for the filtering future cycles.
4843    #[serde(default, skip_serializing_if = "Option::is_none")]
4844    pub is_future: Option<Box<BooleanComparator>>,
4845    /// Comparator for the filtering past cycles.
4846    #[serde(default, skip_serializing_if = "Option::is_none")]
4847    pub is_past: Option<Box<BooleanComparator>>,
4848    /// Filters that the cycles team must satisfy.
4849    #[serde(default, skip_serializing_if = "Option::is_none")]
4850    pub team: Option<Box<TeamFilter>>,
4851    /// Filters that the cycles issues must satisfy.
4852    #[serde(default, skip_serializing_if = "Option::is_none")]
4853    pub issues: Option<Box<IssueCollectionFilter>>,
4854    /// Comparator for the inherited cycle ID.
4855    #[serde(default, skip_serializing_if = "Option::is_none")]
4856    pub inherited_from_id: Option<Box<IDComparator>>,
4857    /// Filter based on the existence of the relation.
4858    #[serde(default, skip_serializing_if = "Option::is_none")]
4859    pub null: Option<bool>,
4860    /// Compound filters, all of which need to be matched by the cycle.
4861    #[serde(default, skip_serializing_if = "Option::is_none")]
4862    pub and: Option<Vec<Box<NullableCycleFilter>>>,
4863    /// Compound filters, one of which need to be matched by the cycle.
4864    #[serde(default, skip_serializing_if = "Option::is_none")]
4865    pub or: Option<Vec<Box<NullableCycleFilter>>>,
4866}
4867/// Comparator for optional dates.
4868#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4869#[serde(rename_all = "camelCase")]
4870pub struct NullableDateComparator {
4871    /// Equals constraint.
4872    #[serde(default, skip_serializing_if = "Option::is_none")]
4873    pub eq: Option<serde_json::Value>,
4874    /// Not-equals constraint.
4875    #[serde(default, skip_serializing_if = "Option::is_none")]
4876    pub neq: Option<serde_json::Value>,
4877    /// In-array constraint.
4878    #[serde(default, skip_serializing_if = "Option::is_none")]
4879    pub r#in: Option<Vec<serde_json::Value>>,
4880    /// Not-in-array constraint.
4881    #[serde(default, skip_serializing_if = "Option::is_none")]
4882    pub nin: Option<Vec<serde_json::Value>>,
4883    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
4884    #[serde(default, skip_serializing_if = "Option::is_none")]
4885    pub null: Option<bool>,
4886    /// Less-than constraint. Matches any values that are less than the given value.
4887    #[serde(default, skip_serializing_if = "Option::is_none")]
4888    pub lt: Option<serde_json::Value>,
4889    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
4890    #[serde(default, skip_serializing_if = "Option::is_none")]
4891    pub lte: Option<serde_json::Value>,
4892    /// Greater-than constraint. Matches any values that are greater than the given value.
4893    #[serde(default, skip_serializing_if = "Option::is_none")]
4894    pub gt: Option<serde_json::Value>,
4895    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
4896    #[serde(default, skip_serializing_if = "Option::is_none")]
4897    pub gte: Option<serde_json::Value>,
4898}
4899/// Document content filtering options.
4900#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4901#[serde(rename_all = "camelCase")]
4902pub struct NullableDocumentContentFilter {
4903    /// Comparator for the identifier.
4904    #[serde(default, skip_serializing_if = "Option::is_none")]
4905    pub id: Option<Box<IDComparator>>,
4906    /// Comparator for the created at date.
4907    #[serde(default, skip_serializing_if = "Option::is_none")]
4908    pub created_at: Option<Box<DateComparator>>,
4909    /// Comparator for the updated at date.
4910    #[serde(default, skip_serializing_if = "Option::is_none")]
4911    pub updated_at: Option<Box<DateComparator>>,
4912    /// Comparator for the document content.
4913    #[serde(default, skip_serializing_if = "Option::is_none")]
4914    pub content: Option<Box<NullableStringComparator>>,
4915    /// Filters that the document content project must satisfy.
4916    #[serde(default, skip_serializing_if = "Option::is_none")]
4917    pub project: Option<Box<ProjectFilter>>,
4918    /// Filters that the document content document must satisfy.
4919    #[serde(default, skip_serializing_if = "Option::is_none")]
4920    pub document: Option<Box<DocumentFilter>>,
4921    /// Filter based on the existence of the relation.
4922    #[serde(default, skip_serializing_if = "Option::is_none")]
4923    pub null: Option<bool>,
4924    /// Compound filters, all of which need to be matched by the user.
4925    #[serde(default, skip_serializing_if = "Option::is_none")]
4926    pub and: Option<Vec<Box<NullableDocumentContentFilter>>>,
4927    /// Compound filters, one of which need to be matched by the user.
4928    #[serde(default, skip_serializing_if = "Option::is_none")]
4929    pub or: Option<Vec<Box<NullableDocumentContentFilter>>>,
4930}
4931/// Nullable comparator for optional durations.
4932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4933#[serde(rename_all = "camelCase")]
4934pub struct NullableDurationComparator {
4935    /// Equals constraint.
4936    #[serde(default, skip_serializing_if = "Option::is_none")]
4937    pub eq: Option<serde_json::Value>,
4938    /// Not-equals constraint.
4939    #[serde(default, skip_serializing_if = "Option::is_none")]
4940    pub neq: Option<serde_json::Value>,
4941    /// In-array constraint.
4942    #[serde(default, skip_serializing_if = "Option::is_none")]
4943    pub r#in: Option<Vec<serde_json::Value>>,
4944    /// Not-in-array constraint.
4945    #[serde(default, skip_serializing_if = "Option::is_none")]
4946    pub nin: Option<Vec<serde_json::Value>>,
4947    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
4948    #[serde(default, skip_serializing_if = "Option::is_none")]
4949    pub null: Option<bool>,
4950    /// Less-than constraint. Matches any values that are less than the given value.
4951    #[serde(default, skip_serializing_if = "Option::is_none")]
4952    pub lt: Option<serde_json::Value>,
4953    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
4954    #[serde(default, skip_serializing_if = "Option::is_none")]
4955    pub lte: Option<serde_json::Value>,
4956    /// Greater-than constraint. Matches any values that are greater than the given value.
4957    #[serde(default, skip_serializing_if = "Option::is_none")]
4958    pub gt: Option<serde_json::Value>,
4959    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
4960    #[serde(default, skip_serializing_if = "Option::is_none")]
4961    pub gte: Option<serde_json::Value>,
4962}
4963/// Issue filtering options.
4964#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4965#[serde(rename_all = "camelCase")]
4966pub struct NullableIssueFilter {
4967    /// Comparator for the identifier.
4968    #[serde(default, skip_serializing_if = "Option::is_none")]
4969    pub id: Option<Box<IssueIDComparator>>,
4970    /// Comparator for the created at date.
4971    #[serde(default, skip_serializing_if = "Option::is_none")]
4972    pub created_at: Option<Box<DateComparator>>,
4973    /// Comparator for the updated at date.
4974    #[serde(default, skip_serializing_if = "Option::is_none")]
4975    pub updated_at: Option<Box<DateComparator>>,
4976    /// Comparator for the issues number.
4977    #[serde(default, skip_serializing_if = "Option::is_none")]
4978    pub number: Option<Box<NumberComparator>>,
4979    /// Comparator for the issues title.
4980    #[serde(default, skip_serializing_if = "Option::is_none")]
4981    pub title: Option<Box<StringComparator>>,
4982    /// Comparator for the issues description.
4983    #[serde(default, skip_serializing_if = "Option::is_none")]
4984    pub description: Option<Box<NullableStringComparator>>,
4985    /// Comparator for the issues priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
4986    #[serde(default, skip_serializing_if = "Option::is_none")]
4987    pub priority: Option<Box<NullableNumberComparator>>,
4988    /// Comparator for the issues estimate.
4989    #[serde(default, skip_serializing_if = "Option::is_none")]
4990    pub estimate: Option<Box<EstimateComparator>>,
4991    /// Comparator for the issues started at date.
4992    #[serde(default, skip_serializing_if = "Option::is_none")]
4993    pub started_at: Option<Box<NullableDateComparator>>,
4994    /// Comparator for the issues triaged at date.
4995    #[serde(default, skip_serializing_if = "Option::is_none")]
4996    pub triaged_at: Option<Box<NullableDateComparator>>,
4997    /// Comparator for the issues completed at date.
4998    #[serde(default, skip_serializing_if = "Option::is_none")]
4999    pub completed_at: Option<Box<NullableDateComparator>>,
5000    /// Comparator for the issues canceled at date.
5001    #[serde(default, skip_serializing_if = "Option::is_none")]
5002    pub canceled_at: Option<Box<NullableDateComparator>>,
5003    /// Comparator for the issues archived at date.
5004    #[serde(default, skip_serializing_if = "Option::is_none")]
5005    pub archived_at: Option<Box<NullableDateComparator>>,
5006    /// Comparator for the issues auto closed at date.
5007    #[serde(default, skip_serializing_if = "Option::is_none")]
5008    pub auto_closed_at: Option<Box<NullableDateComparator>>,
5009    /// Comparator for the issues auto archived at date.
5010    #[serde(default, skip_serializing_if = "Option::is_none")]
5011    pub auto_archived_at: Option<Box<NullableDateComparator>>,
5012    /// Comparator for the issues added to cycle at date.
5013    #[serde(default, skip_serializing_if = "Option::is_none")]
5014    pub added_to_cycle_at: Option<Box<NullableDateComparator>>,
5015    /// Comparator for the period when issue was added to a cycle.
5016    #[serde(default, skip_serializing_if = "Option::is_none")]
5017    pub added_to_cycle_period: Option<Box<CyclePeriodComparator>>,
5018    /// Comparator for the issues due date.
5019    #[serde(default, skip_serializing_if = "Option::is_none")]
5020    pub due_date: Option<Box<NullableTimelessDateComparator>>,
5021    /// `Internal` Comparator for the issue's accumulatedStateUpdatedAt date.
5022    #[serde(default, skip_serializing_if = "Option::is_none")]
5023    pub accumulated_state_updated_at: Option<Box<NullableDateComparator>>,
5024    /// Comparator for the issues snoozed until date.
5025    #[serde(default, skip_serializing_if = "Option::is_none")]
5026    pub snoozed_until_at: Option<Box<NullableDateComparator>>,
5027    /// Filters that the issues assignee must satisfy.
5028    #[serde(default, skip_serializing_if = "Option::is_none")]
5029    pub assignee: Option<Box<NullableUserFilter>>,
5030    /// Filters that the issue's delegated agent must satisfy.
5031    #[serde(default, skip_serializing_if = "Option::is_none")]
5032    pub delegate: Option<Box<NullableUserFilter>>,
5033    /// Filters that the last applied template must satisfy.
5034    #[serde(default, skip_serializing_if = "Option::is_none")]
5035    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
5036    /// `ALPHA` Filters that the recurring issue template must satisfy.
5037    #[serde(default, skip_serializing_if = "Option::is_none")]
5038    pub recurring_issue_template: Option<Box<NullableTemplateFilter>>,
5039    /// Filters that the source must satisfy.
5040    #[serde(default, skip_serializing_if = "Option::is_none")]
5041    pub source_metadata: Option<Box<SourceMetadataComparator>>,
5042    /// Filters that the issues creator must satisfy.
5043    #[serde(default, skip_serializing_if = "Option::is_none")]
5044    pub creator: Option<Box<NullableUserFilter>>,
5045    /// Filters that the issue parent must satisfy.
5046    #[serde(default, skip_serializing_if = "Option::is_none")]
5047    pub parent: Option<Box<NullableIssueFilter>>,
5048    /// Filters that the issues snoozer must satisfy.
5049    #[serde(default, skip_serializing_if = "Option::is_none")]
5050    pub snoozed_by: Option<Box<NullableUserFilter>>,
5051    /// Filters that issue labels must satisfy.
5052    #[serde(default, skip_serializing_if = "Option::is_none")]
5053    pub labels: Option<Box<IssueLabelCollectionFilter>>,
5054    /// Filters that issue subscribers must satisfy.
5055    #[serde(default, skip_serializing_if = "Option::is_none")]
5056    pub subscribers: Option<Box<UserCollectionFilter>>,
5057    /// Comparator for filtering issues which have been shared with users outside of the team.
5058    #[serde(default, skip_serializing_if = "Option::is_none")]
5059    pub has_shared_users: Option<Box<RelationExistsComparator>>,
5060    /// Filters that users the issue has been shared with must satisfy.
5061    #[serde(default, skip_serializing_if = "Option::is_none")]
5062    pub shared_with: Option<Box<UserCollectionFilter>>,
5063    /// Filters that the issues team must satisfy.
5064    #[serde(default, skip_serializing_if = "Option::is_none")]
5065    pub team: Option<Box<TeamFilter>>,
5066    /// Filters that the issues project milestone must satisfy.
5067    #[serde(default, skip_serializing_if = "Option::is_none")]
5068    pub project_milestone: Option<Box<NullableProjectMilestoneFilter>>,
5069    /// Filters that the issues comments must satisfy.
5070    #[serde(default, skip_serializing_if = "Option::is_none")]
5071    pub comments: Option<Box<CommentCollectionFilter>>,
5072    /// Filters that the issue's activities must satisfy.
5073    #[serde(default, skip_serializing_if = "Option::is_none")]
5074    pub activity: Option<Box<ActivityCollectionFilter>>,
5075    /// `Internal` Filters that the issue's suggestions must satisfy.
5076    #[serde(default, skip_serializing_if = "Option::is_none")]
5077    pub suggestions: Option<Box<IssueSuggestionCollectionFilter>>,
5078    /// Filters that the issues cycle must satisfy.
5079    #[serde(default, skip_serializing_if = "Option::is_none")]
5080    pub cycle: Option<Box<NullableCycleFilter>>,
5081    /// Filters that the issues project must satisfy.
5082    #[serde(default, skip_serializing_if = "Option::is_none")]
5083    pub project: Option<Box<NullableProjectFilter>>,
5084    /// Filters that the issues state must satisfy.
5085    #[serde(default, skip_serializing_if = "Option::is_none")]
5086    pub state: Option<Box<WorkflowStateFilter>>,
5087    /// Filters that the child issues must satisfy.
5088    #[serde(default, skip_serializing_if = "Option::is_none")]
5089    pub children: Option<Box<IssueCollectionFilter>>,
5090    /// Filters that the issues attachments must satisfy.
5091    #[serde(default, skip_serializing_if = "Option::is_none")]
5092    pub attachments: Option<Box<AttachmentCollectionFilter>>,
5093    /// `Internal` Comparator for the issues content.
5094    #[serde(default, skip_serializing_if = "Option::is_none")]
5095    pub searchable_content: Option<Box<ContentComparator>>,
5096    /// Comparator for filtering issues with relations.
5097    #[serde(default, skip_serializing_if = "Option::is_none")]
5098    pub has_related_relations: Option<Box<RelationExistsComparator>>,
5099    /// Comparator for filtering issues which are duplicates.
5100    #[serde(default, skip_serializing_if = "Option::is_none")]
5101    pub has_duplicate_relations: Option<Box<RelationExistsComparator>>,
5102    /// Comparator for filtering issues which are blocked.
5103    #[serde(default, skip_serializing_if = "Option::is_none")]
5104    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
5105    /// Comparator for filtering issues which are blocking.
5106    #[serde(default, skip_serializing_if = "Option::is_none")]
5107    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
5108    /// `Internal` Comparator for filtering issues which have suggested related issues.
5109    #[serde(default, skip_serializing_if = "Option::is_none")]
5110    pub has_suggested_related_issues: Option<Box<RelationExistsComparator>>,
5111    /// `Internal` Comparator for filtering issues which have suggested similar issues.
5112    #[serde(default, skip_serializing_if = "Option::is_none")]
5113    pub has_suggested_similar_issues: Option<Box<RelationExistsComparator>>,
5114    /// `Internal` Comparator for filtering issues which have suggested assignees.
5115    #[serde(default, skip_serializing_if = "Option::is_none")]
5116    pub has_suggested_assignees: Option<Box<RelationExistsComparator>>,
5117    /// `Internal` Comparator for filtering issues which have suggested projects.
5118    #[serde(default, skip_serializing_if = "Option::is_none")]
5119    pub has_suggested_projects: Option<Box<RelationExistsComparator>>,
5120    /// `Internal` Comparator for filtering issues which have suggested labels.
5121    #[serde(default, skip_serializing_if = "Option::is_none")]
5122    pub has_suggested_labels: Option<Box<RelationExistsComparator>>,
5123    /// `Internal` Comparator for filtering issues which have suggested teams.
5124    #[serde(default, skip_serializing_if = "Option::is_none")]
5125    pub has_suggested_teams: Option<Box<RelationExistsComparator>>,
5126    /// Comparator for the issues sla status.
5127    #[serde(default, skip_serializing_if = "Option::is_none")]
5128    pub sla_status: Option<Box<SlaStatusComparator>>,
5129    /// Filters that the issues reactions must satisfy.
5130    #[serde(default, skip_serializing_if = "Option::is_none")]
5131    pub reactions: Option<Box<ReactionCollectionFilter>>,
5132    /// Filters that the issue's customer needs must satisfy.
5133    #[serde(default, skip_serializing_if = "Option::is_none")]
5134    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
5135    /// `ALPHA` Filters that the issue's releases must satisfy.
5136    #[serde(default, skip_serializing_if = "Option::is_none")]
5137    pub releases: Option<Box<ReleaseCollectionFilter>>,
5138    /// Count of customers
5139    #[serde(default, skip_serializing_if = "Option::is_none")]
5140    pub customer_count: Option<Box<NumberComparator>>,
5141    /// Count of important customers
5142    #[serde(default, skip_serializing_if = "Option::is_none")]
5143    pub customer_important_count: Option<Box<NumberComparator>>,
5144    /// `Internal` Lead time (created -> completed) comparator.
5145    #[serde(default, skip_serializing_if = "Option::is_none")]
5146    pub lead_time: Option<Box<NullableDurationComparator>>,
5147    /// `Internal` Cycle time (started -> completed) comparator.
5148    #[serde(default, skip_serializing_if = "Option::is_none")]
5149    pub cycle_time: Option<Box<NullableDurationComparator>>,
5150    /// `Internal` Age (created -> now) comparator, defined if the issue is still open.
5151    #[serde(default, skip_serializing_if = "Option::is_none")]
5152    pub age_time: Option<Box<NullableDurationComparator>>,
5153    /// `Internal` Triage time (entered triaged -> triaged) comparator.
5154    #[serde(default, skip_serializing_if = "Option::is_none")]
5155    pub triage_time: Option<Box<NullableDurationComparator>>,
5156    /// Filter based on the existence of the relation.
5157    #[serde(default, skip_serializing_if = "Option::is_none")]
5158    pub null: Option<bool>,
5159    /// Compound filters, all of which need to be matched by the issue.
5160    #[serde(default, skip_serializing_if = "Option::is_none")]
5161    pub and: Option<Vec<Box<NullableIssueFilter>>>,
5162    /// Compound filters, one of which need to be matched by the issue.
5163    #[serde(default, skip_serializing_if = "Option::is_none")]
5164    pub or: Option<Vec<Box<NullableIssueFilter>>>,
5165}
5166/// Comparator for optional numbers.
5167#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5168#[serde(rename_all = "camelCase")]
5169pub struct NullableNumberComparator {
5170    /// Equals constraint.
5171    #[serde(default, skip_serializing_if = "Option::is_none")]
5172    pub eq: Option<f64>,
5173    /// Not-equals constraint.
5174    #[serde(default, skip_serializing_if = "Option::is_none")]
5175    pub neq: Option<f64>,
5176    /// In-array constraint.
5177    #[serde(default, skip_serializing_if = "Option::is_none")]
5178    pub r#in: Option<Vec<f64>>,
5179    /// Not-in-array constraint.
5180    #[serde(default, skip_serializing_if = "Option::is_none")]
5181    pub nin: Option<Vec<f64>>,
5182    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5183    #[serde(default, skip_serializing_if = "Option::is_none")]
5184    pub null: Option<bool>,
5185    /// Less-than constraint. Matches any values that are less than the given value.
5186    #[serde(default, skip_serializing_if = "Option::is_none")]
5187    pub lt: Option<f64>,
5188    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5189    #[serde(default, skip_serializing_if = "Option::is_none")]
5190    pub lte: Option<f64>,
5191    /// Greater-than constraint. Matches any values that are greater than the given value.
5192    #[serde(default, skip_serializing_if = "Option::is_none")]
5193    pub gt: Option<f64>,
5194    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5195    #[serde(default, skip_serializing_if = "Option::is_none")]
5196    pub gte: Option<f64>,
5197}
5198/// Project filtering options.
5199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5200#[serde(rename_all = "camelCase")]
5201pub struct NullableProjectFilter {
5202    /// Comparator for the identifier.
5203    #[serde(default, skip_serializing_if = "Option::is_none")]
5204    pub id: Option<Box<IDComparator>>,
5205    /// Comparator for the created at date.
5206    #[serde(default, skip_serializing_if = "Option::is_none")]
5207    pub created_at: Option<Box<DateComparator>>,
5208    /// Comparator for the updated at date.
5209    #[serde(default, skip_serializing_if = "Option::is_none")]
5210    pub updated_at: Option<Box<DateComparator>>,
5211    /// Comparator for the project name.
5212    #[serde(default, skip_serializing_if = "Option::is_none")]
5213    pub name: Option<Box<StringComparator>>,
5214    /// Comparator for the project slug ID.
5215    #[serde(default, skip_serializing_if = "Option::is_none")]
5216    pub slug_id: Option<Box<StringComparator>>,
5217    /// `DEPRECATED` Comparator for the project state.
5218    #[serde(default, skip_serializing_if = "Option::is_none")]
5219    pub state: Option<Box<StringComparator>>,
5220    /// Filters that the project's status must satisfy.
5221    #[serde(default, skip_serializing_if = "Option::is_none")]
5222    pub status: Option<Box<ProjectStatusFilter>>,
5223    /// Comparator for the projects priority.
5224    #[serde(default, skip_serializing_if = "Option::is_none")]
5225    pub priority: Option<Box<NullableNumberComparator>>,
5226    /// Filters that project labels must satisfy.
5227    #[serde(default, skip_serializing_if = "Option::is_none")]
5228    pub labels: Option<Box<ProjectLabelCollectionFilter>>,
5229    /// `Internal` Comparator for the project's content.
5230    #[serde(default, skip_serializing_if = "Option::is_none")]
5231    pub searchable_content: Option<Box<ContentComparator>>,
5232    /// Comparator for the project started date (when it was moved to an "In Progress" status).
5233    #[serde(default, skip_serializing_if = "Option::is_none")]
5234    pub started_at: Option<Box<NullableDateComparator>>,
5235    /// Comparator for the project completion date.
5236    #[serde(default, skip_serializing_if = "Option::is_none")]
5237    pub completed_at: Option<Box<NullableDateComparator>>,
5238    /// Comparator for the project cancelation date.
5239    #[serde(default, skip_serializing_if = "Option::is_none")]
5240    pub canceled_at: Option<Box<NullableDateComparator>>,
5241    /// Comparator for the project start date.
5242    #[serde(default, skip_serializing_if = "Option::is_none")]
5243    pub start_date: Option<Box<NullableDateComparator>>,
5244    /// Comparator for the project target date.
5245    #[serde(default, skip_serializing_if = "Option::is_none")]
5246    pub target_date: Option<Box<NullableDateComparator>>,
5247    /// Comparator for the project health: onTrack, atRisk, offTrack
5248    #[serde(default, skip_serializing_if = "Option::is_none")]
5249    pub health: Option<Box<StringComparator>>,
5250    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
5251    #[serde(default, skip_serializing_if = "Option::is_none")]
5252    pub health_with_age: Option<Box<StringComparator>>,
5253    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
5254    #[serde(default, skip_serializing_if = "Option::is_none")]
5255    pub activity_type: Option<Box<StringComparator>>,
5256    /// Comparator for filtering projects with relations.
5257    #[serde(default, skip_serializing_if = "Option::is_none")]
5258    pub has_related_relations: Option<Box<RelationExistsComparator>>,
5259    /// `Deprecated` Comparator for filtering projects which this is depended on by.
5260    #[serde(default, skip_serializing_if = "Option::is_none")]
5261    pub has_depended_on_by_relations: Option<Box<RelationExistsComparator>>,
5262    /// `Deprecated`Comparator for filtering projects which this depends on.
5263    #[serde(default, skip_serializing_if = "Option::is_none")]
5264    pub has_depends_on_relations: Option<Box<RelationExistsComparator>>,
5265    /// Comparator for filtering projects which are blocked.
5266    #[serde(default, skip_serializing_if = "Option::is_none")]
5267    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
5268    /// Comparator for filtering projects which are blocking.
5269    #[serde(default, skip_serializing_if = "Option::is_none")]
5270    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
5271    /// Comparator for filtering projects with violated dependencies.
5272    #[serde(default, skip_serializing_if = "Option::is_none")]
5273    pub has_violated_relations: Option<Box<RelationExistsComparator>>,
5274    /// Comparator for the project updates.
5275    #[serde(default, skip_serializing_if = "Option::is_none")]
5276    pub project_updates: Option<Box<ProjectUpdatesCollectionFilter>>,
5277    /// Filters that the projects creator must satisfy.
5278    #[serde(default, skip_serializing_if = "Option::is_none")]
5279    pub creator: Option<Box<UserFilter>>,
5280    /// Filters that the projects lead must satisfy.
5281    #[serde(default, skip_serializing_if = "Option::is_none")]
5282    pub lead: Option<Box<NullableUserFilter>>,
5283    /// Filters that the projects members must satisfy.
5284    #[serde(default, skip_serializing_if = "Option::is_none")]
5285    pub members: Option<Box<UserCollectionFilter>>,
5286    /// Filters that the projects issues must satisfy.
5287    #[serde(default, skip_serializing_if = "Option::is_none")]
5288    pub issues: Option<Box<IssueCollectionFilter>>,
5289    /// Filters that the projects roadmaps must satisfy.
5290    #[serde(default, skip_serializing_if = "Option::is_none")]
5291    pub roadmaps: Option<Box<RoadmapCollectionFilter>>,
5292    /// Filters that the projects initiatives must satisfy.
5293    #[serde(default, skip_serializing_if = "Option::is_none")]
5294    pub initiatives: Option<Box<InitiativeCollectionFilter>>,
5295    /// Filters that the project's milestones must satisfy.
5296    #[serde(default, skip_serializing_if = "Option::is_none")]
5297    pub project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
5298    /// Filters that the project's completed milestones must satisfy.
5299    #[serde(default, skip_serializing_if = "Option::is_none")]
5300    pub completed_project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
5301    /// Filters that the project's next milestone must satisfy.
5302    #[serde(default, skip_serializing_if = "Option::is_none")]
5303    pub next_project_milestone: Option<Box<ProjectMilestoneFilter>>,
5304    /// Filters that the project's team must satisfy.
5305    #[serde(default, skip_serializing_if = "Option::is_none")]
5306    pub accessible_teams: Option<Box<TeamCollectionFilter>>,
5307    /// Filters that the last applied template must satisfy.
5308    #[serde(default, skip_serializing_if = "Option::is_none")]
5309    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
5310    /// Filters that the project's customer needs must satisfy.
5311    #[serde(default, skip_serializing_if = "Option::is_none")]
5312    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
5313    /// Count of customers
5314    #[serde(default, skip_serializing_if = "Option::is_none")]
5315    pub customer_count: Option<Box<NumberComparator>>,
5316    /// Count of important customers
5317    #[serde(default, skip_serializing_if = "Option::is_none")]
5318    pub customer_important_count: Option<Box<NumberComparator>>,
5319    /// Filter based on the existence of the relation.
5320    #[serde(default, skip_serializing_if = "Option::is_none")]
5321    pub null: Option<bool>,
5322    /// Compound filters, all of which need to be matched by the project.
5323    #[serde(default, skip_serializing_if = "Option::is_none")]
5324    pub and: Option<Vec<Box<NullableProjectFilter>>>,
5325    /// Compound filters, one of which need to be matched by the project.
5326    #[serde(default, skip_serializing_if = "Option::is_none")]
5327    pub or: Option<Vec<Box<NullableProjectFilter>>>,
5328}
5329/// Project milestone filtering options.
5330#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5331#[serde(rename_all = "camelCase")]
5332pub struct NullableProjectMilestoneFilter {
5333    /// Comparator for the identifier.
5334    #[serde(default, skip_serializing_if = "Option::is_none")]
5335    pub id: Option<Box<IDComparator>>,
5336    /// Comparator for the created at date.
5337    #[serde(default, skip_serializing_if = "Option::is_none")]
5338    pub created_at: Option<Box<DateComparator>>,
5339    /// Comparator for the updated at date.
5340    #[serde(default, skip_serializing_if = "Option::is_none")]
5341    pub updated_at: Option<Box<DateComparator>>,
5342    /// Comparator for the project milestone name.
5343    #[serde(default, skip_serializing_if = "Option::is_none")]
5344    pub name: Option<Box<NullableStringComparator>>,
5345    /// Comparator for the project milestone target date.
5346    #[serde(default, skip_serializing_if = "Option::is_none")]
5347    pub target_date: Option<Box<NullableDateComparator>>,
5348    /// Filters that the project milestone's project must satisfy.
5349    #[serde(default, skip_serializing_if = "Option::is_none")]
5350    pub project: Option<Box<NullableProjectFilter>>,
5351    /// Filter based on the existence of the relation.
5352    #[serde(default, skip_serializing_if = "Option::is_none")]
5353    pub null: Option<bool>,
5354    /// Compound filters, all of which need to be matched by the project milestone.
5355    #[serde(default, skip_serializing_if = "Option::is_none")]
5356    pub and: Option<Vec<Box<NullableProjectMilestoneFilter>>>,
5357    /// Compound filters, one of which need to be matched by the project milestone.
5358    #[serde(default, skip_serializing_if = "Option::is_none")]
5359    pub or: Option<Vec<Box<NullableProjectMilestoneFilter>>>,
5360}
5361/// Nullable project update filtering options.
5362#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5363#[serde(rename_all = "camelCase")]
5364pub struct NullableProjectUpdateFilter {
5365    /// Comparator for the identifier.
5366    #[serde(default, skip_serializing_if = "Option::is_none")]
5367    pub id: Option<Box<IDComparator>>,
5368    /// Comparator for the created at date.
5369    #[serde(default, skip_serializing_if = "Option::is_none")]
5370    pub created_at: Option<Box<DateComparator>>,
5371    /// Comparator for the updated at date.
5372    #[serde(default, skip_serializing_if = "Option::is_none")]
5373    pub updated_at: Option<Box<DateComparator>>,
5374    /// Filters that the project update creator must satisfy.
5375    #[serde(default, skip_serializing_if = "Option::is_none")]
5376    pub user: Option<Box<UserFilter>>,
5377    /// Filters that the project update project must satisfy.
5378    #[serde(default, skip_serializing_if = "Option::is_none")]
5379    pub project: Option<Box<ProjectFilter>>,
5380    /// Filters that the project updates reactions must satisfy.
5381    #[serde(default, skip_serializing_if = "Option::is_none")]
5382    pub reactions: Option<Box<ReactionCollectionFilter>>,
5383    /// Filter based on the existence of the relation.
5384    #[serde(default, skip_serializing_if = "Option::is_none")]
5385    pub null: Option<bool>,
5386    /// Compound filters, all of which need to be matched by the project update.
5387    #[serde(default, skip_serializing_if = "Option::is_none")]
5388    pub and: Option<Vec<Box<NullableProjectUpdateFilter>>>,
5389    /// Compound filters, one of which need to be matched by the project update.
5390    #[serde(default, skip_serializing_if = "Option::is_none")]
5391    pub or: Option<Vec<Box<NullableProjectUpdateFilter>>>,
5392}
5393/// Comparator for optional strings.
5394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5395#[serde(rename_all = "camelCase")]
5396pub struct NullableStringComparator {
5397    /// Equals constraint.
5398    #[serde(default, skip_serializing_if = "Option::is_none")]
5399    pub eq: Option<String>,
5400    /// Not-equals constraint.
5401    #[serde(default, skip_serializing_if = "Option::is_none")]
5402    pub neq: Option<String>,
5403    /// In-array constraint.
5404    #[serde(default, skip_serializing_if = "Option::is_none")]
5405    pub r#in: Option<Vec<String>>,
5406    /// Not-in-array constraint.
5407    #[serde(default, skip_serializing_if = "Option::is_none")]
5408    pub nin: Option<Vec<String>>,
5409    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5410    #[serde(default, skip_serializing_if = "Option::is_none")]
5411    pub null: Option<bool>,
5412    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
5413    #[serde(default, skip_serializing_if = "Option::is_none")]
5414    pub eq_ignore_case: Option<String>,
5415    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
5416    #[serde(default, skip_serializing_if = "Option::is_none")]
5417    pub neq_ignore_case: Option<String>,
5418    /// Starts with constraint. Matches any values that start with the given string.
5419    #[serde(default, skip_serializing_if = "Option::is_none")]
5420    pub starts_with: Option<String>,
5421    /// Starts with case insensitive constraint. Matches any values that start with the given string.
5422    #[serde(default, skip_serializing_if = "Option::is_none")]
5423    pub starts_with_ignore_case: Option<String>,
5424    /// Doesn't start with constraint. Matches any values that don't start with the given string.
5425    #[serde(default, skip_serializing_if = "Option::is_none")]
5426    pub not_starts_with: Option<String>,
5427    /// Ends with constraint. Matches any values that end with the given string.
5428    #[serde(default, skip_serializing_if = "Option::is_none")]
5429    pub ends_with: Option<String>,
5430    /// Doesn't end with constraint. Matches any values that don't end with the given string.
5431    #[serde(default, skip_serializing_if = "Option::is_none")]
5432    pub not_ends_with: Option<String>,
5433    /// Contains constraint. Matches any values that contain the given string.
5434    #[serde(default, skip_serializing_if = "Option::is_none")]
5435    pub contains: Option<String>,
5436    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
5437    #[serde(default, skip_serializing_if = "Option::is_none")]
5438    pub contains_ignore_case: Option<String>,
5439    /// Doesn't contain constraint. Matches any values that don't contain the given string.
5440    #[serde(default, skip_serializing_if = "Option::is_none")]
5441    pub not_contains: Option<String>,
5442    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
5443    #[serde(default, skip_serializing_if = "Option::is_none")]
5444    pub not_contains_ignore_case: Option<String>,
5445    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
5446    #[serde(default, skip_serializing_if = "Option::is_none")]
5447    pub contains_ignore_case_and_accent: Option<String>,
5448}
5449/// Team filtering options.
5450#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5451#[serde(rename_all = "camelCase")]
5452pub struct NullableTeamFilter {
5453    /// Comparator for the identifier.
5454    #[serde(default, skip_serializing_if = "Option::is_none")]
5455    pub id: Option<Box<IDComparator>>,
5456    /// Comparator for the created at date.
5457    #[serde(default, skip_serializing_if = "Option::is_none")]
5458    pub created_at: Option<Box<DateComparator>>,
5459    /// Comparator for the updated at date.
5460    #[serde(default, skip_serializing_if = "Option::is_none")]
5461    pub updated_at: Option<Box<DateComparator>>,
5462    /// Comparator for the team name.
5463    #[serde(default, skip_serializing_if = "Option::is_none")]
5464    pub name: Option<Box<StringComparator>>,
5465    /// Comparator for the team key.
5466    #[serde(default, skip_serializing_if = "Option::is_none")]
5467    pub key: Option<Box<StringComparator>>,
5468    /// Comparator for the team description.
5469    #[serde(default, skip_serializing_if = "Option::is_none")]
5470    pub description: Option<Box<NullableStringComparator>>,
5471    /// Comparator for the team privacy.
5472    #[serde(default, skip_serializing_if = "Option::is_none")]
5473    pub private: Option<Box<BooleanComparator>>,
5474    /// Filters that the teams issues must satisfy.
5475    #[serde(default, skip_serializing_if = "Option::is_none")]
5476    pub issues: Option<Box<IssueCollectionFilter>>,
5477    /// Filters that the teams parent must satisfy.
5478    #[serde(default, skip_serializing_if = "Option::is_none")]
5479    pub parent: Option<Box<NullableTeamFilter>>,
5480    /// Filter based on the existence of the relation.
5481    #[serde(default, skip_serializing_if = "Option::is_none")]
5482    pub null: Option<bool>,
5483    /// Compound filters, all of which need to be matched by the team.
5484    #[serde(default, skip_serializing_if = "Option::is_none")]
5485    pub and: Option<Vec<Box<NullableTeamFilter>>>,
5486    /// Compound filters, one of which need to be matched by the team.
5487    #[serde(default, skip_serializing_if = "Option::is_none")]
5488    pub or: Option<Vec<Box<NullableTeamFilter>>>,
5489}
5490/// Template filtering options.
5491#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5492#[serde(rename_all = "camelCase")]
5493pub struct NullableTemplateFilter {
5494    /// Comparator for the identifier.
5495    #[serde(default, skip_serializing_if = "Option::is_none")]
5496    pub id: Option<Box<IDComparator>>,
5497    /// Comparator for the created at date.
5498    #[serde(default, skip_serializing_if = "Option::is_none")]
5499    pub created_at: Option<Box<DateComparator>>,
5500    /// Comparator for the updated at date.
5501    #[serde(default, skip_serializing_if = "Option::is_none")]
5502    pub updated_at: Option<Box<DateComparator>>,
5503    /// Comparator for the template's name.
5504    #[serde(default, skip_serializing_if = "Option::is_none")]
5505    pub name: Option<Box<StringComparator>>,
5506    /// Comparator for the template's type.
5507    #[serde(default, skip_serializing_if = "Option::is_none")]
5508    pub r#type: Option<Box<StringComparator>>,
5509    /// Comparator for the inherited template's ID.
5510    #[serde(default, skip_serializing_if = "Option::is_none")]
5511    pub inherited_from_id: Option<Box<IDComparator>>,
5512    /// Filter based on the existence of the relation.
5513    #[serde(default, skip_serializing_if = "Option::is_none")]
5514    pub null: Option<bool>,
5515    /// Compound filters, all of which need to be matched by the template.
5516    #[serde(default, skip_serializing_if = "Option::is_none")]
5517    pub and: Option<Vec<Box<NullableTemplateFilter>>>,
5518    /// Compound filters, one of which need to be matched by the template.
5519    #[serde(default, skip_serializing_if = "Option::is_none")]
5520    pub or: Option<Vec<Box<NullableTemplateFilter>>>,
5521}
5522/// Comparator for optional timeless dates.
5523#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5524#[serde(rename_all = "camelCase")]
5525pub struct NullableTimelessDateComparator {
5526    /// Equals constraint.
5527    #[serde(default, skip_serializing_if = "Option::is_none")]
5528    pub eq: Option<serde_json::Value>,
5529    /// Not-equals constraint.
5530    #[serde(default, skip_serializing_if = "Option::is_none")]
5531    pub neq: Option<serde_json::Value>,
5532    /// In-array constraint.
5533    #[serde(default, skip_serializing_if = "Option::is_none")]
5534    pub r#in: Option<Vec<serde_json::Value>>,
5535    /// Not-in-array constraint.
5536    #[serde(default, skip_serializing_if = "Option::is_none")]
5537    pub nin: Option<Vec<serde_json::Value>>,
5538    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
5539    #[serde(default, skip_serializing_if = "Option::is_none")]
5540    pub null: Option<bool>,
5541    /// Less-than constraint. Matches any values that are less than the given value.
5542    #[serde(default, skip_serializing_if = "Option::is_none")]
5543    pub lt: Option<serde_json::Value>,
5544    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5545    #[serde(default, skip_serializing_if = "Option::is_none")]
5546    pub lte: Option<serde_json::Value>,
5547    /// Greater-than constraint. Matches any values that are greater than the given value.
5548    #[serde(default, skip_serializing_if = "Option::is_none")]
5549    pub gt: Option<serde_json::Value>,
5550    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5551    #[serde(default, skip_serializing_if = "Option::is_none")]
5552    pub gte: Option<serde_json::Value>,
5553}
5554/// User filtering options.
5555#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5556#[serde(rename_all = "camelCase")]
5557pub struct NullableUserFilter {
5558    /// Comparator for the identifier.
5559    #[serde(default, skip_serializing_if = "Option::is_none")]
5560    pub id: Option<Box<IDComparator>>,
5561    /// Comparator for the created at date.
5562    #[serde(default, skip_serializing_if = "Option::is_none")]
5563    pub created_at: Option<Box<DateComparator>>,
5564    /// Comparator for the updated at date.
5565    #[serde(default, skip_serializing_if = "Option::is_none")]
5566    pub updated_at: Option<Box<DateComparator>>,
5567    /// Comparator for the user's name.
5568    #[serde(default, skip_serializing_if = "Option::is_none")]
5569    pub name: Option<Box<StringComparator>>,
5570    /// Comparator for the user's display name.
5571    #[serde(default, skip_serializing_if = "Option::is_none")]
5572    pub display_name: Option<Box<StringComparator>>,
5573    /// Comparator for the user's email.
5574    #[serde(default, skip_serializing_if = "Option::is_none")]
5575    pub email: Option<Box<StringComparator>>,
5576    /// Comparator for the user's activity status.
5577    #[serde(default, skip_serializing_if = "Option::is_none")]
5578    pub active: Option<Box<BooleanComparator>>,
5579    /// Filters that the users assigned issues must satisfy.
5580    #[serde(default, skip_serializing_if = "Option::is_none")]
5581    pub assigned_issues: Option<Box<IssueCollectionFilter>>,
5582    /// Comparator for the user's admin status.
5583    #[serde(default, skip_serializing_if = "Option::is_none")]
5584    pub admin: Option<Box<BooleanComparator>>,
5585    /// Comparator for the user's owner status.
5586    #[serde(default, skip_serializing_if = "Option::is_none")]
5587    pub owner: Option<Box<BooleanComparator>>,
5588    /// Comparator for the user's invited status.
5589    #[serde(default, skip_serializing_if = "Option::is_none")]
5590    pub invited: Option<Box<BooleanComparator>>,
5591    /// Comparator for the user's invited status.
5592    #[serde(default, skip_serializing_if = "Option::is_none")]
5593    pub is_invited: Option<Box<BooleanComparator>>,
5594    /// Comparator for the user's app status.
5595    #[serde(default, skip_serializing_if = "Option::is_none")]
5596    pub app: Option<Box<BooleanComparator>>,
5597    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
5598    #[serde(default, skip_serializing_if = "Option::is_none")]
5599    pub is_me: Option<Box<BooleanComparator>>,
5600    /// Filter based on the existence of the relation.
5601    #[serde(default, skip_serializing_if = "Option::is_none")]
5602    pub null: Option<bool>,
5603    /// Compound filters, all of which need to be matched by the user.
5604    #[serde(default, skip_serializing_if = "Option::is_none")]
5605    pub and: Option<Vec<Box<NullableUserFilter>>>,
5606    /// Compound filters, one of which need to be matched by the user.
5607    #[serde(default, skip_serializing_if = "Option::is_none")]
5608    pub or: Option<Vec<Box<NullableUserFilter>>>,
5609}
5610/// Comparator for numbers.
5611#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5612#[serde(rename_all = "camelCase")]
5613pub struct NumberComparator {
5614    /// Equals constraint.
5615    #[serde(default, skip_serializing_if = "Option::is_none")]
5616    pub eq: Option<f64>,
5617    /// Not-equals constraint.
5618    #[serde(default, skip_serializing_if = "Option::is_none")]
5619    pub neq: Option<f64>,
5620    /// In-array constraint.
5621    #[serde(default, skip_serializing_if = "Option::is_none")]
5622    pub r#in: Option<Vec<f64>>,
5623    /// Not-in-array constraint.
5624    #[serde(default, skip_serializing_if = "Option::is_none")]
5625    pub nin: Option<Vec<f64>>,
5626    /// Less-than constraint. Matches any values that are less than the given value.
5627    #[serde(default, skip_serializing_if = "Option::is_none")]
5628    pub lt: Option<f64>,
5629    /// Less-than-or-equal constraint. Matches any values that are less than or equal to the given value.
5630    #[serde(default, skip_serializing_if = "Option::is_none")]
5631    pub lte: Option<f64>,
5632    /// Greater-than constraint. Matches any values that are greater than the given value.
5633    #[serde(default, skip_serializing_if = "Option::is_none")]
5634    pub gt: Option<f64>,
5635    /// Greater-than-or-equal constraint. Matches any values that are greater than or equal to the given value.
5636    #[serde(default, skip_serializing_if = "Option::is_none")]
5637    pub gte: Option<f64>,
5638}
5639#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5640#[serde(rename_all = "camelCase")]
5641pub struct OnboardingCustomerSurvey {
5642    #[serde(default, skip_serializing_if = "Option::is_none")]
5643    pub company_role: Option<String>,
5644    #[serde(default, skip_serializing_if = "Option::is_none")]
5645    pub company_size: Option<String>,
5646}
5647#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5648#[serde(rename_all = "camelCase")]
5649pub struct OpsgenieInput {
5650    /// The date when the Opsgenie API failed with an unauthorized error.
5651    #[serde(default, skip_serializing_if = "Option::is_none")]
5652    pub api_failed_with_unauthorized_error_at: Option<chrono::DateTime<chrono::Utc>>,
5653}
5654#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5655#[serde(rename_all = "camelCase")]
5656pub struct OrganizationDomainCreateInput {
5657    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
5658    #[serde(default, skip_serializing_if = "Option::is_none")]
5659    pub id: Option<String>,
5660    /// The identity provider to which to add the domain.
5661    #[serde(default, skip_serializing_if = "Option::is_none")]
5662    pub identity_provider_id: Option<String>,
5663    /// The domain name to add.
5664    #[serde(default, skip_serializing_if = "Option::is_none")]
5665    pub name: Option<String>,
5666    /// The email address to which to send the verification code.
5667    #[serde(default, skip_serializing_if = "Option::is_none")]
5668    pub verification_email: Option<String>,
5669    /// The authentication type this domain is for.
5670    #[serde(default, skip_serializing_if = "Option::is_none")]
5671    pub auth_type: Option<String>,
5672}
5673#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5674#[serde(rename_all = "camelCase")]
5675pub struct OrganizationDomainUpdateInput {
5676    /// Prevent users with this domain to create new workspaces. Only allowed to set on claimed domains!
5677    #[serde(default, skip_serializing_if = "Option::is_none")]
5678    pub disable_organization_creation: Option<bool>,
5679}
5680#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5681#[serde(rename_all = "camelCase")]
5682pub struct OrganizationDomainVerificationInput {
5683    /// The identifier in UUID v4 format of the domain being verified.
5684    #[serde(default, skip_serializing_if = "Option::is_none")]
5685    pub organization_domain_id: Option<String>,
5686    /// The verification code sent via email.
5687    #[serde(default, skip_serializing_if = "Option::is_none")]
5688    pub verification_code: Option<String>,
5689}
5690#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5691#[serde(rename_all = "camelCase")]
5692pub struct OrganizationInviteCreateInput {
5693    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
5694    #[serde(default, skip_serializing_if = "Option::is_none")]
5695    pub id: Option<String>,
5696    /// The email of the invitee.
5697    #[serde(default, skip_serializing_if = "Option::is_none")]
5698    pub email: Option<String>,
5699    /// What user role the invite should grant.
5700    #[serde(default, skip_serializing_if = "Option::is_none")]
5701    pub role: Option<UserRoleType>,
5702    /// The teams that the user has been invited to.
5703    #[serde(default, skip_serializing_if = "Option::is_none")]
5704    pub team_ids: Option<Vec<String>>,
5705    /// `INTERNAL` Optional metadata about the invite.
5706    #[serde(default, skip_serializing_if = "Option::is_none")]
5707    pub metadata: Option<serde_json::Value>,
5708}
5709#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5710#[serde(rename_all = "camelCase")]
5711pub struct OrganizationInviteUpdateInput {
5712    /// The teams that the user has been invited to.
5713    #[serde(default, skip_serializing_if = "Option::is_none")]
5714    pub team_ids: Option<Vec<String>>,
5715}
5716/// `INTERNAL` Organization IP restriction configuration.
5717#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5718#[serde(rename_all = "camelCase")]
5719pub struct OrganizationIpRestrictionInput {
5720    /// IP range in CIDR format.
5721    #[serde(default, skip_serializing_if = "Option::is_none")]
5722    pub range: Option<String>,
5723    /// Restriction type.
5724    #[serde(default, skip_serializing_if = "Option::is_none")]
5725    pub r#type: Option<String>,
5726    /// Optional restriction description.
5727    #[serde(default, skip_serializing_if = "Option::is_none")]
5728    pub description: Option<String>,
5729    /// Whether the restriction is enabled.
5730    #[serde(default, skip_serializing_if = "Option::is_none")]
5731    pub enabled: Option<bool>,
5732}
5733#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5734#[serde(rename_all = "camelCase")]
5735pub struct OrganizationSecuritySettingsInput {
5736    /// The minimum role required to create personal API keys.
5737    #[serde(default, skip_serializing_if = "Option::is_none")]
5738    pub personal_api_keys_role: Option<UserRoleType>,
5739    /// The minimum role required to invite users.
5740    #[serde(default, skip_serializing_if = "Option::is_none")]
5741    pub invitations_role: Option<UserRoleType>,
5742    /// The minimum role required to create teams.
5743    #[serde(default, skip_serializing_if = "Option::is_none")]
5744    pub team_creation_role: Option<UserRoleType>,
5745    /// The minimum role required to manage workspace labels.
5746    #[serde(default, skip_serializing_if = "Option::is_none")]
5747    pub label_management_role: Option<UserRoleType>,
5748    /// The minimum role required to manage API settings.
5749    #[serde(default, skip_serializing_if = "Option::is_none")]
5750    pub api_settings_role: Option<UserRoleType>,
5751    /// The minimum role required to manage workspace templates.
5752    #[serde(default, skip_serializing_if = "Option::is_none")]
5753    pub template_management_role: Option<UserRoleType>,
5754    /// The minimum role required to import data.
5755    #[serde(default, skip_serializing_if = "Option::is_none")]
5756    pub import_role: Option<UserRoleType>,
5757    /// The minimum role required to manage agent guidance prompts and settings.
5758    #[serde(default, skip_serializing_if = "Option::is_none")]
5759    pub agent_guidance_role: Option<UserRoleType>,
5760    /// The minimum role required to install and connect new integrations.
5761    #[serde(default, skip_serializing_if = "Option::is_none")]
5762    pub integration_creation_role: Option<UserRoleType>,
5763}
5764#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5765#[serde(rename_all = "camelCase")]
5766pub struct OrganizationStartTrialInput {
5767    /// The plan type to trial.
5768    #[serde(default, skip_serializing_if = "Option::is_none")]
5769    pub plan_type: Option<String>,
5770}
5771#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5772#[serde(rename_all = "camelCase")]
5773pub struct OrganizationUpdateInput {
5774    /// The name of the organization.
5775    #[serde(default, skip_serializing_if = "Option::is_none")]
5776    pub name: Option<String>,
5777    /// The logo of the organization.
5778    #[serde(default, skip_serializing_if = "Option::is_none")]
5779    pub logo_url: Option<String>,
5780    /// The URL key of the organization.
5781    #[serde(default, skip_serializing_if = "Option::is_none")]
5782    pub url_key: Option<String>,
5783    /// How git branches are formatted. If null, default formatting will be used.
5784    #[serde(default, skip_serializing_if = "Option::is_none")]
5785    pub git_branch_format: Option<String>,
5786    /// Whether the Git integration linkback messages should be sent for private repositories.
5787    #[serde(default, skip_serializing_if = "Option::is_none")]
5788    pub git_linkback_messages_enabled: Option<bool>,
5789    /// Whether the Git integration linkback messages should be sent for public repositories.
5790    #[serde(default, skip_serializing_if = "Option::is_none")]
5791    pub git_public_linkback_messages_enabled: Option<bool>,
5792    /// Whether issue descriptions should be included in Git integration linkback messages.
5793    #[serde(default, skip_serializing_if = "Option::is_none")]
5794    pub git_linkback_descriptions_enabled: Option<bool>,
5795    /// Whether the organization is using roadmap.
5796    #[serde(default, skip_serializing_if = "Option::is_none")]
5797    pub roadmap_enabled: Option<bool>,
5798    /// The n-weekly frequency at which to prompt for project updates.
5799    #[serde(default, skip_serializing_if = "Option::is_none")]
5800    pub project_update_reminder_frequency_in_weeks: Option<f64>,
5801    /// The day at which project updates are sent.
5802    #[serde(default, skip_serializing_if = "Option::is_none")]
5803    pub project_update_reminders_day: Option<Day>,
5804    /// The hour at which project updates are sent.
5805    #[serde(default, skip_serializing_if = "Option::is_none")]
5806    pub project_update_reminders_hour: Option<f64>,
5807    /// `ALPHA` The n-weekly frequency at which to prompt for initiative updates.
5808    #[serde(default, skip_serializing_if = "Option::is_none")]
5809    pub initiative_update_reminder_frequency_in_weeks: Option<f64>,
5810    /// `ALPHA` The day at which initiative updates are sent.
5811    #[serde(default, skip_serializing_if = "Option::is_none")]
5812    pub initiative_update_reminders_day: Option<Day>,
5813    /// `ALPHA` The hour at which initiative updates are sent.
5814    #[serde(default, skip_serializing_if = "Option::is_none")]
5815    pub initiative_update_reminders_hour: Option<f64>,
5816    /// The month at which the fiscal year starts.
5817    #[serde(default, skip_serializing_if = "Option::is_none")]
5818    pub fiscal_year_start_month: Option<f64>,
5819    /// `Internal` The list of working days. Sunday is 0, Monday is 1, etc.
5820    #[serde(default, skip_serializing_if = "Option::is_none")]
5821    pub working_days: Option<Vec<f64>>,
5822    /// Whether the organization has opted for reduced customer support attachment information.
5823    #[serde(default, skip_serializing_if = "Option::is_none")]
5824    pub reduced_personal_information: Option<bool>,
5825    /// Whether the organization has opted for having to approve all OAuth applications for install.
5826    #[serde(default, skip_serializing_if = "Option::is_none")]
5827    pub oauth_app_review: Option<bool>,
5828    /// List of services that are allowed to be used for login.
5829    #[serde(default, skip_serializing_if = "Option::is_none")]
5830    pub allowed_auth_services: Option<Vec<String>>,
5831    /// Internal. Whether SLAs have been enabled for the organization.
5832    #[serde(default, skip_serializing_if = "Option::is_none")]
5833    pub sla_enabled: Option<bool>,
5834    /// Whether agent invocation is restricted to full workspace members.
5835    #[serde(default, skip_serializing_if = "Option::is_none")]
5836    pub restrict_agent_invocation_to_members: Option<bool>,
5837    /// IP restriction configurations controlling allowed access the workspace.
5838    #[serde(default, skip_serializing_if = "Option::is_none")]
5839    pub ip_restrictions: Option<Vec<Box<OrganizationIpRestrictionInput>>>,
5840    /// Allowed file upload content types.
5841    #[serde(default, skip_serializing_if = "Option::is_none")]
5842    pub allowed_file_upload_content_types: Option<Vec<String>>,
5843    /// `ALPHA` Theme settings for the organization.
5844    #[serde(default, skip_serializing_if = "Option::is_none")]
5845    pub theme_settings: Option<serde_json::Value>,
5846    /// `INTERNAL` Whether the organization is using customers.
5847    #[serde(default, skip_serializing_if = "Option::is_none")]
5848    pub customers_enabled: Option<bool>,
5849    /// `INTERNAL` Configuration settings for the Customers feature.
5850    #[serde(default, skip_serializing_if = "Option::is_none")]
5851    pub customers_configuration: Option<serde_json::Value>,
5852    /// `INTERNAL` Whether code intelligence is enabled for the organization.
5853    #[serde(default, skip_serializing_if = "Option::is_none")]
5854    pub code_intelligence_enabled: Option<bool>,
5855    /// `INTERNAL` GitHub repository in owner/repo format for code intelligence.
5856    #[serde(default, skip_serializing_if = "Option::is_none")]
5857    pub code_intelligence_repository: Option<String>,
5858    /// Whether the organization has enabled the feed feature.
5859    #[serde(default, skip_serializing_if = "Option::is_none")]
5860    pub feed_enabled: Option<bool>,
5861    /// Whether to hide other workspaces for new users signing up with email domains claimed by this organization.
5862    #[serde(default, skip_serializing_if = "Option::is_none")]
5863    pub hide_non_primary_organizations: Option<bool>,
5864    /// Default schedule for how often feed summaries are generated.
5865    #[serde(default, skip_serializing_if = "Option::is_none")]
5866    pub default_feed_summary_schedule: Option<FeedSummarySchedule>,
5867    /// `INTERNAL` Whether the organization has enabled the AI add-on.
5868    #[serde(default, skip_serializing_if = "Option::is_none")]
5869    pub ai_addon_enabled: Option<bool>,
5870    /// `INTERNAL` Whether the organization has enabled generated updates.
5871    #[serde(default, skip_serializing_if = "Option::is_none")]
5872    pub generated_updates_enabled: Option<bool>,
5873    /// `INTERNAL` Whether the organization has opted in to AI telemetry.
5874    #[serde(default, skip_serializing_if = "Option::is_none")]
5875    pub ai_telemetry_enabled: Option<bool>,
5876    /// Whether the organization has enabled AI discussion summaries for issues.
5877    #[serde(default, skip_serializing_if = "Option::is_none")]
5878    pub ai_discussion_summaries_enabled: Option<bool>,
5879    /// Whether the organization has enabled resolved thread AI summaries.
5880    #[serde(default, skip_serializing_if = "Option::is_none")]
5881    pub ai_thread_summaries_enabled: Option<bool>,
5882    /// Whether HIPAA compliance is enabled for organization.
5883    #[serde(default, skip_serializing_if = "Option::is_none")]
5884    pub hipaa_compliance_enabled: Option<bool>,
5885    /// The security settings for the organization.
5886    #[serde(default, skip_serializing_if = "Option::is_none")]
5887    pub security_settings: Option<Box<OrganizationSecuritySettingsInput>>,
5888    /// `INTERNAL` Configure per-modality AI host providers and model families.
5889    #[serde(default, skip_serializing_if = "Option::is_none")]
5890    pub ai_provider_configuration: Option<serde_json::Value>,
5891    /// The ID of the Slack integration to use for auto-creating project channels.
5892    #[serde(default, skip_serializing_if = "Option::is_none")]
5893    pub slack_project_channel_integration_id: Option<String>,
5894    /// The prefix to use for auto-created Slack project channels (p-, proj-, or project-).
5895    #[serde(default, skip_serializing_if = "Option::is_none")]
5896    pub slack_project_channel_prefix: Option<String>,
5897    /// `Internal` Whether the organization has enabled Linear Agent.
5898    #[serde(default, skip_serializing_if = "Option::is_none")]
5899    pub linear_agent_enabled: Option<bool>,
5900}
5901/// Customer owner sorting options.
5902#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5903#[serde(rename_all = "camelCase")]
5904pub struct OwnerSort {
5905    /// Whether nulls should be sorted first or last
5906    #[serde(default, skip_serializing_if = "Option::is_none")]
5907    pub nulls: Option<PaginationNulls>,
5908    /// The order for the individual sort
5909    #[serde(default, skip_serializing_if = "Option::is_none")]
5910    pub order: Option<PaginationSortOrder>,
5911}
5912#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5913#[serde(rename_all = "camelCase")]
5914pub struct PagerDutyInput {
5915    /// The date when the PagerDuty API failed with an unauthorized error.
5916    #[serde(default, skip_serializing_if = "Option::is_none")]
5917    pub api_failed_with_unauthorized_error_at: Option<chrono::DateTime<chrono::Utc>>,
5918}
5919#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5920#[serde(rename_all = "camelCase")]
5921pub struct PartialNotificationChannelPreferencesInput {
5922    /// Whether notifications are currently enabled for mobile.
5923    #[serde(default, skip_serializing_if = "Option::is_none")]
5924    pub mobile: Option<bool>,
5925    /// Whether notifications are currently enabled for desktop.
5926    #[serde(default, skip_serializing_if = "Option::is_none")]
5927    pub desktop: Option<bool>,
5928    /// Whether notifications are currently enabled for email.
5929    #[serde(default, skip_serializing_if = "Option::is_none")]
5930    pub email: Option<bool>,
5931    /// Whether notifications are currently enabled for Slack.
5932    #[serde(default, skip_serializing_if = "Option::is_none")]
5933    pub slack: Option<bool>,
5934}
5935/// Issue priority sorting options.
5936#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5937#[serde(rename_all = "camelCase")]
5938pub struct PrioritySort {
5939    /// Whether nulls should be sorted first or last
5940    #[serde(default, skip_serializing_if = "Option::is_none")]
5941    pub nulls: Option<PaginationNulls>,
5942    /// The order for the individual sort
5943    #[serde(default, skip_serializing_if = "Option::is_none")]
5944    pub order: Option<PaginationSortOrder>,
5945    /// Whether to consider no priority as the highest or lowest priority
5946    #[serde(default, skip_serializing_if = "Option::is_none")]
5947    pub no_priority_first: Option<bool>,
5948}
5949/// Project filtering options.
5950#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5951#[serde(rename_all = "camelCase")]
5952pub struct ProjectCollectionFilter {
5953    /// Comparator for the identifier.
5954    #[serde(default, skip_serializing_if = "Option::is_none")]
5955    pub id: Option<Box<IDComparator>>,
5956    /// Comparator for the created at date.
5957    #[serde(default, skip_serializing_if = "Option::is_none")]
5958    pub created_at: Option<Box<DateComparator>>,
5959    /// Comparator for the updated at date.
5960    #[serde(default, skip_serializing_if = "Option::is_none")]
5961    pub updated_at: Option<Box<DateComparator>>,
5962    /// Comparator for the project name.
5963    #[serde(default, skip_serializing_if = "Option::is_none")]
5964    pub name: Option<Box<StringComparator>>,
5965    /// Comparator for the project slug ID.
5966    #[serde(default, skip_serializing_if = "Option::is_none")]
5967    pub slug_id: Option<Box<StringComparator>>,
5968    /// `DEPRECATED` Comparator for the project state.
5969    #[serde(default, skip_serializing_if = "Option::is_none")]
5970    pub state: Option<Box<StringComparator>>,
5971    /// Filters that the project's status must satisfy.
5972    #[serde(default, skip_serializing_if = "Option::is_none")]
5973    pub status: Option<Box<ProjectStatusFilter>>,
5974    /// Comparator for the projects priority.
5975    #[serde(default, skip_serializing_if = "Option::is_none")]
5976    pub priority: Option<Box<NullableNumberComparator>>,
5977    /// Filters that project labels must satisfy.
5978    #[serde(default, skip_serializing_if = "Option::is_none")]
5979    pub labels: Option<Box<ProjectLabelCollectionFilter>>,
5980    /// `Internal` Comparator for the project's content.
5981    #[serde(default, skip_serializing_if = "Option::is_none")]
5982    pub searchable_content: Option<Box<ContentComparator>>,
5983    /// Comparator for the project started date (when it was moved to an "In Progress" status).
5984    #[serde(default, skip_serializing_if = "Option::is_none")]
5985    pub started_at: Option<Box<NullableDateComparator>>,
5986    /// Comparator for the project completion date.
5987    #[serde(default, skip_serializing_if = "Option::is_none")]
5988    pub completed_at: Option<Box<NullableDateComparator>>,
5989    /// Comparator for the project cancelation date.
5990    #[serde(default, skip_serializing_if = "Option::is_none")]
5991    pub canceled_at: Option<Box<NullableDateComparator>>,
5992    /// Comparator for the project start date.
5993    #[serde(default, skip_serializing_if = "Option::is_none")]
5994    pub start_date: Option<Box<NullableDateComparator>>,
5995    /// Comparator for the project target date.
5996    #[serde(default, skip_serializing_if = "Option::is_none")]
5997    pub target_date: Option<Box<NullableDateComparator>>,
5998    /// Comparator for the project health: onTrack, atRisk, offTrack
5999    #[serde(default, skip_serializing_if = "Option::is_none")]
6000    pub health: Option<Box<StringComparator>>,
6001    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
6002    #[serde(default, skip_serializing_if = "Option::is_none")]
6003    pub health_with_age: Option<Box<StringComparator>>,
6004    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
6005    #[serde(default, skip_serializing_if = "Option::is_none")]
6006    pub activity_type: Option<Box<StringComparator>>,
6007    /// Comparator for filtering projects with relations.
6008    #[serde(default, skip_serializing_if = "Option::is_none")]
6009    pub has_related_relations: Option<Box<RelationExistsComparator>>,
6010    /// `Deprecated` Comparator for filtering projects which this is depended on by.
6011    #[serde(default, skip_serializing_if = "Option::is_none")]
6012    pub has_depended_on_by_relations: Option<Box<RelationExistsComparator>>,
6013    /// `Deprecated`Comparator for filtering projects which this depends on.
6014    #[serde(default, skip_serializing_if = "Option::is_none")]
6015    pub has_depends_on_relations: Option<Box<RelationExistsComparator>>,
6016    /// Comparator for filtering projects which are blocked.
6017    #[serde(default, skip_serializing_if = "Option::is_none")]
6018    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
6019    /// Comparator for filtering projects which are blocking.
6020    #[serde(default, skip_serializing_if = "Option::is_none")]
6021    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
6022    /// Comparator for filtering projects with violated dependencies.
6023    #[serde(default, skip_serializing_if = "Option::is_none")]
6024    pub has_violated_relations: Option<Box<RelationExistsComparator>>,
6025    /// Comparator for the project updates.
6026    #[serde(default, skip_serializing_if = "Option::is_none")]
6027    pub project_updates: Option<Box<ProjectUpdatesCollectionFilter>>,
6028    /// Filters that the projects creator must satisfy.
6029    #[serde(default, skip_serializing_if = "Option::is_none")]
6030    pub creator: Option<Box<UserFilter>>,
6031    /// Filters that the projects lead must satisfy.
6032    #[serde(default, skip_serializing_if = "Option::is_none")]
6033    pub lead: Option<Box<NullableUserFilter>>,
6034    /// Filters that the projects members must satisfy.
6035    #[serde(default, skip_serializing_if = "Option::is_none")]
6036    pub members: Option<Box<UserCollectionFilter>>,
6037    /// Filters that the projects issues must satisfy.
6038    #[serde(default, skip_serializing_if = "Option::is_none")]
6039    pub issues: Option<Box<IssueCollectionFilter>>,
6040    /// Filters that the projects roadmaps must satisfy.
6041    #[serde(default, skip_serializing_if = "Option::is_none")]
6042    pub roadmaps: Option<Box<RoadmapCollectionFilter>>,
6043    /// Filters that the projects initiatives must satisfy.
6044    #[serde(default, skip_serializing_if = "Option::is_none")]
6045    pub initiatives: Option<Box<InitiativeCollectionFilter>>,
6046    /// Filters that the project's milestones must satisfy.
6047    #[serde(default, skip_serializing_if = "Option::is_none")]
6048    pub project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
6049    /// Filters that the project's completed milestones must satisfy.
6050    #[serde(default, skip_serializing_if = "Option::is_none")]
6051    pub completed_project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
6052    /// Filters that the project's next milestone must satisfy.
6053    #[serde(default, skip_serializing_if = "Option::is_none")]
6054    pub next_project_milestone: Option<Box<ProjectMilestoneFilter>>,
6055    /// Filters that the project's team must satisfy.
6056    #[serde(default, skip_serializing_if = "Option::is_none")]
6057    pub accessible_teams: Option<Box<TeamCollectionFilter>>,
6058    /// Filters that the last applied template must satisfy.
6059    #[serde(default, skip_serializing_if = "Option::is_none")]
6060    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
6061    /// Filters that the project's customer needs must satisfy.
6062    #[serde(default, skip_serializing_if = "Option::is_none")]
6063    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
6064    /// Count of customers
6065    #[serde(default, skip_serializing_if = "Option::is_none")]
6066    pub customer_count: Option<Box<NumberComparator>>,
6067    /// Count of important customers
6068    #[serde(default, skip_serializing_if = "Option::is_none")]
6069    pub customer_important_count: Option<Box<NumberComparator>>,
6070    /// Compound filters, all of which need to be matched by the project.
6071    #[serde(default, skip_serializing_if = "Option::is_none")]
6072    pub and: Option<Vec<Box<ProjectCollectionFilter>>>,
6073    /// Compound filters, one of which need to be matched by the project.
6074    #[serde(default, skip_serializing_if = "Option::is_none")]
6075    pub or: Option<Vec<Box<ProjectCollectionFilter>>>,
6076    /// Filters that needs to be matched by some projects.
6077    #[serde(default, skip_serializing_if = "Option::is_none")]
6078    pub some: Option<Box<ProjectFilter>>,
6079    /// Filters that needs to be matched by all projects.
6080    #[serde(default, skip_serializing_if = "Option::is_none")]
6081    pub every: Option<Box<ProjectFilter>>,
6082    /// Comparator for the collection length.
6083    #[serde(default, skip_serializing_if = "Option::is_none")]
6084    pub length: Option<Box<NumberComparator>>,
6085}
6086#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6087#[serde(rename_all = "camelCase")]
6088pub struct ProjectCreateInput {
6089    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6090    #[serde(default, skip_serializing_if = "Option::is_none")]
6091    pub id: Option<String>,
6092    /// The name of the project.
6093    #[serde(default, skip_serializing_if = "Option::is_none")]
6094    pub name: Option<String>,
6095    /// The icon of the project.
6096    #[serde(default, skip_serializing_if = "Option::is_none")]
6097    pub icon: Option<String>,
6098    /// The color of the project.
6099    #[serde(default, skip_serializing_if = "Option::is_none")]
6100    pub color: Option<String>,
6101    /// The ID of the project status.
6102    #[serde(default, skip_serializing_if = "Option::is_none")]
6103    pub status_id: Option<String>,
6104    /// The description for the project.
6105    #[serde(default, skip_serializing_if = "Option::is_none")]
6106    pub description: Option<String>,
6107    /// The project content as markdown.
6108    #[serde(default, skip_serializing_if = "Option::is_none")]
6109    pub content: Option<String>,
6110    /// The identifiers of the teams this project is associated with.
6111    #[serde(default, skip_serializing_if = "Option::is_none")]
6112    pub team_ids: Option<Vec<String>>,
6113    /// The ID of the issue from which that project is created.
6114    #[serde(default, skip_serializing_if = "Option::is_none")]
6115    pub converted_from_issue_id: Option<String>,
6116    /// The ID of the last template applied to the project.
6117    #[serde(default, skip_serializing_if = "Option::is_none")]
6118    pub last_applied_template_id: Option<String>,
6119    /// The ID of the template to apply when creating the project.
6120    #[serde(default, skip_serializing_if = "Option::is_none")]
6121    pub template_id: Option<String>,
6122    /// When set to true, the default project template of the first team provided will be applied. If templateId is provided, this will be ignored.
6123    #[serde(default, skip_serializing_if = "Option::is_none")]
6124    pub use_default_template: Option<bool>,
6125    /// The identifier of the project lead.
6126    #[serde(default, skip_serializing_if = "Option::is_none")]
6127    pub lead_id: Option<String>,
6128    /// The identifiers of the members of this project.
6129    #[serde(default, skip_serializing_if = "Option::is_none")]
6130    pub member_ids: Option<Vec<String>>,
6131    /// The planned start date of the project.
6132    #[serde(default, skip_serializing_if = "Option::is_none")]
6133    pub start_date: Option<chrono::NaiveDate>,
6134    /// The resolution of the project's start date.
6135    #[serde(default, skip_serializing_if = "Option::is_none")]
6136    pub start_date_resolution: Option<DateResolutionType>,
6137    /// The planned target date of the project.
6138    #[serde(default, skip_serializing_if = "Option::is_none")]
6139    pub target_date: Option<chrono::NaiveDate>,
6140    /// The resolution of the project's estimated completion date.
6141    #[serde(default, skip_serializing_if = "Option::is_none")]
6142    pub target_date_resolution: Option<DateResolutionType>,
6143    /// The sort order for the project within shared views.
6144    #[serde(default, skip_serializing_if = "Option::is_none")]
6145    pub sort_order: Option<f64>,
6146    /// The sort order for the project within shared views, when ordered by priority.
6147    #[serde(default, skip_serializing_if = "Option::is_none")]
6148    pub priority_sort_order: Option<f64>,
6149    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
6150    #[serde(default, skip_serializing_if = "Option::is_none")]
6151    pub priority: Option<i64>,
6152    /// `Internal`The identifiers of the project labels associated with this project.
6153    #[serde(default, skip_serializing_if = "Option::is_none")]
6154    pub label_ids: Option<Vec<String>>,
6155}
6156/// Project creation date sorting options.
6157#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6158#[serde(rename_all = "camelCase")]
6159pub struct ProjectCreatedAtSort {
6160    /// Whether nulls should be sorted first or last
6161    #[serde(default, skip_serializing_if = "Option::is_none")]
6162    pub nulls: Option<PaginationNulls>,
6163    /// The order for the individual sort
6164    #[serde(default, skip_serializing_if = "Option::is_none")]
6165    pub order: Option<PaginationSortOrder>,
6166}
6167/// Project filtering options.
6168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6169#[serde(rename_all = "camelCase")]
6170pub struct ProjectFilter {
6171    /// Comparator for the identifier.
6172    #[serde(default, skip_serializing_if = "Option::is_none")]
6173    pub id: Option<Box<IDComparator>>,
6174    /// Comparator for the created at date.
6175    #[serde(default, skip_serializing_if = "Option::is_none")]
6176    pub created_at: Option<Box<DateComparator>>,
6177    /// Comparator for the updated at date.
6178    #[serde(default, skip_serializing_if = "Option::is_none")]
6179    pub updated_at: Option<Box<DateComparator>>,
6180    /// Comparator for the project name.
6181    #[serde(default, skip_serializing_if = "Option::is_none")]
6182    pub name: Option<Box<StringComparator>>,
6183    /// Comparator for the project slug ID.
6184    #[serde(default, skip_serializing_if = "Option::is_none")]
6185    pub slug_id: Option<Box<StringComparator>>,
6186    /// `DEPRECATED` Comparator for the project state.
6187    #[serde(default, skip_serializing_if = "Option::is_none")]
6188    pub state: Option<Box<StringComparator>>,
6189    /// Filters that the project's status must satisfy.
6190    #[serde(default, skip_serializing_if = "Option::is_none")]
6191    pub status: Option<Box<ProjectStatusFilter>>,
6192    /// Comparator for the projects priority.
6193    #[serde(default, skip_serializing_if = "Option::is_none")]
6194    pub priority: Option<Box<NullableNumberComparator>>,
6195    /// Filters that project labels must satisfy.
6196    #[serde(default, skip_serializing_if = "Option::is_none")]
6197    pub labels: Option<Box<ProjectLabelCollectionFilter>>,
6198    /// `Internal` Comparator for the project's content.
6199    #[serde(default, skip_serializing_if = "Option::is_none")]
6200    pub searchable_content: Option<Box<ContentComparator>>,
6201    /// Comparator for the project started date (when it was moved to an "In Progress" status).
6202    #[serde(default, skip_serializing_if = "Option::is_none")]
6203    pub started_at: Option<Box<NullableDateComparator>>,
6204    /// Comparator for the project completion date.
6205    #[serde(default, skip_serializing_if = "Option::is_none")]
6206    pub completed_at: Option<Box<NullableDateComparator>>,
6207    /// Comparator for the project cancelation date.
6208    #[serde(default, skip_serializing_if = "Option::is_none")]
6209    pub canceled_at: Option<Box<NullableDateComparator>>,
6210    /// Comparator for the project start date.
6211    #[serde(default, skip_serializing_if = "Option::is_none")]
6212    pub start_date: Option<Box<NullableDateComparator>>,
6213    /// Comparator for the project target date.
6214    #[serde(default, skip_serializing_if = "Option::is_none")]
6215    pub target_date: Option<Box<NullableDateComparator>>,
6216    /// Comparator for the project health: onTrack, atRisk, offTrack
6217    #[serde(default, skip_serializing_if = "Option::is_none")]
6218    pub health: Option<Box<StringComparator>>,
6219    /// Comparator for the project health (with age): onTrack, atRisk, offTrack, outdated, noUpdate
6220    #[serde(default, skip_serializing_if = "Option::is_none")]
6221    pub health_with_age: Option<Box<StringComparator>>,
6222    /// `ALPHA` Comparator for the project activity type: buzzin, active, some, none
6223    #[serde(default, skip_serializing_if = "Option::is_none")]
6224    pub activity_type: Option<Box<StringComparator>>,
6225    /// Comparator for filtering projects with relations.
6226    #[serde(default, skip_serializing_if = "Option::is_none")]
6227    pub has_related_relations: Option<Box<RelationExistsComparator>>,
6228    /// `Deprecated` Comparator for filtering projects which this is depended on by.
6229    #[serde(default, skip_serializing_if = "Option::is_none")]
6230    pub has_depended_on_by_relations: Option<Box<RelationExistsComparator>>,
6231    /// `Deprecated`Comparator for filtering projects which this depends on.
6232    #[serde(default, skip_serializing_if = "Option::is_none")]
6233    pub has_depends_on_relations: Option<Box<RelationExistsComparator>>,
6234    /// Comparator for filtering projects which are blocked.
6235    #[serde(default, skip_serializing_if = "Option::is_none")]
6236    pub has_blocked_by_relations: Option<Box<RelationExistsComparator>>,
6237    /// Comparator for filtering projects which are blocking.
6238    #[serde(default, skip_serializing_if = "Option::is_none")]
6239    pub has_blocking_relations: Option<Box<RelationExistsComparator>>,
6240    /// Comparator for filtering projects with violated dependencies.
6241    #[serde(default, skip_serializing_if = "Option::is_none")]
6242    pub has_violated_relations: Option<Box<RelationExistsComparator>>,
6243    /// Comparator for the project updates.
6244    #[serde(default, skip_serializing_if = "Option::is_none")]
6245    pub project_updates: Option<Box<ProjectUpdatesCollectionFilter>>,
6246    /// Filters that the projects creator must satisfy.
6247    #[serde(default, skip_serializing_if = "Option::is_none")]
6248    pub creator: Option<Box<UserFilter>>,
6249    /// Filters that the projects lead must satisfy.
6250    #[serde(default, skip_serializing_if = "Option::is_none")]
6251    pub lead: Option<Box<NullableUserFilter>>,
6252    /// Filters that the projects members must satisfy.
6253    #[serde(default, skip_serializing_if = "Option::is_none")]
6254    pub members: Option<Box<UserCollectionFilter>>,
6255    /// Filters that the projects issues must satisfy.
6256    #[serde(default, skip_serializing_if = "Option::is_none")]
6257    pub issues: Option<Box<IssueCollectionFilter>>,
6258    /// Filters that the projects roadmaps must satisfy.
6259    #[serde(default, skip_serializing_if = "Option::is_none")]
6260    pub roadmaps: Option<Box<RoadmapCollectionFilter>>,
6261    /// Filters that the projects initiatives must satisfy.
6262    #[serde(default, skip_serializing_if = "Option::is_none")]
6263    pub initiatives: Option<Box<InitiativeCollectionFilter>>,
6264    /// Filters that the project's milestones must satisfy.
6265    #[serde(default, skip_serializing_if = "Option::is_none")]
6266    pub project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
6267    /// Filters that the project's completed milestones must satisfy.
6268    #[serde(default, skip_serializing_if = "Option::is_none")]
6269    pub completed_project_milestones: Option<Box<ProjectMilestoneCollectionFilter>>,
6270    /// Filters that the project's next milestone must satisfy.
6271    #[serde(default, skip_serializing_if = "Option::is_none")]
6272    pub next_project_milestone: Option<Box<ProjectMilestoneFilter>>,
6273    /// Filters that the project's team must satisfy.
6274    #[serde(default, skip_serializing_if = "Option::is_none")]
6275    pub accessible_teams: Option<Box<TeamCollectionFilter>>,
6276    /// Filters that the last applied template must satisfy.
6277    #[serde(default, skip_serializing_if = "Option::is_none")]
6278    pub last_applied_template: Option<Box<NullableTemplateFilter>>,
6279    /// Filters that the project's customer needs must satisfy.
6280    #[serde(default, skip_serializing_if = "Option::is_none")]
6281    pub needs: Option<Box<CustomerNeedCollectionFilter>>,
6282    /// Count of customers
6283    #[serde(default, skip_serializing_if = "Option::is_none")]
6284    pub customer_count: Option<Box<NumberComparator>>,
6285    /// Count of important customers
6286    #[serde(default, skip_serializing_if = "Option::is_none")]
6287    pub customer_important_count: Option<Box<NumberComparator>>,
6288    /// Compound filters, all of which need to be matched by the project.
6289    #[serde(default, skip_serializing_if = "Option::is_none")]
6290    pub and: Option<Vec<Box<ProjectFilter>>>,
6291    /// Compound filters, one of which need to be matched by the project.
6292    #[serde(default, skip_serializing_if = "Option::is_none")]
6293    pub or: Option<Vec<Box<ProjectFilter>>>,
6294}
6295/// Project health sorting options.
6296#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6297#[serde(rename_all = "camelCase")]
6298pub struct ProjectHealthSort {
6299    /// Whether nulls should be sorted first or last
6300    #[serde(default, skip_serializing_if = "Option::is_none")]
6301    pub nulls: Option<PaginationNulls>,
6302    /// The order for the individual sort
6303    #[serde(default, skip_serializing_if = "Option::is_none")]
6304    pub order: Option<PaginationSortOrder>,
6305}
6306/// Project label filtering options.
6307#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6308#[serde(rename_all = "camelCase")]
6309pub struct ProjectLabelCollectionFilter {
6310    /// Comparator for the identifier.
6311    #[serde(default, skip_serializing_if = "Option::is_none")]
6312    pub id: Option<Box<IDComparator>>,
6313    /// Comparator for the created at date.
6314    #[serde(default, skip_serializing_if = "Option::is_none")]
6315    pub created_at: Option<Box<DateComparator>>,
6316    /// Comparator for the updated at date.
6317    #[serde(default, skip_serializing_if = "Option::is_none")]
6318    pub updated_at: Option<Box<DateComparator>>,
6319    /// Comparator for the name.
6320    #[serde(default, skip_serializing_if = "Option::is_none")]
6321    pub name: Option<Box<StringComparator>>,
6322    /// Comparator for whether the label is a group label.
6323    #[serde(default, skip_serializing_if = "Option::is_none")]
6324    pub is_group: Option<Box<BooleanComparator>>,
6325    /// Filters that the project labels creator must satisfy.
6326    #[serde(default, skip_serializing_if = "Option::is_none")]
6327    pub creator: Option<Box<NullableUserFilter>>,
6328    /// Filters that the project label's parent label must satisfy.
6329    #[serde(default, skip_serializing_if = "Option::is_none")]
6330    pub parent: Option<Box<ProjectLabelFilter>>,
6331    /// Filter based on the existence of the relation.
6332    #[serde(default, skip_serializing_if = "Option::is_none")]
6333    pub null: Option<bool>,
6334    /// Compound filters, all of which need to be matched by the label.
6335    #[serde(default, skip_serializing_if = "Option::is_none")]
6336    pub and: Option<Vec<Box<ProjectLabelCollectionFilter>>>,
6337    /// Compound filters, one of which need to be matched by the label.
6338    #[serde(default, skip_serializing_if = "Option::is_none")]
6339    pub or: Option<Vec<Box<ProjectLabelCollectionFilter>>>,
6340    /// Filters that needs to be matched by some project labels.
6341    #[serde(default, skip_serializing_if = "Option::is_none")]
6342    pub some: Option<Box<ProjectLabelCollectionFilter>>,
6343    /// Filters that needs to be matched by all project labels.
6344    #[serde(default, skip_serializing_if = "Option::is_none")]
6345    pub every: Option<Box<ProjectLabelFilter>>,
6346    /// Comparator for the collection length.
6347    #[serde(default, skip_serializing_if = "Option::is_none")]
6348    pub length: Option<Box<NumberComparator>>,
6349}
6350#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6351#[serde(rename_all = "camelCase")]
6352pub struct ProjectLabelCreateInput {
6353    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6354    #[serde(default, skip_serializing_if = "Option::is_none")]
6355    pub id: Option<String>,
6356    /// The name of the label.
6357    #[serde(default, skip_serializing_if = "Option::is_none")]
6358    pub name: Option<String>,
6359    /// The description of the label.
6360    #[serde(default, skip_serializing_if = "Option::is_none")]
6361    pub description: Option<String>,
6362    /// The color of the label.
6363    #[serde(default, skip_serializing_if = "Option::is_none")]
6364    pub color: Option<String>,
6365    /// The identifier of the parent label.
6366    #[serde(default, skip_serializing_if = "Option::is_none")]
6367    pub parent_id: Option<String>,
6368    /// Whether the label is a group.
6369    #[serde(default, skip_serializing_if = "Option::is_none")]
6370    pub is_group: Option<bool>,
6371    /// When the label was retired.
6372    #[serde(default, skip_serializing_if = "Option::is_none")]
6373    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
6374}
6375/// Project label filtering options.
6376#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6377#[serde(rename_all = "camelCase")]
6378pub struct ProjectLabelFilter {
6379    /// Comparator for the identifier.
6380    #[serde(default, skip_serializing_if = "Option::is_none")]
6381    pub id: Option<Box<IDComparator>>,
6382    /// Comparator for the created at date.
6383    #[serde(default, skip_serializing_if = "Option::is_none")]
6384    pub created_at: Option<Box<DateComparator>>,
6385    /// Comparator for the updated at date.
6386    #[serde(default, skip_serializing_if = "Option::is_none")]
6387    pub updated_at: Option<Box<DateComparator>>,
6388    /// Comparator for the name.
6389    #[serde(default, skip_serializing_if = "Option::is_none")]
6390    pub name: Option<Box<StringComparator>>,
6391    /// Comparator for whether the label is a group label.
6392    #[serde(default, skip_serializing_if = "Option::is_none")]
6393    pub is_group: Option<Box<BooleanComparator>>,
6394    /// Filters that the project labels creator must satisfy.
6395    #[serde(default, skip_serializing_if = "Option::is_none")]
6396    pub creator: Option<Box<NullableUserFilter>>,
6397    /// Filters that the project label's parent label must satisfy.
6398    #[serde(default, skip_serializing_if = "Option::is_none")]
6399    pub parent: Option<Box<ProjectLabelFilter>>,
6400    /// Compound filters, all of which need to be matched by the label.
6401    #[serde(default, skip_serializing_if = "Option::is_none")]
6402    pub and: Option<Vec<Box<ProjectLabelFilter>>>,
6403    /// Compound filters, one of which need to be matched by the label.
6404    #[serde(default, skip_serializing_if = "Option::is_none")]
6405    pub or: Option<Vec<Box<ProjectLabelFilter>>>,
6406}
6407#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6408#[serde(rename_all = "camelCase")]
6409pub struct ProjectLabelUpdateInput {
6410    /// The name of the label.
6411    #[serde(default, skip_serializing_if = "Option::is_none")]
6412    pub name: Option<String>,
6413    /// The description of the label.
6414    #[serde(default, skip_serializing_if = "Option::is_none")]
6415    pub description: Option<String>,
6416    /// The identifier of the parent label.
6417    #[serde(default, skip_serializing_if = "Option::is_none")]
6418    pub parent_id: Option<String>,
6419    /// The color of the label.
6420    #[serde(default, skip_serializing_if = "Option::is_none")]
6421    pub color: Option<String>,
6422    /// Whether the label is a group.
6423    #[serde(default, skip_serializing_if = "Option::is_none")]
6424    pub is_group: Option<bool>,
6425    /// When the label was retired.
6426    #[serde(default, skip_serializing_if = "Option::is_none")]
6427    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
6428}
6429/// Project lead sorting options.
6430#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6431#[serde(rename_all = "camelCase")]
6432pub struct ProjectLeadSort {
6433    /// Whether nulls should be sorted first or last
6434    #[serde(default, skip_serializing_if = "Option::is_none")]
6435    pub nulls: Option<PaginationNulls>,
6436    /// The order for the individual sort
6437    #[serde(default, skip_serializing_if = "Option::is_none")]
6438    pub order: Option<PaginationSortOrder>,
6439}
6440/// Project manual order sorting options.
6441#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6442#[serde(rename_all = "camelCase")]
6443pub struct ProjectManualSort {
6444    /// Whether nulls should be sorted first or last
6445    #[serde(default, skip_serializing_if = "Option::is_none")]
6446    pub nulls: Option<PaginationNulls>,
6447    /// The order for the individual sort
6448    #[serde(default, skip_serializing_if = "Option::is_none")]
6449    pub order: Option<PaginationSortOrder>,
6450}
6451/// Milestone collection filtering options.
6452#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6453#[serde(rename_all = "camelCase")]
6454pub struct ProjectMilestoneCollectionFilter {
6455    /// Comparator for the identifier.
6456    #[serde(default, skip_serializing_if = "Option::is_none")]
6457    pub id: Option<Box<IDComparator>>,
6458    /// Comparator for the created at date.
6459    #[serde(default, skip_serializing_if = "Option::is_none")]
6460    pub created_at: Option<Box<DateComparator>>,
6461    /// Comparator for the updated at date.
6462    #[serde(default, skip_serializing_if = "Option::is_none")]
6463    pub updated_at: Option<Box<DateComparator>>,
6464    /// Comparator for the project milestone name.
6465    #[serde(default, skip_serializing_if = "Option::is_none")]
6466    pub name: Option<Box<NullableStringComparator>>,
6467    /// Comparator for the project milestone target date.
6468    #[serde(default, skip_serializing_if = "Option::is_none")]
6469    pub target_date: Option<Box<NullableDateComparator>>,
6470    /// Filters that the project milestone's project must satisfy.
6471    #[serde(default, skip_serializing_if = "Option::is_none")]
6472    pub project: Option<Box<NullableProjectFilter>>,
6473    /// Compound filters, all of which need to be matched by the milestone.
6474    #[serde(default, skip_serializing_if = "Option::is_none")]
6475    pub and: Option<Vec<Box<ProjectMilestoneCollectionFilter>>>,
6476    /// Compound filters, one of which need to be matched by the milestone.
6477    #[serde(default, skip_serializing_if = "Option::is_none")]
6478    pub or: Option<Vec<Box<ProjectMilestoneCollectionFilter>>>,
6479    /// Filters that needs to be matched by some milestones.
6480    #[serde(default, skip_serializing_if = "Option::is_none")]
6481    pub some: Option<Box<ProjectMilestoneFilter>>,
6482    /// Filters that needs to be matched by all milestones.
6483    #[serde(default, skip_serializing_if = "Option::is_none")]
6484    pub every: Option<Box<ProjectMilestoneFilter>>,
6485    /// Comparator for the collection length.
6486    #[serde(default, skip_serializing_if = "Option::is_none")]
6487    pub length: Option<Box<NumberComparator>>,
6488}
6489#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6490#[serde(rename_all = "camelCase")]
6491pub struct ProjectMilestoneCreateInput {
6492    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6493    #[serde(default, skip_serializing_if = "Option::is_none")]
6494    pub id: Option<String>,
6495    /// The name of the project milestone.
6496    #[serde(default, skip_serializing_if = "Option::is_none")]
6497    pub name: Option<String>,
6498    /// The description of the project milestone in markdown format.
6499    #[serde(default, skip_serializing_if = "Option::is_none")]
6500    pub description: Option<String>,
6501    /// `Internal` The description of the project milestone as a Prosemirror document.
6502    #[serde(default, skip_serializing_if = "Option::is_none")]
6503    pub description_data: Option<serde_json::Value>,
6504    /// The planned target date of the project milestone.
6505    #[serde(default, skip_serializing_if = "Option::is_none")]
6506    pub target_date: Option<chrono::NaiveDate>,
6507    /// Related project for the project milestone.
6508    #[serde(default, skip_serializing_if = "Option::is_none")]
6509    pub project_id: Option<String>,
6510    /// The sort order for the project milestone within a project.
6511    #[serde(default, skip_serializing_if = "Option::is_none")]
6512    pub sort_order: Option<f64>,
6513}
6514/// Project milestone filtering options.
6515#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6516#[serde(rename_all = "camelCase")]
6517pub struct ProjectMilestoneFilter {
6518    /// Comparator for the identifier.
6519    #[serde(default, skip_serializing_if = "Option::is_none")]
6520    pub id: Option<Box<IDComparator>>,
6521    /// Comparator for the created at date.
6522    #[serde(default, skip_serializing_if = "Option::is_none")]
6523    pub created_at: Option<Box<DateComparator>>,
6524    /// Comparator for the updated at date.
6525    #[serde(default, skip_serializing_if = "Option::is_none")]
6526    pub updated_at: Option<Box<DateComparator>>,
6527    /// Comparator for the project milestone name.
6528    #[serde(default, skip_serializing_if = "Option::is_none")]
6529    pub name: Option<Box<NullableStringComparator>>,
6530    /// Comparator for the project milestone target date.
6531    #[serde(default, skip_serializing_if = "Option::is_none")]
6532    pub target_date: Option<Box<NullableDateComparator>>,
6533    /// Filters that the project milestone's project must satisfy.
6534    #[serde(default, skip_serializing_if = "Option::is_none")]
6535    pub project: Option<Box<NullableProjectFilter>>,
6536    /// Compound filters, all of which need to be matched by the project milestone.
6537    #[serde(default, skip_serializing_if = "Option::is_none")]
6538    pub and: Option<Vec<Box<ProjectMilestoneFilter>>>,
6539    /// Compound filters, one of which need to be matched by the project milestone.
6540    #[serde(default, skip_serializing_if = "Option::is_none")]
6541    pub or: Option<Vec<Box<ProjectMilestoneFilter>>>,
6542}
6543#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6544#[serde(rename_all = "camelCase")]
6545pub struct ProjectMilestoneMoveInput {
6546    /// The identifier of the project to move the milestone to.
6547    #[serde(default, skip_serializing_if = "Option::is_none")]
6548    pub project_id: Option<String>,
6549    /// 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.
6550    #[serde(default, skip_serializing_if = "Option::is_none")]
6551    pub new_issue_team_id: Option<String>,
6552    /// 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.
6553    #[serde(default, skip_serializing_if = "Option::is_none")]
6554    pub add_issue_team_to_project: Option<bool>,
6555    /// 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.
6556    #[serde(default, skip_serializing_if = "Option::is_none")]
6557    pub undo_issue_team_ids: Option<Vec<Box<ProjectMilestoneMoveIssueToTeamInput>>>,
6558    /// 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.
6559    #[serde(default, skip_serializing_if = "Option::is_none")]
6560    pub undo_project_team_ids: Option<Box<ProjectMilestoneMoveProjectTeamsInput>>,
6561}
6562/// `Internal` Used for ProjectMilestoneMoveInput to describe a mapping between an issue and its team.
6563#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6564#[serde(rename_all = "camelCase")]
6565pub struct ProjectMilestoneMoveIssueToTeamInput {
6566    /// The issue id in this relationship, you can use * as wildcard if all issues are being moved to the same team
6567    #[serde(default, skip_serializing_if = "Option::is_none")]
6568    pub issue_id: Option<String>,
6569    /// The team id in this relationship
6570    #[serde(default, skip_serializing_if = "Option::is_none")]
6571    pub team_id: Option<String>,
6572}
6573/// `Internal` Used for ProjectMilestoneMoveInput to describe a snapshot of a project and its team ids
6574#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6575#[serde(rename_all = "camelCase")]
6576pub struct ProjectMilestoneMoveProjectTeamsInput {
6577    /// The project id
6578    #[serde(default, skip_serializing_if = "Option::is_none")]
6579    pub project_id: Option<String>,
6580    /// The team ids for the project
6581    #[serde(default, skip_serializing_if = "Option::is_none")]
6582    pub team_ids: Option<Vec<String>>,
6583}
6584#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6585#[serde(rename_all = "camelCase")]
6586pub struct ProjectMilestoneUpdateInput {
6587    /// The name of the project milestone.
6588    #[serde(default, skip_serializing_if = "Option::is_none")]
6589    pub name: Option<String>,
6590    /// The description of the project milestone in markdown format.
6591    #[serde(default, skip_serializing_if = "Option::is_none")]
6592    pub description: Option<String>,
6593    /// `Internal` The description of the project milestone as a Prosemirror document.
6594    #[serde(default, skip_serializing_if = "Option::is_none")]
6595    pub description_data: Option<serde_json::Value>,
6596    /// The planned target date of the project milestone.
6597    #[serde(default, skip_serializing_if = "Option::is_none")]
6598    pub target_date: Option<chrono::NaiveDate>,
6599    /// The sort order for the project milestone within a project.
6600    #[serde(default, skip_serializing_if = "Option::is_none")]
6601    pub sort_order: Option<f64>,
6602    /// Related project for the project milestone.
6603    #[serde(default, skip_serializing_if = "Option::is_none")]
6604    pub project_id: Option<String>,
6605}
6606/// Project name sorting options.
6607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6608#[serde(rename_all = "camelCase")]
6609pub struct ProjectNameSort {
6610    /// Whether nulls should be sorted first or last
6611    #[serde(default, skip_serializing_if = "Option::is_none")]
6612    pub nulls: Option<PaginationNulls>,
6613    /// The order for the individual sort
6614    #[serde(default, skip_serializing_if = "Option::is_none")]
6615    pub order: Option<PaginationSortOrder>,
6616}
6617/// Project priority sorting options.
6618#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6619#[serde(rename_all = "camelCase")]
6620pub struct ProjectPrioritySort {
6621    /// Whether nulls should be sorted first or last
6622    #[serde(default, skip_serializing_if = "Option::is_none")]
6623    pub nulls: Option<PaginationNulls>,
6624    /// The order for the individual sort
6625    #[serde(default, skip_serializing_if = "Option::is_none")]
6626    pub order: Option<PaginationSortOrder>,
6627    /// Whether to consider no priority as the highest or lowest priority
6628    #[serde(default, skip_serializing_if = "Option::is_none")]
6629    pub no_priority_first: Option<bool>,
6630}
6631#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6632#[serde(rename_all = "camelCase")]
6633pub struct ProjectRelationCreateInput {
6634    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6635    #[serde(default, skip_serializing_if = "Option::is_none")]
6636    pub id: Option<String>,
6637    /// The type of relation of the project to the related project.
6638    #[serde(default, skip_serializing_if = "Option::is_none")]
6639    pub r#type: Option<String>,
6640    /// The identifier of the project that is related to another project.
6641    #[serde(default, skip_serializing_if = "Option::is_none")]
6642    pub project_id: Option<String>,
6643    /// The identifier of the project milestone.
6644    #[serde(default, skip_serializing_if = "Option::is_none")]
6645    pub project_milestone_id: Option<String>,
6646    /// The type of the anchor for the project.
6647    #[serde(default, skip_serializing_if = "Option::is_none")]
6648    pub anchor_type: Option<String>,
6649    /// The identifier of the related project.
6650    #[serde(default, skip_serializing_if = "Option::is_none")]
6651    pub related_project_id: Option<String>,
6652    /// The identifier of the related project milestone.
6653    #[serde(default, skip_serializing_if = "Option::is_none")]
6654    pub related_project_milestone_id: Option<String>,
6655    /// The type of the anchor for the related project.
6656    #[serde(default, skip_serializing_if = "Option::is_none")]
6657    pub related_anchor_type: Option<String>,
6658}
6659#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6660#[serde(rename_all = "camelCase")]
6661pub struct ProjectRelationUpdateInput {
6662    /// The type of relation of the project to the related project.
6663    #[serde(default, skip_serializing_if = "Option::is_none")]
6664    pub r#type: Option<String>,
6665    /// The identifier of the project that is related to another project.
6666    #[serde(default, skip_serializing_if = "Option::is_none")]
6667    pub project_id: Option<String>,
6668    /// The identifier of the project milestone.
6669    #[serde(default, skip_serializing_if = "Option::is_none")]
6670    pub project_milestone_id: Option<String>,
6671    /// The type of the anchor for the project.
6672    #[serde(default, skip_serializing_if = "Option::is_none")]
6673    pub anchor_type: Option<String>,
6674    /// The identifier of the related project.
6675    #[serde(default, skip_serializing_if = "Option::is_none")]
6676    pub related_project_id: Option<String>,
6677    /// The identifier of the related project milestone.
6678    #[serde(default, skip_serializing_if = "Option::is_none")]
6679    pub related_project_milestone_id: Option<String>,
6680    /// The type of the anchor for the related project.
6681    #[serde(default, skip_serializing_if = "Option::is_none")]
6682    pub related_anchor_type: Option<String>,
6683}
6684/// Issue project sorting options.
6685#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6686#[serde(rename_all = "camelCase")]
6687pub struct ProjectSort {
6688    /// Whether nulls should be sorted first or last
6689    #[serde(default, skip_serializing_if = "Option::is_none")]
6690    pub nulls: Option<PaginationNulls>,
6691    /// The order for the individual sort
6692    #[serde(default, skip_serializing_if = "Option::is_none")]
6693    pub order: Option<PaginationSortOrder>,
6694}
6695/// Project sorting options.
6696#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6697#[serde(rename_all = "camelCase")]
6698pub struct ProjectSortInput {
6699    /// Sort by project name
6700    #[serde(default, skip_serializing_if = "Option::is_none")]
6701    pub name: Option<Box<ProjectNameSort>>,
6702    /// Sort by project status
6703    #[serde(default, skip_serializing_if = "Option::is_none")]
6704    pub status: Option<Box<ProjectStatusSort>>,
6705    /// Sort by project priority
6706    #[serde(default, skip_serializing_if = "Option::is_none")]
6707    pub priority: Option<Box<ProjectPrioritySort>>,
6708    /// Sort by manual order
6709    #[serde(default, skip_serializing_if = "Option::is_none")]
6710    pub manual: Option<Box<ProjectManualSort>>,
6711    /// Sort by project target date
6712    #[serde(default, skip_serializing_if = "Option::is_none")]
6713    pub target_date: Option<Box<TargetDateSort>>,
6714    /// Sort by project start date
6715    #[serde(default, skip_serializing_if = "Option::is_none")]
6716    pub start_date: Option<Box<StartDateSort>>,
6717    /// Sort by project creation date
6718    #[serde(default, skip_serializing_if = "Option::is_none")]
6719    pub created_at: Option<Box<ProjectCreatedAtSort>>,
6720    /// Sort by project update date
6721    #[serde(default, skip_serializing_if = "Option::is_none")]
6722    pub updated_at: Option<Box<ProjectUpdatedAtSort>>,
6723    /// Sort by project health status.
6724    #[serde(default, skip_serializing_if = "Option::is_none")]
6725    pub health: Option<Box<ProjectHealthSort>>,
6726    /// Sort by project lead name.
6727    #[serde(default, skip_serializing_if = "Option::is_none")]
6728    pub lead: Option<Box<ProjectLeadSort>>,
6729}
6730#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6731#[serde(rename_all = "camelCase")]
6732pub struct ProjectStatusCreateInput {
6733    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
6734    #[serde(default, skip_serializing_if = "Option::is_none")]
6735    pub id: Option<String>,
6736    /// The name of the status.
6737    #[serde(default, skip_serializing_if = "Option::is_none")]
6738    pub name: Option<String>,
6739    /// The UI color of the status as a HEX string.
6740    #[serde(default, skip_serializing_if = "Option::is_none")]
6741    pub color: Option<String>,
6742    /// Description of the status.
6743    #[serde(default, skip_serializing_if = "Option::is_none")]
6744    pub description: Option<String>,
6745    /// The position of the status in the workspace's project flow.
6746    #[serde(default, skip_serializing_if = "Option::is_none")]
6747    pub position: Option<f64>,
6748    /// The type of the project status.
6749    #[serde(default, skip_serializing_if = "Option::is_none")]
6750    pub r#type: Option<ProjectStatusType>,
6751    /// Whether or not a project can be in this status indefinitely.
6752    #[serde(default, skip_serializing_if = "Option::is_none")]
6753    pub indefinite: Option<bool>,
6754}
6755/// Project status filtering options.
6756#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6757#[serde(rename_all = "camelCase")]
6758pub struct ProjectStatusFilter {
6759    /// Comparator for the identifier.
6760    #[serde(default, skip_serializing_if = "Option::is_none")]
6761    pub id: Option<Box<IDComparator>>,
6762    /// Comparator for the created at date.
6763    #[serde(default, skip_serializing_if = "Option::is_none")]
6764    pub created_at: Option<Box<DateComparator>>,
6765    /// Comparator for the updated at date.
6766    #[serde(default, skip_serializing_if = "Option::is_none")]
6767    pub updated_at: Option<Box<DateComparator>>,
6768    /// Comparator for the project status name.
6769    #[serde(default, skip_serializing_if = "Option::is_none")]
6770    pub name: Option<Box<StringComparator>>,
6771    /// Comparator for the project status description.
6772    #[serde(default, skip_serializing_if = "Option::is_none")]
6773    pub description: Option<Box<StringComparator>>,
6774    /// Comparator for the project status position.
6775    #[serde(default, skip_serializing_if = "Option::is_none")]
6776    pub position: Option<Box<NumberComparator>>,
6777    /// Comparator for the project status type.
6778    #[serde(default, skip_serializing_if = "Option::is_none")]
6779    pub r#type: Option<Box<StringComparator>>,
6780    /// Filters that the project status projects must satisfy.
6781    #[serde(default, skip_serializing_if = "Option::is_none")]
6782    pub projects: Option<Box<ProjectCollectionFilter>>,
6783    /// Compound filters, all of which need to be matched by the project status.
6784    #[serde(default, skip_serializing_if = "Option::is_none")]
6785    pub and: Option<Vec<Box<ProjectStatusFilter>>>,
6786    /// Compound filters, one of which needs to be matched by the project status.
6787    #[serde(default, skip_serializing_if = "Option::is_none")]
6788    pub or: Option<Vec<Box<ProjectStatusFilter>>>,
6789}
6790/// Project status sorting options.
6791#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6792#[serde(rename_all = "camelCase")]
6793pub struct ProjectStatusSort {
6794    /// Whether nulls should be sorted first or last
6795    #[serde(default, skip_serializing_if = "Option::is_none")]
6796    pub nulls: Option<PaginationNulls>,
6797    /// The order for the individual sort
6798    #[serde(default, skip_serializing_if = "Option::is_none")]
6799    pub order: Option<PaginationSortOrder>,
6800}
6801#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6802#[serde(rename_all = "camelCase")]
6803pub struct ProjectStatusUpdateInput {
6804    /// The name of the status.
6805    #[serde(default, skip_serializing_if = "Option::is_none")]
6806    pub name: Option<String>,
6807    /// The UI color of the status as a HEX string.
6808    #[serde(default, skip_serializing_if = "Option::is_none")]
6809    pub color: Option<String>,
6810    /// Description of the status.
6811    #[serde(default, skip_serializing_if = "Option::is_none")]
6812    pub description: Option<String>,
6813    /// The position of the status in the workspace's project flow.
6814    #[serde(default, skip_serializing_if = "Option::is_none")]
6815    pub position: Option<f64>,
6816    /// The type of the project status.
6817    #[serde(default, skip_serializing_if = "Option::is_none")]
6818    pub r#type: Option<ProjectStatusType>,
6819    /// Whether or not a project can be in this status indefinitely.
6820    #[serde(default, skip_serializing_if = "Option::is_none")]
6821    pub indefinite: Option<bool>,
6822}
6823#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6824#[serde(rename_all = "camelCase")]
6825pub struct ProjectUpdateCreateInput {
6826    /// The identifier. If none is provided, the backend will generate one.
6827    #[serde(default, skip_serializing_if = "Option::is_none")]
6828    pub id: Option<String>,
6829    /// The content of the project update in markdown format.
6830    #[serde(default, skip_serializing_if = "Option::is_none")]
6831    pub body: Option<String>,
6832    /// `Internal` The content of the project update as a Prosemirror document.
6833    #[serde(default, skip_serializing_if = "Option::is_none")]
6834    pub body_data: Option<serde_json::Value>,
6835    /// The project to associate the project update with.
6836    #[serde(default, skip_serializing_if = "Option::is_none")]
6837    pub project_id: Option<String>,
6838    /// The health of the project at the time of the update.
6839    #[serde(default, skip_serializing_if = "Option::is_none")]
6840    pub health: Option<ProjectUpdateHealthType>,
6841    /// Whether the diff between the current update and the previous one should be hidden.
6842    #[serde(default, skip_serializing_if = "Option::is_none")]
6843    pub is_diff_hidden: Option<bool>,
6844}
6845/// Options for filtering project updates.
6846#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6847#[serde(rename_all = "camelCase")]
6848pub struct ProjectUpdateFilter {
6849    /// Comparator for the identifier.
6850    #[serde(default, skip_serializing_if = "Option::is_none")]
6851    pub id: Option<Box<IDComparator>>,
6852    /// Comparator for the created at date.
6853    #[serde(default, skip_serializing_if = "Option::is_none")]
6854    pub created_at: Option<Box<DateComparator>>,
6855    /// Comparator for the updated at date.
6856    #[serde(default, skip_serializing_if = "Option::is_none")]
6857    pub updated_at: Option<Box<DateComparator>>,
6858    /// Filters that the project update creator must satisfy.
6859    #[serde(default, skip_serializing_if = "Option::is_none")]
6860    pub user: Option<Box<UserFilter>>,
6861    /// Filters that the project update project must satisfy.
6862    #[serde(default, skip_serializing_if = "Option::is_none")]
6863    pub project: Option<Box<ProjectFilter>>,
6864    /// Filters that the project updates reactions must satisfy.
6865    #[serde(default, skip_serializing_if = "Option::is_none")]
6866    pub reactions: Option<Box<ReactionCollectionFilter>>,
6867    /// Compound filters, all of which need to be matched by the ProjectUpdate.
6868    #[serde(default, skip_serializing_if = "Option::is_none")]
6869    pub and: Option<Vec<Box<ProjectUpdateFilter>>>,
6870    /// Compound filters, one of which need to be matched by the ProjectUpdate.
6871    #[serde(default, skip_serializing_if = "Option::is_none")]
6872    pub or: Option<Vec<Box<ProjectUpdateFilter>>>,
6873}
6874#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6875#[serde(rename_all = "camelCase")]
6876pub struct ProjectUpdateInput {
6877    /// The ID of the project status.
6878    #[serde(default, skip_serializing_if = "Option::is_none")]
6879    pub status_id: Option<String>,
6880    /// The name of the project.
6881    #[serde(default, skip_serializing_if = "Option::is_none")]
6882    pub name: Option<String>,
6883    /// The description for the project.
6884    #[serde(default, skip_serializing_if = "Option::is_none")]
6885    pub description: Option<String>,
6886    /// The project content as markdown.
6887    #[serde(default, skip_serializing_if = "Option::is_none")]
6888    pub content: Option<String>,
6889    /// The ID of the issue from which that project is created.
6890    #[serde(default, skip_serializing_if = "Option::is_none")]
6891    pub converted_from_issue_id: Option<String>,
6892    /// The ID of the last template applied to the project.
6893    #[serde(default, skip_serializing_if = "Option::is_none")]
6894    pub last_applied_template_id: Option<String>,
6895    /// The icon of the project.
6896    #[serde(default, skip_serializing_if = "Option::is_none")]
6897    pub icon: Option<String>,
6898    /// The color of the project.
6899    #[serde(default, skip_serializing_if = "Option::is_none")]
6900    pub color: Option<String>,
6901    /// The identifiers of the teams this project is associated with.
6902    #[serde(default, skip_serializing_if = "Option::is_none")]
6903    pub team_ids: Option<Vec<String>>,
6904    /// The time until which project update reminders are paused.
6905    #[serde(default, skip_serializing_if = "Option::is_none")]
6906    pub project_update_reminders_paused_until_at: Option<chrono::DateTime<chrono::Utc>>,
6907    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
6908    #[serde(default, skip_serializing_if = "Option::is_none")]
6909    pub update_reminder_frequency_in_weeks: Option<f64>,
6910    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
6911    #[serde(default, skip_serializing_if = "Option::is_none")]
6912    pub update_reminder_frequency: Option<f64>,
6913    /// The frequency resolution.
6914    #[serde(default, skip_serializing_if = "Option::is_none")]
6915    pub frequency_resolution: Option<FrequencyResolutionType>,
6916    /// The day at which to prompt for updates.
6917    #[serde(default, skip_serializing_if = "Option::is_none")]
6918    pub update_reminders_day: Option<Day>,
6919    /// The hour at which to prompt for updates.
6920    #[serde(default, skip_serializing_if = "Option::is_none")]
6921    pub update_reminders_hour: Option<i64>,
6922    /// The identifier of the project lead.
6923    #[serde(default, skip_serializing_if = "Option::is_none")]
6924    pub lead_id: Option<String>,
6925    /// The identifiers of the members of this project.
6926    #[serde(default, skip_serializing_if = "Option::is_none")]
6927    pub member_ids: Option<Vec<String>>,
6928    /// The planned start date of the project.
6929    #[serde(default, skip_serializing_if = "Option::is_none")]
6930    pub start_date: Option<chrono::NaiveDate>,
6931    /// The resolution of the project's start date.
6932    #[serde(default, skip_serializing_if = "Option::is_none")]
6933    pub start_date_resolution: Option<DateResolutionType>,
6934    /// The planned target date of the project.
6935    #[serde(default, skip_serializing_if = "Option::is_none")]
6936    pub target_date: Option<chrono::NaiveDate>,
6937    /// The resolution of the project's estimated completion date.
6938    #[serde(default, skip_serializing_if = "Option::is_none")]
6939    pub target_date_resolution: Option<DateResolutionType>,
6940    /// The date when the project was completed.
6941    #[serde(default, skip_serializing_if = "Option::is_none")]
6942    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
6943    /// The date when the project was canceled.
6944    #[serde(default, skip_serializing_if = "Option::is_none")]
6945    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
6946    /// Whether to send new issue notifications to Slack.
6947    #[serde(default, skip_serializing_if = "Option::is_none")]
6948    pub slack_new_issue: Option<bool>,
6949    /// Whether to send new issue comment notifications to Slack.
6950    #[serde(default, skip_serializing_if = "Option::is_none")]
6951    pub slack_issue_comments: Option<bool>,
6952    /// Whether to send issue status update notifications to Slack.
6953    #[serde(default, skip_serializing_if = "Option::is_none")]
6954    pub slack_issue_statuses: Option<bool>,
6955    /// The sort order for the project in shared views.
6956    #[serde(default, skip_serializing_if = "Option::is_none")]
6957    pub sort_order: Option<f64>,
6958    /// The sort order for the project within shared views, when ordered by priority.
6959    #[serde(default, skip_serializing_if = "Option::is_none")]
6960    pub priority_sort_order: Option<f64>,
6961    /// Whether the project has been trashed.
6962    #[serde(default, skip_serializing_if = "Option::is_none")]
6963    pub trashed: Option<bool>,
6964    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
6965    #[serde(default, skip_serializing_if = "Option::is_none")]
6966    pub priority: Option<i64>,
6967    /// The identifiers of the project labels associated with this project.
6968    #[serde(default, skip_serializing_if = "Option::is_none")]
6969    pub label_ids: Option<Vec<String>>,
6970}
6971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6972#[serde(rename_all = "camelCase")]
6973pub struct ProjectUpdateUpdateInput {
6974    /// The content of the project update in markdown format.
6975    #[serde(default, skip_serializing_if = "Option::is_none")]
6976    pub body: Option<String>,
6977    /// The content of the project update as a Prosemirror document.
6978    #[serde(default, skip_serializing_if = "Option::is_none")]
6979    pub body_data: Option<serde_json::Value>,
6980    /// The health of the project at the time of the update.
6981    #[serde(default, skip_serializing_if = "Option::is_none")]
6982    pub health: Option<ProjectUpdateHealthType>,
6983    /// Whether the diff between the current update and the previous one should be hidden.
6984    #[serde(default, skip_serializing_if = "Option::is_none")]
6985    pub is_diff_hidden: Option<bool>,
6986}
6987/// Project update date sorting options.
6988#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6989#[serde(rename_all = "camelCase")]
6990pub struct ProjectUpdatedAtSort {
6991    /// Whether nulls should be sorted first or last
6992    #[serde(default, skip_serializing_if = "Option::is_none")]
6993    pub nulls: Option<PaginationNulls>,
6994    /// The order for the individual sort
6995    #[serde(default, skip_serializing_if = "Option::is_none")]
6996    pub order: Option<PaginationSortOrder>,
6997}
6998/// Collection filtering options for filtering projects by project updates.
6999#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7000#[serde(rename_all = "camelCase")]
7001pub struct ProjectUpdatesCollectionFilter {
7002    /// Comparator for the identifier.
7003    #[serde(default, skip_serializing_if = "Option::is_none")]
7004    pub id: Option<Box<IDComparator>>,
7005    /// Comparator for the created at date.
7006    #[serde(default, skip_serializing_if = "Option::is_none")]
7007    pub created_at: Option<Box<DateComparator>>,
7008    /// Comparator for the updated at date.
7009    #[serde(default, skip_serializing_if = "Option::is_none")]
7010    pub updated_at: Option<Box<DateComparator>>,
7011    /// Comparator for the project update health.
7012    #[serde(default, skip_serializing_if = "Option::is_none")]
7013    pub health: Option<Box<StringComparator>>,
7014    /// Compound filters, all of which need to be matched by the project update.
7015    #[serde(default, skip_serializing_if = "Option::is_none")]
7016    pub and: Option<Vec<Box<ProjectUpdatesCollectionFilter>>>,
7017    /// Compound filters, one of which need to be matched by the update.
7018    #[serde(default, skip_serializing_if = "Option::is_none")]
7019    pub or: Option<Vec<Box<ProjectUpdatesCollectionFilter>>>,
7020    /// Filters that needs to be matched by some updates.
7021    #[serde(default, skip_serializing_if = "Option::is_none")]
7022    pub some: Option<Box<ProjectUpdatesFilter>>,
7023    /// Filters that needs to be matched by all updates.
7024    #[serde(default, skip_serializing_if = "Option::is_none")]
7025    pub every: Option<Box<ProjectUpdatesFilter>>,
7026    /// Comparator for the collection length.
7027    #[serde(default, skip_serializing_if = "Option::is_none")]
7028    pub length: Option<Box<NumberComparator>>,
7029}
7030/// Options for filtering projects by project updates.
7031#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7032#[serde(rename_all = "camelCase")]
7033pub struct ProjectUpdatesFilter {
7034    /// Comparator for the identifier.
7035    #[serde(default, skip_serializing_if = "Option::is_none")]
7036    pub id: Option<Box<IDComparator>>,
7037    /// Comparator for the created at date.
7038    #[serde(default, skip_serializing_if = "Option::is_none")]
7039    pub created_at: Option<Box<DateComparator>>,
7040    /// Comparator for the updated at date.
7041    #[serde(default, skip_serializing_if = "Option::is_none")]
7042    pub updated_at: Option<Box<DateComparator>>,
7043    /// Comparator for the project update health.
7044    #[serde(default, skip_serializing_if = "Option::is_none")]
7045    pub health: Option<Box<StringComparator>>,
7046    /// Compound filters, all of which need to be matched by the project updates.
7047    #[serde(default, skip_serializing_if = "Option::is_none")]
7048    pub and: Option<Vec<Box<ProjectUpdatesFilter>>>,
7049    /// Compound filters, one of which need to be matched by the project updates.
7050    #[serde(default, skip_serializing_if = "Option::is_none")]
7051    pub or: Option<Vec<Box<ProjectUpdatesFilter>>>,
7052}
7053/// Input for referencing a pull request by repository and number.
7054#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7055#[serde(rename_all = "camelCase")]
7056pub struct PullRequestReferenceInput {
7057    /// The owner of the repository (e.g., organization or user name).
7058    #[serde(default, skip_serializing_if = "Option::is_none")]
7059    pub repository_owner: Option<String>,
7060    /// The name of the repository.
7061    #[serde(default, skip_serializing_if = "Option::is_none")]
7062    pub repository_name: Option<String>,
7063    /// The pull request number.
7064    #[serde(default, skip_serializing_if = "Option::is_none")]
7065    pub number: Option<f64>,
7066}
7067#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7068#[serde(rename_all = "camelCase")]
7069pub struct PushSubscriptionCreateInput {
7070    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7071    #[serde(default, skip_serializing_if = "Option::is_none")]
7072    pub id: Option<String>,
7073    /// The data of the subscription in stringified JSON format.
7074    #[serde(default, skip_serializing_if = "Option::is_none")]
7075    pub data: Option<String>,
7076    /// Whether this is a subscription payload for Google Cloud Messaging or Apple Push Notification service.
7077    #[serde(default, skip_serializing_if = "Option::is_none")]
7078    pub r#type: Option<PushSubscriptionType>,
7079}
7080/// Reaction filtering options.
7081#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7082#[serde(rename_all = "camelCase")]
7083pub struct ReactionCollectionFilter {
7084    /// Comparator for the identifier.
7085    #[serde(default, skip_serializing_if = "Option::is_none")]
7086    pub id: Option<Box<IDComparator>>,
7087    /// Comparator for the created at date.
7088    #[serde(default, skip_serializing_if = "Option::is_none")]
7089    pub created_at: Option<Box<DateComparator>>,
7090    /// Comparator for the updated at date.
7091    #[serde(default, skip_serializing_if = "Option::is_none")]
7092    pub updated_at: Option<Box<DateComparator>>,
7093    /// Comparator for the reactions emoji.
7094    #[serde(default, skip_serializing_if = "Option::is_none")]
7095    pub emoji: Option<Box<StringComparator>>,
7096    /// Comparator for the reactions custom emoji.
7097    #[serde(default, skip_serializing_if = "Option::is_none")]
7098    pub custom_emoji_id: Option<Box<IDComparator>>,
7099    /// Compound filters, all of which need to be matched by the reaction.
7100    #[serde(default, skip_serializing_if = "Option::is_none")]
7101    pub and: Option<Vec<Box<ReactionCollectionFilter>>>,
7102    /// Compound filters, one of which need to be matched by the reaction.
7103    #[serde(default, skip_serializing_if = "Option::is_none")]
7104    pub or: Option<Vec<Box<ReactionCollectionFilter>>>,
7105    /// Filters that needs to be matched by some reactions.
7106    #[serde(default, skip_serializing_if = "Option::is_none")]
7107    pub some: Option<Box<ReactionFilter>>,
7108    /// Filters that needs to be matched by all reactions.
7109    #[serde(default, skip_serializing_if = "Option::is_none")]
7110    pub every: Option<Box<ReactionFilter>>,
7111    /// Comparator for the collection length.
7112    #[serde(default, skip_serializing_if = "Option::is_none")]
7113    pub length: Option<Box<NumberComparator>>,
7114}
7115#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7116#[serde(rename_all = "camelCase")]
7117pub struct ReactionCreateInput {
7118    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7119    #[serde(default, skip_serializing_if = "Option::is_none")]
7120    pub id: Option<String>,
7121    /// The emoji the user reacted with.
7122    #[serde(default, skip_serializing_if = "Option::is_none")]
7123    pub emoji: Option<String>,
7124    /// The comment to associate the reaction with.
7125    #[serde(default, skip_serializing_if = "Option::is_none")]
7126    pub comment_id: Option<String>,
7127    /// The project update to associate the reaction with.
7128    #[serde(default, skip_serializing_if = "Option::is_none")]
7129    pub project_update_id: Option<String>,
7130    /// The update to associate the reaction with.
7131    #[serde(default, skip_serializing_if = "Option::is_none")]
7132    pub initiative_update_id: Option<String>,
7133    /// The issue to associate the reaction with. Can be a UUID or issue identifier (e.g., 'LIN-123').
7134    #[serde(default, skip_serializing_if = "Option::is_none")]
7135    pub issue_id: Option<String>,
7136    /// `Internal` The post to associate the reaction with.
7137    #[serde(default, skip_serializing_if = "Option::is_none")]
7138    pub post_id: Option<String>,
7139    /// `Internal` The pull request to associate the reaction with.
7140    #[serde(default, skip_serializing_if = "Option::is_none")]
7141    pub pull_request_id: Option<String>,
7142    /// `Internal` The pull request comment to associate the reaction with.
7143    #[serde(default, skip_serializing_if = "Option::is_none")]
7144    pub pull_request_comment_id: Option<String>,
7145}
7146/// Reaction filtering options.
7147#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7148#[serde(rename_all = "camelCase")]
7149pub struct ReactionFilter {
7150    /// Comparator for the identifier.
7151    #[serde(default, skip_serializing_if = "Option::is_none")]
7152    pub id: Option<Box<IDComparator>>,
7153    /// Comparator for the created at date.
7154    #[serde(default, skip_serializing_if = "Option::is_none")]
7155    pub created_at: Option<Box<DateComparator>>,
7156    /// Comparator for the updated at date.
7157    #[serde(default, skip_serializing_if = "Option::is_none")]
7158    pub updated_at: Option<Box<DateComparator>>,
7159    /// Comparator for the reactions emoji.
7160    #[serde(default, skip_serializing_if = "Option::is_none")]
7161    pub emoji: Option<Box<StringComparator>>,
7162    /// Comparator for the reactions custom emoji.
7163    #[serde(default, skip_serializing_if = "Option::is_none")]
7164    pub custom_emoji_id: Option<Box<IDComparator>>,
7165    /// Compound filters, all of which need to be matched by the reaction.
7166    #[serde(default, skip_serializing_if = "Option::is_none")]
7167    pub and: Option<Vec<Box<ReactionFilter>>>,
7168    /// Compound filters, one of which need to be matched by the reaction.
7169    #[serde(default, skip_serializing_if = "Option::is_none")]
7170    pub or: Option<Vec<Box<ReactionFilter>>>,
7171}
7172/// Comparator for relation existence.
7173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7174#[serde(rename_all = "camelCase")]
7175pub struct RelationExistsComparator {
7176    /// Equals constraint.
7177    #[serde(default, skip_serializing_if = "Option::is_none")]
7178    pub eq: Option<bool>,
7179    /// Not equals constraint.
7180    #[serde(default, skip_serializing_if = "Option::is_none")]
7181    pub neq: Option<bool>,
7182}
7183/// `ALPHA` Release collection filtering options.
7184#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7185#[serde(rename_all = "camelCase")]
7186pub struct ReleaseCollectionFilter {
7187    /// Comparator for the identifier.
7188    #[serde(default, skip_serializing_if = "Option::is_none")]
7189    pub id: Option<Box<IDComparator>>,
7190    /// Comparator for the created at date.
7191    #[serde(default, skip_serializing_if = "Option::is_none")]
7192    pub created_at: Option<Box<DateComparator>>,
7193    /// Comparator for the updated at date.
7194    #[serde(default, skip_serializing_if = "Option::is_none")]
7195    pub updated_at: Option<Box<DateComparator>>,
7196    /// Filters that the release's pipeline must satisfy.
7197    #[serde(default, skip_serializing_if = "Option::is_none")]
7198    pub pipeline: Option<Box<ReleasePipelineFilter>>,
7199    /// Filters that the release's stage must satisfy.
7200    #[serde(default, skip_serializing_if = "Option::is_none")]
7201    pub stage: Option<Box<ReleaseStageFilter>>,
7202    /// Compound filters, all of which need to be matched by the release.
7203    #[serde(default, skip_serializing_if = "Option::is_none")]
7204    pub and: Option<Vec<Box<ReleaseCollectionFilter>>>,
7205    /// Compound filters, one of which need to be matched by the release.
7206    #[serde(default, skip_serializing_if = "Option::is_none")]
7207    pub or: Option<Vec<Box<ReleaseCollectionFilter>>>,
7208    /// Filters that needs to be matched by some releases.
7209    #[serde(default, skip_serializing_if = "Option::is_none")]
7210    pub some: Option<Box<ReleaseFilter>>,
7211    /// Filters that needs to be matched by all releases.
7212    #[serde(default, skip_serializing_if = "Option::is_none")]
7213    pub every: Option<Box<ReleaseFilter>>,
7214    /// Comparator for the collection length.
7215    #[serde(default, skip_serializing_if = "Option::is_none")]
7216    pub length: Option<Box<NumberComparator>>,
7217}
7218#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7219#[serde(rename_all = "camelCase")]
7220pub struct ReleaseCompleteInput {
7221    /// The version of the release to complete. If not provided, the latest started release will be completed.
7222    #[serde(default, skip_serializing_if = "Option::is_none")]
7223    pub version: Option<String>,
7224    /// 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.
7225    #[serde(default, skip_serializing_if = "Option::is_none")]
7226    pub commit_sha: Option<String>,
7227    /// The identifier of the pipeline to mark a release as completed.
7228    #[serde(default, skip_serializing_if = "Option::is_none")]
7229    pub pipeline_id: Option<String>,
7230}
7231#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7232#[serde(rename_all = "camelCase")]
7233pub struct ReleaseCompleteInputBase {
7234    /// The version of the release to complete. If not provided, the latest started release will be completed.
7235    #[serde(default, skip_serializing_if = "Option::is_none")]
7236    pub version: Option<String>,
7237    /// 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.
7238    #[serde(default, skip_serializing_if = "Option::is_none")]
7239    pub commit_sha: Option<String>,
7240}
7241/// The input for creating a release.
7242#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7243#[serde(rename_all = "camelCase")]
7244pub struct ReleaseCreateInput {
7245    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7246    #[serde(default, skip_serializing_if = "Option::is_none")]
7247    pub id: Option<String>,
7248    /// The name of the release.
7249    #[serde(default, skip_serializing_if = "Option::is_none")]
7250    pub name: Option<String>,
7251    /// The description of the release.
7252    #[serde(default, skip_serializing_if = "Option::is_none")]
7253    pub description: Option<String>,
7254    /// The version of the release.
7255    #[serde(default, skip_serializing_if = "Option::is_none")]
7256    pub version: Option<String>,
7257    /// The commit SHA associated with this release.
7258    #[serde(default, skip_serializing_if = "Option::is_none")]
7259    pub commit_sha: Option<String>,
7260    /// The identifier of the pipeline this release belongs to.
7261    #[serde(default, skip_serializing_if = "Option::is_none")]
7262    pub pipeline_id: Option<String>,
7263    /// The current stage of the release. Defaults to the first 'completed' stage for continuous pipelines, or the first 'started' stage for scheduled pipelines.
7264    #[serde(default, skip_serializing_if = "Option::is_none")]
7265    pub stage_id: Option<String>,
7266    /// The estimated start date of the release.
7267    #[serde(default, skip_serializing_if = "Option::is_none")]
7268    pub start_date: Option<chrono::NaiveDate>,
7269    /// The estimated completion date of the release.
7270    #[serde(default, skip_serializing_if = "Option::is_none")]
7271    pub target_date: Option<chrono::NaiveDate>,
7272}
7273/// Debug sink for release creation diagnostics.
7274#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7275#[serde(rename_all = "camelCase")]
7276pub struct ReleaseDebugSinkInput {
7277    /// List of commit SHAs that were inspected.
7278    #[serde(default, skip_serializing_if = "Option::is_none")]
7279    pub inspected_shas: Option<Vec<String>>,
7280    /// Map of issue identifiers to their source information.
7281    #[serde(default, skip_serializing_if = "Option::is_none")]
7282    pub issues: Option<serde_json::Value>,
7283    /// Pull request debug information.
7284    #[serde(default, skip_serializing_if = "Option::is_none")]
7285    pub pull_requests: Option<Vec<serde_json::Value>>,
7286    /// List of paths applied during commit scanning.
7287    #[serde(default, skip_serializing_if = "Option::is_none")]
7288    pub include_paths: Option<Vec<String>>,
7289}
7290/// `ALPHA` Release filtering options.
7291#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7292#[serde(rename_all = "camelCase")]
7293pub struct ReleaseFilter {
7294    /// Comparator for the identifier.
7295    #[serde(default, skip_serializing_if = "Option::is_none")]
7296    pub id: Option<Box<IDComparator>>,
7297    /// Comparator for the created at date.
7298    #[serde(default, skip_serializing_if = "Option::is_none")]
7299    pub created_at: Option<Box<DateComparator>>,
7300    /// Comparator for the updated at date.
7301    #[serde(default, skip_serializing_if = "Option::is_none")]
7302    pub updated_at: Option<Box<DateComparator>>,
7303    /// Filters that the release's pipeline must satisfy.
7304    #[serde(default, skip_serializing_if = "Option::is_none")]
7305    pub pipeline: Option<Box<ReleasePipelineFilter>>,
7306    /// Filters that the release's stage must satisfy.
7307    #[serde(default, skip_serializing_if = "Option::is_none")]
7308    pub stage: Option<Box<ReleaseStageFilter>>,
7309    /// Compound filters, all of which need to be matched by the release.
7310    #[serde(default, skip_serializing_if = "Option::is_none")]
7311    pub and: Option<Vec<Box<ReleaseFilter>>>,
7312    /// Compound filters, one of which need to be matched by the release.
7313    #[serde(default, skip_serializing_if = "Option::is_none")]
7314    pub or: Option<Vec<Box<ReleaseFilter>>>,
7315}
7316#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7317#[serde(rename_all = "camelCase")]
7318pub struct ReleasePipelineCreateInput {
7319    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7320    #[serde(default, skip_serializing_if = "Option::is_none")]
7321    pub id: Option<String>,
7322    /// The name of the pipeline.
7323    #[serde(default, skip_serializing_if = "Option::is_none")]
7324    pub name: Option<String>,
7325    /// The pipeline's unique slug identifier. If not provided, it will be auto-generated.
7326    #[serde(default, skip_serializing_if = "Option::is_none")]
7327    pub slug_id: Option<String>,
7328    /// The type of the pipeline.
7329    #[serde(default, skip_serializing_if = "Option::is_none")]
7330    pub r#type: Option<ReleasePipelineType>,
7331    /// Glob patterns to include commits affecting matching file paths.
7332    #[serde(default, skip_serializing_if = "Option::is_none")]
7333    pub include_path_patterns: Option<Vec<String>>,
7334}
7335/// `ALPHA` Release pipeline filtering options.
7336#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7337#[serde(rename_all = "camelCase")]
7338pub struct ReleasePipelineFilter {
7339    /// Comparator for the identifier.
7340    #[serde(default, skip_serializing_if = "Option::is_none")]
7341    pub id: Option<Box<IDComparator>>,
7342    /// Comparator for the created at date.
7343    #[serde(default, skip_serializing_if = "Option::is_none")]
7344    pub created_at: Option<Box<DateComparator>>,
7345    /// Comparator for the updated at date.
7346    #[serde(default, skip_serializing_if = "Option::is_none")]
7347    pub updated_at: Option<Box<DateComparator>>,
7348    /// Compound filters, all of which need to be matched by the pipeline.
7349    #[serde(default, skip_serializing_if = "Option::is_none")]
7350    pub and: Option<Vec<Box<ReleasePipelineFilter>>>,
7351    /// Compound filters, one of which need to be matched by the pipeline.
7352    #[serde(default, skip_serializing_if = "Option::is_none")]
7353    pub or: Option<Vec<Box<ReleasePipelineFilter>>>,
7354}
7355#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7356#[serde(rename_all = "camelCase")]
7357pub struct ReleasePipelineUpdateInput {
7358    /// The name of the pipeline.
7359    #[serde(default, skip_serializing_if = "Option::is_none")]
7360    pub name: Option<String>,
7361    /// The pipeline's unique slug identifier.
7362    #[serde(default, skip_serializing_if = "Option::is_none")]
7363    pub slug_id: Option<String>,
7364    /// The type of the pipeline.
7365    #[serde(default, skip_serializing_if = "Option::is_none")]
7366    pub r#type: Option<ReleasePipelineType>,
7367    /// Glob patterns to include commits affecting matching file paths.
7368    #[serde(default, skip_serializing_if = "Option::is_none")]
7369    pub include_path_patterns: Option<Vec<String>>,
7370}
7371#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7372#[serde(rename_all = "camelCase")]
7373pub struct ReleaseStageCreateInput {
7374    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7375    #[serde(default, skip_serializing_if = "Option::is_none")]
7376    pub id: Option<String>,
7377    /// The name of the stage.
7378    #[serde(default, skip_serializing_if = "Option::is_none")]
7379    pub name: Option<String>,
7380    /// The UI color of the stage as a HEX string.
7381    #[serde(default, skip_serializing_if = "Option::is_none")]
7382    pub color: Option<String>,
7383    /// The type of the stage.
7384    #[serde(default, skip_serializing_if = "Option::is_none")]
7385    pub r#type: Option<ReleaseStageType>,
7386    /// The position of the stage.
7387    #[serde(default, skip_serializing_if = "Option::is_none")]
7388    pub position: Option<f64>,
7389    /// The identifier of the pipeline this stage belongs to.
7390    #[serde(default, skip_serializing_if = "Option::is_none")]
7391    pub pipeline_id: Option<String>,
7392    /// Whether this stage is frozen. Only applicable to started stages.
7393    #[serde(default, skip_serializing_if = "Option::is_none")]
7394    pub frozen: Option<bool>,
7395}
7396/// `ALPHA` Release stage filtering options.
7397#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7398#[serde(rename_all = "camelCase")]
7399pub struct ReleaseStageFilter {
7400    /// Comparator for the identifier.
7401    #[serde(default, skip_serializing_if = "Option::is_none")]
7402    pub id: Option<Box<IDComparator>>,
7403    /// Comparator for the created at date.
7404    #[serde(default, skip_serializing_if = "Option::is_none")]
7405    pub created_at: Option<Box<DateComparator>>,
7406    /// Comparator for the updated at date.
7407    #[serde(default, skip_serializing_if = "Option::is_none")]
7408    pub updated_at: Option<Box<DateComparator>>,
7409    /// Comparator for the stage type.
7410    #[serde(default, skip_serializing_if = "Option::is_none")]
7411    pub r#type: Option<Box<ReleaseStageTypeComparator>>,
7412    /// Comparator for the stage name.
7413    #[serde(default, skip_serializing_if = "Option::is_none")]
7414    pub name: Option<Box<StringComparator>>,
7415    /// Compound filters, all of which need to be matched by the stage.
7416    #[serde(default, skip_serializing_if = "Option::is_none")]
7417    pub and: Option<Vec<Box<ReleaseStageFilter>>>,
7418    /// Compound filters, one of which need to be matched by the stage.
7419    #[serde(default, skip_serializing_if = "Option::is_none")]
7420    pub or: Option<Vec<Box<ReleaseStageFilter>>>,
7421}
7422/// `ALPHA` Comparator for release stage type.
7423#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7424#[serde(rename_all = "camelCase")]
7425pub struct ReleaseStageTypeComparator {
7426    /// Equals constraint.
7427    #[serde(default, skip_serializing_if = "Option::is_none")]
7428    pub eq: Option<ReleaseStageType>,
7429    /// Not-equals constraint.
7430    #[serde(default, skip_serializing_if = "Option::is_none")]
7431    pub neq: Option<ReleaseStageType>,
7432    /// In-array constraint.
7433    #[serde(default, skip_serializing_if = "Option::is_none")]
7434    pub r#in: Option<Vec<ReleaseStageType>>,
7435    /// Not-in-array constraint.
7436    #[serde(default, skip_serializing_if = "Option::is_none")]
7437    pub nin: Option<Vec<ReleaseStageType>>,
7438    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
7439    #[serde(default, skip_serializing_if = "Option::is_none")]
7440    pub null: Option<bool>,
7441}
7442#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7443#[serde(rename_all = "camelCase")]
7444pub struct ReleaseStageUpdateInput {
7445    /// The name of the stage.
7446    #[serde(default, skip_serializing_if = "Option::is_none")]
7447    pub name: Option<String>,
7448    /// The UI color of the stage as a HEX string.
7449    #[serde(default, skip_serializing_if = "Option::is_none")]
7450    pub color: Option<String>,
7451    /// The position of the stage.
7452    #[serde(default, skip_serializing_if = "Option::is_none")]
7453    pub position: Option<f64>,
7454    /// Whether this stage is frozen. Only applicable to started stages.
7455    #[serde(default, skip_serializing_if = "Option::is_none")]
7456    pub frozen: Option<bool>,
7457}
7458/// The release data to sync.
7459#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7460#[serde(rename_all = "camelCase")]
7461pub struct ReleaseSyncInput {
7462    /// The name of the release.
7463    #[serde(default, skip_serializing_if = "Option::is_none")]
7464    pub name: Option<String>,
7465    /// The version of the release.
7466    #[serde(default, skip_serializing_if = "Option::is_none")]
7467    pub version: Option<String>,
7468    /// The commit SHA associated with this release.
7469    #[serde(default, skip_serializing_if = "Option::is_none")]
7470    pub commit_sha: Option<String>,
7471    /// Issue references (e.g. ENG-123) to associate with this release.
7472    #[serde(default, skip_serializing_if = "Option::is_none")]
7473    pub issue_references: Option<Vec<Box<IssueReferenceInput>>>,
7474    /// Pull request references to look up. Issues linked to found PRs will be associated with this release.
7475    #[serde(default, skip_serializing_if = "Option::is_none")]
7476    pub pull_request_references: Option<Vec<Box<PullRequestReferenceInput>>>,
7477    /// Information about the source repository.
7478    #[serde(default, skip_serializing_if = "Option::is_none")]
7479    pub repository: Option<Box<RepositoryDataInput>>,
7480    /// Debug information for release creation diagnostics.
7481    #[serde(default, skip_serializing_if = "Option::is_none")]
7482    pub debug_sink: Option<Box<ReleaseDebugSinkInput>>,
7483    /// The identifier of the pipeline this release belongs to.
7484    #[serde(default, skip_serializing_if = "Option::is_none")]
7485    pub pipeline_id: Option<String>,
7486}
7487/// Base release sync data without pipeline specification.
7488#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7489#[serde(rename_all = "camelCase")]
7490pub struct ReleaseSyncInputBase {
7491    /// The name of the release.
7492    #[serde(default, skip_serializing_if = "Option::is_none")]
7493    pub name: Option<String>,
7494    /// The version of the release.
7495    #[serde(default, skip_serializing_if = "Option::is_none")]
7496    pub version: Option<String>,
7497    /// The commit SHA associated with this release.
7498    #[serde(default, skip_serializing_if = "Option::is_none")]
7499    pub commit_sha: Option<String>,
7500    /// Issue references (e.g. ENG-123) to associate with this release.
7501    #[serde(default, skip_serializing_if = "Option::is_none")]
7502    pub issue_references: Option<Vec<Box<IssueReferenceInput>>>,
7503    /// Pull request references to look up. Issues linked to found PRs will be associated with this release.
7504    #[serde(default, skip_serializing_if = "Option::is_none")]
7505    pub pull_request_references: Option<Vec<Box<PullRequestReferenceInput>>>,
7506    /// Information about the source repository.
7507    #[serde(default, skip_serializing_if = "Option::is_none")]
7508    pub repository: Option<Box<RepositoryDataInput>>,
7509    /// Debug information for release creation diagnostics.
7510    #[serde(default, skip_serializing_if = "Option::is_none")]
7511    pub debug_sink: Option<Box<ReleaseDebugSinkInput>>,
7512}
7513/// Input for updating a release by pipeline.
7514#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7515#[serde(rename_all = "camelCase")]
7516pub struct ReleaseUpdateByPipelineInput {
7517    /// The version of the release to update. If not provided, the latest started or latest planned release will be updated.
7518    #[serde(default, skip_serializing_if = "Option::is_none")]
7519    pub version: Option<String>,
7520    /// The stage name to set. First tries exact match, then falls back to case-insensitive matching with dashes/underscores treated as spaces.
7521    #[serde(default, skip_serializing_if = "Option::is_none")]
7522    pub stage: Option<String>,
7523    /// The identifier of the pipeline.
7524    #[serde(default, skip_serializing_if = "Option::is_none")]
7525    pub pipeline_id: Option<String>,
7526}
7527#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7528#[serde(rename_all = "camelCase")]
7529pub struct ReleaseUpdateByPipelineInputBase {
7530    /// The version of the release to update. If not provided, the latest started or latest planned release will be updated.
7531    #[serde(default, skip_serializing_if = "Option::is_none")]
7532    pub version: Option<String>,
7533    /// The stage name to set. First tries exact match, then falls back to case-insensitive matching with dashes/underscores treated as spaces.
7534    #[serde(default, skip_serializing_if = "Option::is_none")]
7535    pub stage: Option<String>,
7536}
7537#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7538#[serde(rename_all = "camelCase")]
7539pub struct ReleaseUpdateInput {
7540    /// The name of the release.
7541    #[serde(default, skip_serializing_if = "Option::is_none")]
7542    pub name: Option<String>,
7543    /// The description of the release.
7544    #[serde(default, skip_serializing_if = "Option::is_none")]
7545    pub description: Option<String>,
7546    /// The version of the release.
7547    #[serde(default, skip_serializing_if = "Option::is_none")]
7548    pub version: Option<String>,
7549    /// The commit SHA associated with this release.
7550    #[serde(default, skip_serializing_if = "Option::is_none")]
7551    pub commit_sha: Option<String>,
7552    /// The identifier of the pipeline this release belongs to.
7553    #[serde(default, skip_serializing_if = "Option::is_none")]
7554    pub pipeline_id: Option<String>,
7555    /// The current stage of the release.
7556    #[serde(default, skip_serializing_if = "Option::is_none")]
7557    pub stage_id: Option<String>,
7558    /// The estimated start date of the release.
7559    #[serde(default, skip_serializing_if = "Option::is_none")]
7560    pub start_date: Option<chrono::NaiveDate>,
7561    /// The estimated completion date of the release.
7562    #[serde(default, skip_serializing_if = "Option::is_none")]
7563    pub target_date: Option<chrono::NaiveDate>,
7564}
7565/// Information about the source repository.
7566#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7567#[serde(rename_all = "camelCase")]
7568pub struct RepositoryDataInput {
7569    /// The owner of the repository (e.g., organization or user name).
7570    #[serde(default, skip_serializing_if = "Option::is_none")]
7571    pub owner: Option<String>,
7572    /// The name of the repository.
7573    #[serde(default, skip_serializing_if = "Option::is_none")]
7574    pub name: Option<String>,
7575    /// The VCS provider hosting the repository (e.g., 'github', 'gitlab').
7576    #[serde(default, skip_serializing_if = "Option::is_none")]
7577    pub provider: Option<String>,
7578    /// The base URL of the repository on the hosting provider (e.g., '<https://github.com/linear/linear-app>').
7579    #[serde(default, skip_serializing_if = "Option::is_none")]
7580    pub url: Option<String>,
7581}
7582/// Customer revenue sorting options.
7583#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7584#[serde(rename_all = "camelCase")]
7585pub struct RevenueSort {
7586    /// Whether nulls should be sorted first or last
7587    #[serde(default, skip_serializing_if = "Option::is_none")]
7588    pub nulls: Option<PaginationNulls>,
7589    /// The order for the individual sort
7590    #[serde(default, skip_serializing_if = "Option::is_none")]
7591    pub order: Option<PaginationSortOrder>,
7592}
7593/// Roadmap collection filtering options.
7594#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7595#[serde(rename_all = "camelCase")]
7596pub struct RoadmapCollectionFilter {
7597    /// Comparator for the identifier.
7598    #[serde(default, skip_serializing_if = "Option::is_none")]
7599    pub id: Option<Box<IDComparator>>,
7600    /// Comparator for the created at date.
7601    #[serde(default, skip_serializing_if = "Option::is_none")]
7602    pub created_at: Option<Box<DateComparator>>,
7603    /// Comparator for the updated at date.
7604    #[serde(default, skip_serializing_if = "Option::is_none")]
7605    pub updated_at: Option<Box<DateComparator>>,
7606    /// Comparator for the roadmap name.
7607    #[serde(default, skip_serializing_if = "Option::is_none")]
7608    pub name: Option<Box<StringComparator>>,
7609    /// Comparator for the roadmap slug ID.
7610    #[serde(default, skip_serializing_if = "Option::is_none")]
7611    pub slug_id: Option<Box<StringComparator>>,
7612    /// Filters that the roadmap creator must satisfy.
7613    #[serde(default, skip_serializing_if = "Option::is_none")]
7614    pub creator: Option<Box<UserFilter>>,
7615    /// Compound filters, all of which need to be matched by the roadmap.
7616    #[serde(default, skip_serializing_if = "Option::is_none")]
7617    pub and: Option<Vec<Box<RoadmapCollectionFilter>>>,
7618    /// Compound filters, one of which need to be matched by the roadmap.
7619    #[serde(default, skip_serializing_if = "Option::is_none")]
7620    pub or: Option<Vec<Box<RoadmapCollectionFilter>>>,
7621    /// Filters that needs to be matched by some roadmaps.
7622    #[serde(default, skip_serializing_if = "Option::is_none")]
7623    pub some: Option<Box<RoadmapFilter>>,
7624    /// Filters that needs to be matched by all roadmaps.
7625    #[serde(default, skip_serializing_if = "Option::is_none")]
7626    pub every: Option<Box<RoadmapFilter>>,
7627    /// Comparator for the collection length.
7628    #[serde(default, skip_serializing_if = "Option::is_none")]
7629    pub length: Option<Box<NumberComparator>>,
7630}
7631#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7632#[serde(rename_all = "camelCase")]
7633pub struct RoadmapCreateInput {
7634    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7635    #[serde(default, skip_serializing_if = "Option::is_none")]
7636    pub id: Option<String>,
7637    /// The name of the roadmap.
7638    #[serde(default, skip_serializing_if = "Option::is_none")]
7639    pub name: Option<String>,
7640    /// The description of the roadmap.
7641    #[serde(default, skip_serializing_if = "Option::is_none")]
7642    pub description: Option<String>,
7643    /// The owner of the roadmap.
7644    #[serde(default, skip_serializing_if = "Option::is_none")]
7645    pub owner_id: Option<String>,
7646    /// The sort order of the roadmap within the organization.
7647    #[serde(default, skip_serializing_if = "Option::is_none")]
7648    pub sort_order: Option<f64>,
7649    /// The roadmap's color.
7650    #[serde(default, skip_serializing_if = "Option::is_none")]
7651    pub color: Option<String>,
7652}
7653/// Roadmap filtering options.
7654#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7655#[serde(rename_all = "camelCase")]
7656pub struct RoadmapFilter {
7657    /// Comparator for the identifier.
7658    #[serde(default, skip_serializing_if = "Option::is_none")]
7659    pub id: Option<Box<IDComparator>>,
7660    /// Comparator for the created at date.
7661    #[serde(default, skip_serializing_if = "Option::is_none")]
7662    pub created_at: Option<Box<DateComparator>>,
7663    /// Comparator for the updated at date.
7664    #[serde(default, skip_serializing_if = "Option::is_none")]
7665    pub updated_at: Option<Box<DateComparator>>,
7666    /// Comparator for the roadmap name.
7667    #[serde(default, skip_serializing_if = "Option::is_none")]
7668    pub name: Option<Box<StringComparator>>,
7669    /// Comparator for the roadmap slug ID.
7670    #[serde(default, skip_serializing_if = "Option::is_none")]
7671    pub slug_id: Option<Box<StringComparator>>,
7672    /// Filters that the roadmap creator must satisfy.
7673    #[serde(default, skip_serializing_if = "Option::is_none")]
7674    pub creator: Option<Box<UserFilter>>,
7675    /// Compound filters, all of which need to be matched by the roadmap.
7676    #[serde(default, skip_serializing_if = "Option::is_none")]
7677    pub and: Option<Vec<Box<RoadmapFilter>>>,
7678    /// Compound filters, one of which need to be matched by the roadmap.
7679    #[serde(default, skip_serializing_if = "Option::is_none")]
7680    pub or: Option<Vec<Box<RoadmapFilter>>>,
7681}
7682#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7683#[serde(rename_all = "camelCase")]
7684pub struct RoadmapToProjectCreateInput {
7685    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
7686    #[serde(default, skip_serializing_if = "Option::is_none")]
7687    pub id: Option<String>,
7688    /// The identifier of the project.
7689    #[serde(default, skip_serializing_if = "Option::is_none")]
7690    pub project_id: Option<String>,
7691    /// The identifier of the roadmap.
7692    #[serde(default, skip_serializing_if = "Option::is_none")]
7693    pub roadmap_id: Option<String>,
7694    /// The sort order for the project within its organization.
7695    #[serde(default, skip_serializing_if = "Option::is_none")]
7696    pub sort_order: Option<f64>,
7697}
7698#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7699#[serde(rename_all = "camelCase")]
7700pub struct RoadmapToProjectUpdateInput {
7701    /// The sort order for the project within its organization.
7702    #[serde(default, skip_serializing_if = "Option::is_none")]
7703    pub sort_order: Option<f64>,
7704}
7705#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7706#[serde(rename_all = "camelCase")]
7707pub struct RoadmapUpdateInput {
7708    /// The name of the roadmap.
7709    #[serde(default, skip_serializing_if = "Option::is_none")]
7710    pub name: Option<String>,
7711    /// The description of the roadmap.
7712    #[serde(default, skip_serializing_if = "Option::is_none")]
7713    pub description: Option<String>,
7714    /// The owner of the roadmap.
7715    #[serde(default, skip_serializing_if = "Option::is_none")]
7716    pub owner_id: Option<String>,
7717    /// The sort order of the roadmap within the organization.
7718    #[serde(default, skip_serializing_if = "Option::is_none")]
7719    pub sort_order: Option<f64>,
7720    /// The roadmap's color.
7721    #[serde(default, skip_serializing_if = "Option::is_none")]
7722    pub color: Option<String>,
7723}
7724/// Issue root-issue sorting options.
7725#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7726#[serde(rename_all = "camelCase")]
7727pub struct RootIssueSort {
7728    /// Whether nulls should be sorted first or last
7729    #[serde(default, skip_serializing_if = "Option::is_none")]
7730    pub nulls: Option<PaginationNulls>,
7731    /// The order for the individual sort
7732    #[serde(default, skip_serializing_if = "Option::is_none")]
7733    pub order: Option<PaginationSortOrder>,
7734    /// The sort to apply to the root issues
7735    #[serde(default, skip_serializing_if = "Option::is_none")]
7736    pub sort: Option<Box<IssueSortInput>>,
7737}
7738/// `INTERNAL` Comparator for Salesforce metadata.
7739#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7740#[serde(rename_all = "camelCase")]
7741pub struct SalesforceMetadataIntegrationComparator {
7742    /// Salesforce Case metadata filter
7743    #[serde(default, skip_serializing_if = "Option::is_none")]
7744    pub case_metadata: Option<serde_json::Value>,
7745}
7746#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7747#[serde(rename_all = "camelCase")]
7748pub struct SalesforceSettingsInput {
7749    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
7750    #[serde(default, skip_serializing_if = "Option::is_none")]
7751    pub send_note_on_status_change: Option<bool>,
7752    /// Whether an internal message should be added when someone comments on an issue.
7753    #[serde(default, skip_serializing_if = "Option::is_none")]
7754    pub send_note_on_comment: Option<bool>,
7755    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
7756    #[serde(default, skip_serializing_if = "Option::is_none")]
7757    pub automate_ticket_reopening_on_completion: Option<bool>,
7758    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
7759    #[serde(default, skip_serializing_if = "Option::is_none")]
7760    pub automate_ticket_reopening_on_cancellation: Option<bool>,
7761    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
7762    #[serde(default, skip_serializing_if = "Option::is_none")]
7763    pub automate_ticket_reopening_on_comment: Option<bool>,
7764    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
7765    #[serde(default, skip_serializing_if = "Option::is_none")]
7766    pub disable_customer_requests_auto_creation: Option<bool>,
7767    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
7768    #[serde(default, skip_serializing_if = "Option::is_none")]
7769    pub automate_ticket_reopening_on_project_completion: Option<bool>,
7770    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
7771    #[serde(default, skip_serializing_if = "Option::is_none")]
7772    pub automate_ticket_reopening_on_project_cancellation: Option<bool>,
7773    /// Whether Linear Agent should be enabled for this integration.
7774    #[serde(default, skip_serializing_if = "Option::is_none")]
7775    pub enable_ai_intake: Option<bool>,
7776    /// The Salesforce subdomain.
7777    #[serde(default, skip_serializing_if = "Option::is_none")]
7778    pub subdomain: Option<String>,
7779    /// The Salesforce instance URL.
7780    #[serde(default, skip_serializing_if = "Option::is_none")]
7781    pub url: Option<String>,
7782    /// The Salesforce case status to use to reopen cases.
7783    #[serde(default, skip_serializing_if = "Option::is_none")]
7784    pub reopen_case_status: Option<String>,
7785    /// Whether to restrict visibility of the integration to issues that have been either created from Salesforce or linked to Salesforce.
7786    #[serde(default, skip_serializing_if = "Option::is_none")]
7787    pub restrict_visibility: Option<bool>,
7788    /// The Salesforce team to use when a template doesn't specify a team.
7789    #[serde(default, skip_serializing_if = "Option::is_none")]
7790    pub default_team: Option<String>,
7791}
7792/// Filters for semantic search results.
7793#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7794#[serde(rename_all = "camelCase")]
7795pub struct SemanticSearchFilters {
7796    /// Filters applied to issues.
7797    #[serde(default, skip_serializing_if = "Option::is_none")]
7798    pub issues: Option<Box<IssueFilter>>,
7799    /// Filters applied to projects.
7800    #[serde(default, skip_serializing_if = "Option::is_none")]
7801    pub projects: Option<Box<ProjectFilter>>,
7802    /// Filters applied to initiatives.
7803    #[serde(default, skip_serializing_if = "Option::is_none")]
7804    pub initiatives: Option<Box<InitiativeFilter>>,
7805    /// Filters applied to documents.
7806    #[serde(default, skip_serializing_if = "Option::is_none")]
7807    pub documents: Option<Box<DocumentFilter>>,
7808}
7809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7810#[serde(rename_all = "camelCase")]
7811pub struct SentrySettingsInput {
7812    /// The slug of the Sentry organization being connected.
7813    #[serde(default, skip_serializing_if = "Option::is_none")]
7814    pub organization_slug: Option<String>,
7815    /// The ID of the Sentry organization being connected.
7816    #[serde(default, skip_serializing_if = "Option::is_none")]
7817    pub organization_id: Option<String>,
7818    /// Whether Sentry issues resolving completes Linear issues.
7819    #[serde(default, skip_serializing_if = "Option::is_none")]
7820    pub resolving_completes_issues: Option<bool>,
7821    /// Whether Sentry issues unresolving reopens Linear issues.
7822    #[serde(default, skip_serializing_if = "Option::is_none")]
7823    pub unresolving_reopens_issues: Option<bool>,
7824}
7825/// Customer size sorting options.
7826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7827#[serde(rename_all = "camelCase")]
7828pub struct SizeSort {
7829    /// Whether nulls should be sorted first or last
7830    #[serde(default, skip_serializing_if = "Option::is_none")]
7831    pub nulls: Option<PaginationNulls>,
7832    /// The order for the individual sort
7833    #[serde(default, skip_serializing_if = "Option::is_none")]
7834    pub order: Option<PaginationSortOrder>,
7835}
7836/// Comparator for sla status.
7837#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7838#[serde(rename_all = "camelCase")]
7839pub struct SlaStatusComparator {
7840    /// Equals constraint.
7841    #[serde(default, skip_serializing_if = "Option::is_none")]
7842    pub eq: Option<SlaStatus>,
7843    /// Not-equals constraint.
7844    #[serde(default, skip_serializing_if = "Option::is_none")]
7845    pub neq: Option<SlaStatus>,
7846    /// In-array constraint.
7847    #[serde(default, skip_serializing_if = "Option::is_none")]
7848    pub r#in: Option<Vec<SlaStatus>>,
7849    /// Not-in-array constraint.
7850    #[serde(default, skip_serializing_if = "Option::is_none")]
7851    pub nin: Option<Vec<SlaStatus>>,
7852    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
7853    #[serde(default, skip_serializing_if = "Option::is_none")]
7854    pub null: Option<bool>,
7855}
7856/// Issue SLA status sorting options.
7857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7858#[serde(rename_all = "camelCase")]
7859pub struct SlaStatusSort {
7860    /// Whether nulls should be sorted first or last
7861    #[serde(default, skip_serializing_if = "Option::is_none")]
7862    pub nulls: Option<PaginationNulls>,
7863    /// The order for the individual sort
7864    #[serde(default, skip_serializing_if = "Option::is_none")]
7865    pub order: Option<PaginationSortOrder>,
7866}
7867#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7868#[serde(rename_all = "camelCase")]
7869pub struct SlackAsksSettingsInput {
7870    /// Slack workspace name
7871    #[serde(default, skip_serializing_if = "Option::is_none")]
7872    pub team_name: Option<String>,
7873    /// Slack workspace id
7874    #[serde(default, skip_serializing_if = "Option::is_none")]
7875    pub team_id: Option<String>,
7876    /// Enterprise name of the connected Slack enterprise
7877    #[serde(default, skip_serializing_if = "Option::is_none")]
7878    pub enterprise_name: Option<String>,
7879    /// Enterprise id of the connected Slack enterprise
7880    #[serde(default, skip_serializing_if = "Option::is_none")]
7881    pub enterprise_id: Option<String>,
7882    /// Whether to show unfurl previews in Slack
7883    #[serde(default, skip_serializing_if = "Option::is_none")]
7884    pub should_unfurl: Option<bool>,
7885    /// Whether to show unfurls in the default style instead of Work Objects in Slack
7886    #[serde(default, skip_serializing_if = "Option::is_none")]
7887    pub should_use_default_unfurl: Option<bool>,
7888    /// Whether to allow external users to perform actions on unfurls
7889    #[serde(default, skip_serializing_if = "Option::is_none")]
7890    pub external_user_actions: Option<bool>,
7891    /// The mapping of Slack channel ID => Slack channel name for connected channels.
7892    #[serde(default, skip_serializing_if = "Option::is_none")]
7893    pub slack_channel_mapping: Option<Vec<Box<SlackChannelNameMappingInput>>>,
7894    /// The user role type that is allowed to manage Asks settings.
7895    #[serde(default, skip_serializing_if = "Option::is_none")]
7896    pub can_administrate: Option<UserRoleType>,
7897    /// Controls who can see and set Customers when creating Asks in Slack.
7898    #[serde(default, skip_serializing_if = "Option::is_none")]
7899    pub customer_visibility: Option<CustomerVisibilityMode>,
7900    /// Whether Linear Agent should be enabled for this Slack Asks integration.
7901    #[serde(default, skip_serializing_if = "Option::is_none")]
7902    pub enable_agent: Option<bool>,
7903    /// Whether Linear Agent should be given Org-wide access within Slack workflows.
7904    #[serde(default, skip_serializing_if = "Option::is_none")]
7905    pub enable_linear_agent_workflow_access: Option<bool>,
7906}
7907#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7908#[serde(rename_all = "camelCase")]
7909pub struct SlackAsksTeamSettingsInput {
7910    /// The Linear team ID.
7911    #[serde(default, skip_serializing_if = "Option::is_none")]
7912    pub id: Option<String>,
7913    /// Whether the default Asks template is enabled in the given channel for this team.
7914    #[serde(default, skip_serializing_if = "Option::is_none")]
7915    pub has_default_ask: Option<bool>,
7916}
7917#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7918#[serde(rename_all = "camelCase")]
7919pub struct SlackChannelNameMappingInput {
7920    /// The Slack channel ID.
7921    #[serde(default, skip_serializing_if = "Option::is_none")]
7922    pub id: Option<String>,
7923    /// The Slack channel name.
7924    #[serde(default, skip_serializing_if = "Option::is_none")]
7925    pub name: Option<String>,
7926    /// Whether or not the Slack channel is private.
7927    #[serde(default, skip_serializing_if = "Option::is_none")]
7928    pub is_private: Option<bool>,
7929    /// Whether or not the Slack channel is shared with an external org.
7930    #[serde(default, skip_serializing_if = "Option::is_none")]
7931    pub is_shared: Option<bool>,
7932    /// Whether or not the Linear Asks bot has been added to this Slack channel.
7933    #[serde(default, skip_serializing_if = "Option::is_none")]
7934    pub bot_added: Option<bool>,
7935    /// Which teams are connected to the channel and settings for those teams.
7936    #[serde(default, skip_serializing_if = "Option::is_none")]
7937    pub teams: Option<Vec<Box<SlackAsksTeamSettingsInput>>>,
7938    /// Whether or not top-level messages in this channel should automatically create Asks.
7939    #[serde(default, skip_serializing_if = "Option::is_none")]
7940    pub auto_create_on_message: Option<bool>,
7941    /// Whether or not using the :ticket: emoji in this channel should automatically create Asks.
7942    #[serde(default, skip_serializing_if = "Option::is_none")]
7943    pub auto_create_on_emoji: Option<bool>,
7944    /// Whether or not @-mentioning the bot should automatically create an Ask with the message.
7945    #[serde(default, skip_serializing_if = "Option::is_none")]
7946    pub auto_create_on_bot_mention: Option<bool>,
7947    /// The optional template ID to use for Asks auto-created in this channel. If not set, auto-created Asks won't use any template.
7948    #[serde(default, skip_serializing_if = "Option::is_none")]
7949    pub auto_create_template_id: Option<String>,
7950    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is canceled.
7951    #[serde(default, skip_serializing_if = "Option::is_none")]
7952    pub post_cancellation_updates: Option<bool>,
7953    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is completed.
7954    #[serde(default, skip_serializing_if = "Option::is_none")]
7955    pub post_completion_updates: Option<bool>,
7956    /// Whether or not synced Slack threads should be updated with a message when their Ask is accepted from triage.
7957    #[serde(default, skip_serializing_if = "Option::is_none")]
7958    pub post_accepted_from_triage_updates: Option<bool>,
7959    /// Whether or not to use AI to generate titles for Asks created in this channel.
7960    #[serde(default, skip_serializing_if = "Option::is_none")]
7961    pub ai_titles: Option<bool>,
7962}
7963#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7964#[serde(rename_all = "camelCase")]
7965pub struct SlackPostSettingsInput {
7966    #[serde(default, skip_serializing_if = "Option::is_none")]
7967    pub channel: Option<String>,
7968    #[serde(default, skip_serializing_if = "Option::is_none")]
7969    pub channel_id: Option<String>,
7970    #[serde(default, skip_serializing_if = "Option::is_none")]
7971    pub configuration_url: Option<String>,
7972    /// Slack workspace id
7973    #[serde(default, skip_serializing_if = "Option::is_none")]
7974    pub team_id: Option<String>,
7975    #[serde(default, skip_serializing_if = "Option::is_none")]
7976    pub channel_type: Option<SlackChannelType>,
7977}
7978#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7979#[serde(rename_all = "camelCase")]
7980pub struct SlackSettingsInput {
7981    /// Slack workspace name
7982    #[serde(default, skip_serializing_if = "Option::is_none")]
7983    pub team_name: Option<String>,
7984    /// Slack workspace id
7985    #[serde(default, skip_serializing_if = "Option::is_none")]
7986    pub team_id: Option<String>,
7987    /// Enterprise name of the connected Slack enterprise
7988    #[serde(default, skip_serializing_if = "Option::is_none")]
7989    pub enterprise_name: Option<String>,
7990    /// Enterprise id of the connected Slack enterprise
7991    #[serde(default, skip_serializing_if = "Option::is_none")]
7992    pub enterprise_id: Option<String>,
7993    /// Whether to show unfurl previews in Slack
7994    #[serde(default, skip_serializing_if = "Option::is_none")]
7995    pub should_unfurl: Option<bool>,
7996    /// Whether to show unfurls in the default style instead of Work Objects in Slack
7997    #[serde(default, skip_serializing_if = "Option::is_none")]
7998    pub should_use_default_unfurl: Option<bool>,
7999    /// Whether to allow external users to perform actions on unfurls
8000    #[serde(default, skip_serializing_if = "Option::is_none")]
8001    pub external_user_actions: Option<bool>,
8002    /// Whether Linear should automatically respond with issue unfurls when an issue identifier is mentioned in a Slack message.
8003    #[serde(default, skip_serializing_if = "Option::is_none")]
8004    pub link_on_issue_id_mention: Option<bool>,
8005    /// Whether Linear Agent should be enabled for this Slack integration.
8006    #[serde(default, skip_serializing_if = "Option::is_none")]
8007    pub enable_agent: Option<bool>,
8008    /// Whether Linear Agent should be given Org-wide access within Slack workflows.
8009    #[serde(default, skip_serializing_if = "Option::is_none")]
8010    pub enable_linear_agent_workflow_access: Option<bool>,
8011}
8012/// Comparator for issue source type.
8013#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8014#[serde(rename_all = "camelCase")]
8015pub struct SourceMetadataComparator {
8016    /// Equals constraint.
8017    #[serde(default, skip_serializing_if = "Option::is_none")]
8018    pub eq: Option<String>,
8019    /// Not-equals constraint.
8020    #[serde(default, skip_serializing_if = "Option::is_none")]
8021    pub neq: Option<String>,
8022    /// In-array constraint.
8023    #[serde(default, skip_serializing_if = "Option::is_none")]
8024    pub r#in: Option<Vec<String>>,
8025    /// Not-in-array constraint.
8026    #[serde(default, skip_serializing_if = "Option::is_none")]
8027    pub nin: Option<Vec<String>>,
8028    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
8029    #[serde(default, skip_serializing_if = "Option::is_none")]
8030    pub null: Option<bool>,
8031    /// Comparator for the sub type.
8032    #[serde(default, skip_serializing_if = "Option::is_none")]
8033    pub sub_type: Option<Box<SubTypeComparator>>,
8034    /// `INTERNAL` Comparator for the salesforce metadata.
8035    #[serde(default, skip_serializing_if = "Option::is_none")]
8036    pub salesforce_metadata: Option<Box<SalesforceMetadataIntegrationComparator>>,
8037}
8038/// Comparator for `sourceType` field.
8039#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8040#[serde(rename_all = "camelCase")]
8041pub struct SourceTypeComparator {
8042    /// Equals constraint.
8043    #[serde(default, skip_serializing_if = "Option::is_none")]
8044    pub eq: Option<String>,
8045    /// Not-equals constraint.
8046    #[serde(default, skip_serializing_if = "Option::is_none")]
8047    pub neq: Option<String>,
8048    /// In-array constraint.
8049    #[serde(default, skip_serializing_if = "Option::is_none")]
8050    pub r#in: Option<Vec<String>>,
8051    /// Not-in-array constraint.
8052    #[serde(default, skip_serializing_if = "Option::is_none")]
8053    pub nin: Option<Vec<String>>,
8054    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8055    #[serde(default, skip_serializing_if = "Option::is_none")]
8056    pub eq_ignore_case: Option<String>,
8057    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8058    #[serde(default, skip_serializing_if = "Option::is_none")]
8059    pub neq_ignore_case: Option<String>,
8060    /// Starts with constraint. Matches any values that start with the given string.
8061    #[serde(default, skip_serializing_if = "Option::is_none")]
8062    pub starts_with: Option<String>,
8063    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8064    #[serde(default, skip_serializing_if = "Option::is_none")]
8065    pub starts_with_ignore_case: Option<String>,
8066    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8067    #[serde(default, skip_serializing_if = "Option::is_none")]
8068    pub not_starts_with: Option<String>,
8069    /// Ends with constraint. Matches any values that end with the given string.
8070    #[serde(default, skip_serializing_if = "Option::is_none")]
8071    pub ends_with: Option<String>,
8072    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8073    #[serde(default, skip_serializing_if = "Option::is_none")]
8074    pub not_ends_with: Option<String>,
8075    /// Contains constraint. Matches any values that contain the given string.
8076    #[serde(default, skip_serializing_if = "Option::is_none")]
8077    pub contains: Option<String>,
8078    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8079    #[serde(default, skip_serializing_if = "Option::is_none")]
8080    pub contains_ignore_case: Option<String>,
8081    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8082    #[serde(default, skip_serializing_if = "Option::is_none")]
8083    pub not_contains: Option<String>,
8084    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8085    #[serde(default, skip_serializing_if = "Option::is_none")]
8086    pub not_contains_ignore_case: Option<String>,
8087    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8088    #[serde(default, skip_serializing_if = "Option::is_none")]
8089    pub contains_ignore_case_and_accent: Option<String>,
8090}
8091/// Project start date sorting options.
8092#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8093#[serde(rename_all = "camelCase")]
8094pub struct StartDateSort {
8095    /// Whether nulls should be sorted first or last
8096    #[serde(default, skip_serializing_if = "Option::is_none")]
8097    pub nulls: Option<PaginationNulls>,
8098    /// The order for the individual sort
8099    #[serde(default, skip_serializing_if = "Option::is_none")]
8100    pub order: Option<PaginationSortOrder>,
8101}
8102/// Comparator for strings.
8103#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8104#[serde(rename_all = "camelCase")]
8105pub struct StringArrayComparator {
8106    /// Length of the array. Matches any values that have the given length.
8107    #[serde(default, skip_serializing_if = "Option::is_none")]
8108    pub length: Option<Box<NumberComparator>>,
8109    /// Compound filters, all of which need to be matched.
8110    #[serde(default, skip_serializing_if = "Option::is_none")]
8111    pub every: Option<Box<StringItemComparator>>,
8112    /// Compound filters, one of which needs to be matched.
8113    #[serde(default, skip_serializing_if = "Option::is_none")]
8114    pub some: Option<Box<StringItemComparator>>,
8115}
8116/// Comparator for strings.
8117#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8118#[serde(rename_all = "camelCase")]
8119pub struct StringComparator {
8120    /// Equals constraint.
8121    #[serde(default, skip_serializing_if = "Option::is_none")]
8122    pub eq: Option<String>,
8123    /// Not-equals constraint.
8124    #[serde(default, skip_serializing_if = "Option::is_none")]
8125    pub neq: Option<String>,
8126    /// In-array constraint.
8127    #[serde(default, skip_serializing_if = "Option::is_none")]
8128    pub r#in: Option<Vec<String>>,
8129    /// Not-in-array constraint.
8130    #[serde(default, skip_serializing_if = "Option::is_none")]
8131    pub nin: Option<Vec<String>>,
8132    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8133    #[serde(default, skip_serializing_if = "Option::is_none")]
8134    pub eq_ignore_case: Option<String>,
8135    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8136    #[serde(default, skip_serializing_if = "Option::is_none")]
8137    pub neq_ignore_case: Option<String>,
8138    /// Starts with constraint. Matches any values that start with the given string.
8139    #[serde(default, skip_serializing_if = "Option::is_none")]
8140    pub starts_with: Option<String>,
8141    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8142    #[serde(default, skip_serializing_if = "Option::is_none")]
8143    pub starts_with_ignore_case: Option<String>,
8144    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8145    #[serde(default, skip_serializing_if = "Option::is_none")]
8146    pub not_starts_with: Option<String>,
8147    /// Ends with constraint. Matches any values that end with the given string.
8148    #[serde(default, skip_serializing_if = "Option::is_none")]
8149    pub ends_with: Option<String>,
8150    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8151    #[serde(default, skip_serializing_if = "Option::is_none")]
8152    pub not_ends_with: Option<String>,
8153    /// Contains constraint. Matches any values that contain the given string.
8154    #[serde(default, skip_serializing_if = "Option::is_none")]
8155    pub contains: Option<String>,
8156    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8157    #[serde(default, skip_serializing_if = "Option::is_none")]
8158    pub contains_ignore_case: Option<String>,
8159    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8160    #[serde(default, skip_serializing_if = "Option::is_none")]
8161    pub not_contains: Option<String>,
8162    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8163    #[serde(default, skip_serializing_if = "Option::is_none")]
8164    pub not_contains_ignore_case: Option<String>,
8165    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8166    #[serde(default, skip_serializing_if = "Option::is_none")]
8167    pub contains_ignore_case_and_accent: Option<String>,
8168}
8169/// Comparator for strings in arrays.
8170#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8171#[serde(rename_all = "camelCase")]
8172pub struct StringItemComparator {
8173    /// Equals constraint.
8174    #[serde(default, skip_serializing_if = "Option::is_none")]
8175    pub eq: Option<String>,
8176    /// Not-equals constraint.
8177    #[serde(default, skip_serializing_if = "Option::is_none")]
8178    pub neq: Option<String>,
8179    /// In-array constraint.
8180    #[serde(default, skip_serializing_if = "Option::is_none")]
8181    pub r#in: Option<Vec<String>>,
8182    /// Not-in-array constraint.
8183    #[serde(default, skip_serializing_if = "Option::is_none")]
8184    pub nin: Option<Vec<String>>,
8185    /// Equals case insensitive. Matches any values that matches the given string case insensitive.
8186    #[serde(default, skip_serializing_if = "Option::is_none")]
8187    pub eq_ignore_case: Option<String>,
8188    /// Not-equals case insensitive. Matches any values that don't match the given string case insensitive.
8189    #[serde(default, skip_serializing_if = "Option::is_none")]
8190    pub neq_ignore_case: Option<String>,
8191    /// Starts with constraint. Matches any values that start with the given string.
8192    #[serde(default, skip_serializing_if = "Option::is_none")]
8193    pub starts_with: Option<String>,
8194    /// Starts with case insensitive constraint. Matches any values that start with the given string.
8195    #[serde(default, skip_serializing_if = "Option::is_none")]
8196    pub starts_with_ignore_case: Option<String>,
8197    /// Doesn't start with constraint. Matches any values that don't start with the given string.
8198    #[serde(default, skip_serializing_if = "Option::is_none")]
8199    pub not_starts_with: Option<String>,
8200    /// Ends with constraint. Matches any values that end with the given string.
8201    #[serde(default, skip_serializing_if = "Option::is_none")]
8202    pub ends_with: Option<String>,
8203    /// Doesn't end with constraint. Matches any values that don't end with the given string.
8204    #[serde(default, skip_serializing_if = "Option::is_none")]
8205    pub not_ends_with: Option<String>,
8206    /// Contains constraint. Matches any values that contain the given string.
8207    #[serde(default, skip_serializing_if = "Option::is_none")]
8208    pub contains: Option<String>,
8209    /// Contains case insensitive constraint. Matches any values that contain the given string case insensitive.
8210    #[serde(default, skip_serializing_if = "Option::is_none")]
8211    pub contains_ignore_case: Option<String>,
8212    /// Doesn't contain constraint. Matches any values that don't contain the given string.
8213    #[serde(default, skip_serializing_if = "Option::is_none")]
8214    pub not_contains: Option<String>,
8215    /// Doesn't contain case insensitive constraint. Matches any values that don't contain the given string case insensitive.
8216    #[serde(default, skip_serializing_if = "Option::is_none")]
8217    pub not_contains_ignore_case: Option<String>,
8218    /// Contains case and accent insensitive constraint. Matches any values that contain the given string case and accent insensitive.
8219    #[serde(default, skip_serializing_if = "Option::is_none")]
8220    pub contains_ignore_case_and_accent: Option<String>,
8221}
8222/// Comparator for source type.
8223#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8224#[serde(rename_all = "camelCase")]
8225pub struct SubTypeComparator {
8226    /// Equals constraint.
8227    #[serde(default, skip_serializing_if = "Option::is_none")]
8228    pub eq: Option<String>,
8229    /// Not-equals constraint.
8230    #[serde(default, skip_serializing_if = "Option::is_none")]
8231    pub neq: Option<String>,
8232    /// In-array constraint.
8233    #[serde(default, skip_serializing_if = "Option::is_none")]
8234    pub r#in: Option<Vec<String>>,
8235    /// Not-in-array constraint.
8236    #[serde(default, skip_serializing_if = "Option::is_none")]
8237    pub nin: Option<Vec<String>>,
8238    /// Null constraint. Matches any non-null values if the given value is false, otherwise it matches null values.
8239    #[serde(default, skip_serializing_if = "Option::is_none")]
8240    pub null: Option<bool>,
8241}
8242/// Project target date sorting options.
8243#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8244#[serde(rename_all = "camelCase")]
8245pub struct TargetDateSort {
8246    /// Whether nulls should be sorted first or last
8247    #[serde(default, skip_serializing_if = "Option::is_none")]
8248    pub nulls: Option<PaginationNulls>,
8249    /// The order for the individual sort
8250    #[serde(default, skip_serializing_if = "Option::is_none")]
8251    pub order: Option<PaginationSortOrder>,
8252}
8253/// Team collection filtering options.
8254#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8255#[serde(rename_all = "camelCase")]
8256pub struct TeamCollectionFilter {
8257    /// Comparator for the identifier.
8258    #[serde(default, skip_serializing_if = "Option::is_none")]
8259    pub id: Option<Box<IDComparator>>,
8260    /// Comparator for the created at date.
8261    #[serde(default, skip_serializing_if = "Option::is_none")]
8262    pub created_at: Option<Box<DateComparator>>,
8263    /// Comparator for the updated at date.
8264    #[serde(default, skip_serializing_if = "Option::is_none")]
8265    pub updated_at: Option<Box<DateComparator>>,
8266    /// Compound filters, all of which need to be matched by the team.
8267    #[serde(default, skip_serializing_if = "Option::is_none")]
8268    pub and: Option<Vec<Box<TeamCollectionFilter>>>,
8269    /// Compound filters, one of which need to be matched by the team.
8270    #[serde(default, skip_serializing_if = "Option::is_none")]
8271    pub or: Option<Vec<Box<TeamCollectionFilter>>>,
8272    /// Filters that needs to be matched by some teams.
8273    #[serde(default, skip_serializing_if = "Option::is_none")]
8274    pub some: Option<Box<TeamFilter>>,
8275    /// Filters that needs to be matched by all teams.
8276    #[serde(default, skip_serializing_if = "Option::is_none")]
8277    pub every: Option<Box<TeamFilter>>,
8278    /// Comparator for the collection length.
8279    #[serde(default, skip_serializing_if = "Option::is_none")]
8280    pub length: Option<Box<NumberComparator>>,
8281    /// Filters that the teams parent must satisfy.
8282    #[serde(default, skip_serializing_if = "Option::is_none")]
8283    pub parent: Option<Box<NullableTeamFilter>>,
8284}
8285#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8286#[serde(rename_all = "camelCase")]
8287pub struct TeamCreateInput {
8288    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8289    #[serde(default, skip_serializing_if = "Option::is_none")]
8290    pub id: Option<String>,
8291    /// The name of the team.
8292    #[serde(default, skip_serializing_if = "Option::is_none")]
8293    pub name: Option<String>,
8294    /// The description of the team.
8295    #[serde(default, skip_serializing_if = "Option::is_none")]
8296    pub description: Option<String>,
8297    /// The key of the team. If not given, the key will be generated based on the name of the team.
8298    #[serde(default, skip_serializing_if = "Option::is_none")]
8299    pub key: Option<String>,
8300    /// The icon of the team.
8301    #[serde(default, skip_serializing_if = "Option::is_none")]
8302    pub icon: Option<String>,
8303    /// The color of the team.
8304    #[serde(default, skip_serializing_if = "Option::is_none")]
8305    pub color: Option<String>,
8306    /// Whether the team uses cycles.
8307    #[serde(default, skip_serializing_if = "Option::is_none")]
8308    pub cycles_enabled: Option<bool>,
8309    /// The day of the week that a new cycle starts.
8310    #[serde(default, skip_serializing_if = "Option::is_none")]
8311    pub cycle_start_day: Option<f64>,
8312    /// The duration of each cycle in weeks.
8313    #[serde(default, skip_serializing_if = "Option::is_none")]
8314    pub cycle_duration: Option<i64>,
8315    /// The cooldown time after each cycle in weeks.
8316    #[serde(default, skip_serializing_if = "Option::is_none")]
8317    pub cycle_cooldown_time: Option<i64>,
8318    /// Auto assign started issues to current active cycle setting.
8319    #[serde(default, skip_serializing_if = "Option::is_none")]
8320    pub cycle_issue_auto_assign_started: Option<bool>,
8321    /// Auto assign completed issues to current active cycle setting.
8322    #[serde(default, skip_serializing_if = "Option::is_none")]
8323    pub cycle_issue_auto_assign_completed: Option<bool>,
8324    /// Only allow issues issues with cycles in Active Issues.
8325    #[serde(default, skip_serializing_if = "Option::is_none")]
8326    pub cycle_lock_to_active: Option<bool>,
8327    /// How many upcoming cycles to create.
8328    #[serde(default, skip_serializing_if = "Option::is_none")]
8329    pub upcoming_cycle_count: Option<f64>,
8330    /// Whether triage mode is enabled for the team.
8331    #[serde(default, skip_serializing_if = "Option::is_none")]
8332    pub triage_enabled: Option<bool>,
8333    /// Whether an issue needs to have a priority set before leaving triage.
8334    #[serde(default, skip_serializing_if = "Option::is_none")]
8335    pub require_priority_to_leave_triage: Option<bool>,
8336    /// The timezone of the team.
8337    #[serde(default, skip_serializing_if = "Option::is_none")]
8338    pub timezone: Option<String>,
8339    /// Whether the team should inherit estimation settings from its parent. Only applies to sub-teams.
8340    #[serde(default, skip_serializing_if = "Option::is_none")]
8341    pub inherit_issue_estimation: Option<bool>,
8342    /// `Internal` Whether the team should inherit workflow statuses from its parent.
8343    #[serde(default, skip_serializing_if = "Option::is_none")]
8344    pub inherit_workflow_statuses: Option<bool>,
8345    /// The issue estimation type to use. Must be one of "notUsed", "exponential", "fibonacci", "linear", "tShirt".
8346    #[serde(default, skip_serializing_if = "Option::is_none")]
8347    pub issue_estimation_type: Option<String>,
8348    /// Whether to allow zeros in issues estimates.
8349    #[serde(default, skip_serializing_if = "Option::is_none")]
8350    pub issue_estimation_allow_zero: Option<bool>,
8351    /// Whether to move issues to bottom of the column when changing state.
8352    #[serde(default, skip_serializing_if = "Option::is_none")]
8353    pub set_issue_sort_order_on_state_change: Option<String>,
8354    /// Whether to add additional points to the estimate scale.
8355    #[serde(default, skip_serializing_if = "Option::is_none")]
8356    pub issue_estimation_extended: Option<bool>,
8357    /// What to use as an default estimate for unestimated issues.
8358    #[serde(default, skip_serializing_if = "Option::is_none")]
8359    pub default_issue_estimate: Option<f64>,
8360    /// Whether to group recent issue history entries.
8361    #[serde(default, skip_serializing_if = "Option::is_none")]
8362    pub group_issue_history: Option<bool>,
8363    /// The identifier of the default template for members of this team.
8364    #[serde(default, skip_serializing_if = "Option::is_none")]
8365    pub default_template_for_members_id: Option<String>,
8366    /// The identifier of the default template for non-members of this team.
8367    #[serde(default, skip_serializing_if = "Option::is_none")]
8368    pub default_template_for_non_members_id: Option<String>,
8369    /// The identifier of the default project template of this team.
8370    #[serde(default, skip_serializing_if = "Option::is_none")]
8371    pub default_project_template_id: Option<String>,
8372    /// Internal. Whether the team is private or not.
8373    #[serde(default, skip_serializing_if = "Option::is_none")]
8374    pub private: Option<bool>,
8375    /// Period after which issues are automatically closed, in months.
8376    #[serde(default, skip_serializing_if = "Option::is_none")]
8377    pub auto_close_period: Option<f64>,
8378    /// The canceled workflow state which auto closed issues will be set to.
8379    #[serde(default, skip_serializing_if = "Option::is_none")]
8380    pub auto_close_state_id: Option<String>,
8381    /// Period after which closed and completed issues are automatically archived, in months. 0 means disabled.
8382    #[serde(default, skip_serializing_if = "Option::is_none")]
8383    pub auto_archive_period: Option<f64>,
8384    /// The workflow state into which issues are moved when they are marked as a duplicate of another issue.
8385    #[serde(default, skip_serializing_if = "Option::is_none")]
8386    pub marked_as_duplicate_workflow_state_id: Option<String>,
8387    /// The parent team ID.
8388    #[serde(default, skip_serializing_if = "Option::is_none")]
8389    pub parent_id: Option<String>,
8390    /// `Internal` Whether the team should inherit its product intelligence scope from its parent. Only applies to sub-teams.
8391    #[serde(default, skip_serializing_if = "Option::is_none")]
8392    pub inherit_product_intelligence_scope: Option<bool>,
8393    /// `Internal` The scope of product intelligence suggestion data for the team.
8394    #[serde(default, skip_serializing_if = "Option::is_none")]
8395    pub product_intelligence_scope: Option<ProductIntelligenceScope>,
8396}
8397/// Team filtering options.
8398#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8399#[serde(rename_all = "camelCase")]
8400pub struct TeamFilter {
8401    /// Comparator for the identifier.
8402    #[serde(default, skip_serializing_if = "Option::is_none")]
8403    pub id: Option<Box<IDComparator>>,
8404    /// Comparator for the created at date.
8405    #[serde(default, skip_serializing_if = "Option::is_none")]
8406    pub created_at: Option<Box<DateComparator>>,
8407    /// Comparator for the updated at date.
8408    #[serde(default, skip_serializing_if = "Option::is_none")]
8409    pub updated_at: Option<Box<DateComparator>>,
8410    /// Comparator for the team name.
8411    #[serde(default, skip_serializing_if = "Option::is_none")]
8412    pub name: Option<Box<StringComparator>>,
8413    /// Comparator for the team key.
8414    #[serde(default, skip_serializing_if = "Option::is_none")]
8415    pub key: Option<Box<StringComparator>>,
8416    /// Comparator for the team description.
8417    #[serde(default, skip_serializing_if = "Option::is_none")]
8418    pub description: Option<Box<NullableStringComparator>>,
8419    /// Comparator for the team privacy.
8420    #[serde(default, skip_serializing_if = "Option::is_none")]
8421    pub private: Option<Box<BooleanComparator>>,
8422    /// Filters that the teams issues must satisfy.
8423    #[serde(default, skip_serializing_if = "Option::is_none")]
8424    pub issues: Option<Box<IssueCollectionFilter>>,
8425    /// Filters that the teams parent must satisfy.
8426    #[serde(default, skip_serializing_if = "Option::is_none")]
8427    pub parent: Option<Box<NullableTeamFilter>>,
8428    /// Compound filters, all of which need to be matched by the team.
8429    #[serde(default, skip_serializing_if = "Option::is_none")]
8430    pub and: Option<Vec<Box<TeamFilter>>>,
8431    /// Compound filters, one of which need to be matched by the team.
8432    #[serde(default, skip_serializing_if = "Option::is_none")]
8433    pub or: Option<Vec<Box<TeamFilter>>>,
8434}
8435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8436#[serde(rename_all = "camelCase")]
8437pub struct TeamMembershipCreateInput {
8438    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8439    #[serde(default, skip_serializing_if = "Option::is_none")]
8440    pub id: Option<String>,
8441    /// The identifier of the user associated with the membership.
8442    #[serde(default, skip_serializing_if = "Option::is_none")]
8443    pub user_id: Option<String>,
8444    /// The identifier of the team associated with the membership.
8445    #[serde(default, skip_serializing_if = "Option::is_none")]
8446    pub team_id: Option<String>,
8447    /// Internal. Whether the user is the owner of the team.
8448    #[serde(default, skip_serializing_if = "Option::is_none")]
8449    pub owner: Option<bool>,
8450    /// The position of the item in the users list.
8451    #[serde(default, skip_serializing_if = "Option::is_none")]
8452    pub sort_order: Option<f64>,
8453}
8454#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8455#[serde(rename_all = "camelCase")]
8456pub struct TeamMembershipUpdateInput {
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 TeamSecuritySettingsInput {
8467    /// The minimum team role required to manage labels in the team.
8468    #[serde(default, skip_serializing_if = "Option::is_none")]
8469    pub label_management: Option<TeamRoleType>,
8470    /// The minimum team role required to manage full workspace members (non-guests) in the team.
8471    #[serde(default, skip_serializing_if = "Option::is_none")]
8472    pub member_management: Option<TeamRoleType>,
8473    /// The minimum team role required to manage team settings.
8474    #[serde(default, skip_serializing_if = "Option::is_none")]
8475    pub team_management: Option<TeamRoleType>,
8476    /// The minimum team role required to manage templates in the team.
8477    #[serde(default, skip_serializing_if = "Option::is_none")]
8478    pub template_management: Option<TeamRoleType>,
8479}
8480/// Issue team sorting options.
8481#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8482#[serde(rename_all = "camelCase")]
8483pub struct TeamSort {
8484    /// Whether nulls should be sorted first or last
8485    #[serde(default, skip_serializing_if = "Option::is_none")]
8486    pub nulls: Option<PaginationNulls>,
8487    /// The order for the individual sort
8488    #[serde(default, skip_serializing_if = "Option::is_none")]
8489    pub order: Option<PaginationSortOrder>,
8490}
8491#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8492#[serde(rename_all = "camelCase")]
8493pub struct TeamUpdateInput {
8494    /// The name of the team.
8495    #[serde(default, skip_serializing_if = "Option::is_none")]
8496    pub name: Option<String>,
8497    /// The description of the team.
8498    #[serde(default, skip_serializing_if = "Option::is_none")]
8499    pub description: Option<String>,
8500    /// The key of the team.
8501    #[serde(default, skip_serializing_if = "Option::is_none")]
8502    pub key: Option<String>,
8503    /// The icon of the team.
8504    #[serde(default, skip_serializing_if = "Option::is_none")]
8505    pub icon: Option<String>,
8506    /// The color of the team.
8507    #[serde(default, skip_serializing_if = "Option::is_none")]
8508    pub color: Option<String>,
8509    /// Whether the team uses cycles.
8510    #[serde(default, skip_serializing_if = "Option::is_none")]
8511    pub cycles_enabled: Option<bool>,
8512    /// The day of the week that a new cycle starts.
8513    #[serde(default, skip_serializing_if = "Option::is_none")]
8514    pub cycle_start_day: Option<f64>,
8515    /// The duration of each cycle in weeks.
8516    #[serde(default, skip_serializing_if = "Option::is_none")]
8517    pub cycle_duration: Option<i64>,
8518    /// The cooldown time after each cycle in weeks.
8519    #[serde(default, skip_serializing_if = "Option::is_none")]
8520    pub cycle_cooldown_time: Option<i64>,
8521    /// Auto assign started issues to current active cycle setting.
8522    #[serde(default, skip_serializing_if = "Option::is_none")]
8523    pub cycle_issue_auto_assign_started: Option<bool>,
8524    /// Auto assign completed issues to current active cycle setting.
8525    #[serde(default, skip_serializing_if = "Option::is_none")]
8526    pub cycle_issue_auto_assign_completed: Option<bool>,
8527    /// Only allow issues with cycles in Active Issues.
8528    #[serde(default, skip_serializing_if = "Option::is_none")]
8529    pub cycle_lock_to_active: Option<bool>,
8530    /// The date to begin cycles on.
8531    #[serde(default, skip_serializing_if = "Option::is_none")]
8532    pub cycle_enabled_start_date: Option<chrono::DateTime<chrono::Utc>>,
8533    /// How many upcoming cycles to create.
8534    #[serde(default, skip_serializing_if = "Option::is_none")]
8535    pub upcoming_cycle_count: Option<f64>,
8536    /// The timezone of the team.
8537    #[serde(default, skip_serializing_if = "Option::is_none")]
8538    pub timezone: Option<String>,
8539    /// Whether the team should inherit estimation settings from its parent. Only applies to sub-teams.
8540    #[serde(default, skip_serializing_if = "Option::is_none")]
8541    pub inherit_issue_estimation: Option<bool>,
8542    /// The issue estimation type to use. Must be one of "notUsed", "exponential", "fibonacci", "linear", "tShirt".
8543    #[serde(default, skip_serializing_if = "Option::is_none")]
8544    pub issue_estimation_type: Option<String>,
8545    /// Whether to allow zeros in issues estimates.
8546    #[serde(default, skip_serializing_if = "Option::is_none")]
8547    pub issue_estimation_allow_zero: Option<bool>,
8548    /// Whether to move issues to bottom of the column when changing state.
8549    #[serde(default, skip_serializing_if = "Option::is_none")]
8550    pub set_issue_sort_order_on_state_change: Option<String>,
8551    /// Whether to add additional points to the estimate scale.
8552    #[serde(default, skip_serializing_if = "Option::is_none")]
8553    pub issue_estimation_extended: Option<bool>,
8554    /// What to use as an default estimate for unestimated issues.
8555    #[serde(default, skip_serializing_if = "Option::is_none")]
8556    pub default_issue_estimate: Option<f64>,
8557    /// Whether to send new issue notifications to Slack.
8558    #[serde(default, skip_serializing_if = "Option::is_none")]
8559    pub slack_new_issue: Option<bool>,
8560    /// Whether to send new issue comment notifications to Slack.
8561    #[serde(default, skip_serializing_if = "Option::is_none")]
8562    pub slack_issue_comments: Option<bool>,
8563    /// Whether to send issue status update notifications to Slack.
8564    #[serde(default, skip_serializing_if = "Option::is_none")]
8565    pub slack_issue_statuses: Option<bool>,
8566    /// Whether to group recent issue history entries.
8567    #[serde(default, skip_serializing_if = "Option::is_none")]
8568    pub group_issue_history: Option<bool>,
8569    /// Whether to enable resolved thread AI summaries.
8570    #[serde(default, skip_serializing_if = "Option::is_none")]
8571    pub ai_thread_summaries_enabled: Option<bool>,
8572    /// Whether to enable AI discussion summaries for issues.
8573    #[serde(default, skip_serializing_if = "Option::is_none")]
8574    pub ai_discussion_summaries_enabled: Option<bool>,
8575    /// The identifier of the default template for members of this team.
8576    #[serde(default, skip_serializing_if = "Option::is_none")]
8577    pub default_template_for_members_id: Option<String>,
8578    /// The identifier of the default template for non-members of this team.
8579    #[serde(default, skip_serializing_if = "Option::is_none")]
8580    pub default_template_for_non_members_id: Option<String>,
8581    /// The identifier of the default project template of this team.
8582    #[serde(default, skip_serializing_if = "Option::is_none")]
8583    pub default_project_template_id: Option<String>,
8584    /// Whether the team is private or not.
8585    #[serde(default, skip_serializing_if = "Option::is_none")]
8586    pub private: Option<bool>,
8587    /// Whether triage mode is enabled for the team.
8588    #[serde(default, skip_serializing_if = "Option::is_none")]
8589    pub triage_enabled: Option<bool>,
8590    /// Whether an issue needs to have a priority set before leaving triage.
8591    #[serde(default, skip_serializing_if = "Option::is_none")]
8592    pub require_priority_to_leave_triage: Option<bool>,
8593    /// Default status for newly created issues.
8594    #[serde(default, skip_serializing_if = "Option::is_none")]
8595    pub default_issue_state_id: Option<String>,
8596    /// Period after which issues are automatically closed, in months.
8597    #[serde(default, skip_serializing_if = "Option::is_none")]
8598    pub auto_close_period: Option<f64>,
8599    /// The canceled workflow state which auto closed issues will be set to.
8600    #[serde(default, skip_serializing_if = "Option::is_none")]
8601    pub auto_close_state_id: Option<String>,
8602    /// Whether to automatically close a parent issue in this team if all its sub-issues are closed.
8603    #[serde(default, skip_serializing_if = "Option::is_none")]
8604    pub auto_close_parent_issues: Option<bool>,
8605    /// Whether to automatically close all sub-issues when a parent issue in this team is closed.
8606    #[serde(default, skip_serializing_if = "Option::is_none")]
8607    pub auto_close_child_issues: Option<bool>,
8608    /// Period after which closed and completed issues are automatically archived, in months.
8609    #[serde(default, skip_serializing_if = "Option::is_none")]
8610    pub auto_archive_period: Option<f64>,
8611    /// The workflow state into which issues are moved when they are marked as a duplicate of another issue.
8612    #[serde(default, skip_serializing_if = "Option::is_none")]
8613    pub marked_as_duplicate_workflow_state_id: Option<String>,
8614    /// Whether new users should join this team by default. Mutation restricted to workspace admins or owners!
8615    #[serde(default, skip_serializing_if = "Option::is_none")]
8616    pub join_by_default: Option<bool>,
8617    /// Whether the team is managed by SCIM integration. Mutation restricted to workspace admins or owners and only unsetting is allowed!
8618    #[serde(default, skip_serializing_if = "Option::is_none")]
8619    pub scim_managed: Option<bool>,
8620    /// The parent team ID.
8621    #[serde(default, skip_serializing_if = "Option::is_none")]
8622    pub parent_id: Option<String>,
8623    /// `Internal` Whether the team should inherit workflow statuses from its parent.
8624    #[serde(default, skip_serializing_if = "Option::is_none")]
8625    pub inherit_workflow_statuses: Option<bool>,
8626    /// `Internal` Whether the team should inherit its product intelligence scope from its parent. Only applies to sub-teams.
8627    #[serde(default, skip_serializing_if = "Option::is_none")]
8628    pub inherit_product_intelligence_scope: Option<bool>,
8629    /// `Internal` The scope of product intelligence suggestion data for the team.
8630    #[serde(default, skip_serializing_if = "Option::is_none")]
8631    pub product_intelligence_scope: Option<ProductIntelligenceScope>,
8632    /// The security settings for the team.
8633    #[serde(default, skip_serializing_if = "Option::is_none")]
8634    pub security_settings: Option<Box<TeamSecuritySettingsInput>>,
8635    /// Whether all members in the workspace can join the team. Only used for public teams.
8636    #[serde(default, skip_serializing_if = "Option::is_none")]
8637    pub all_members_can_join: Option<bool>,
8638    /// When the team was retired.
8639    #[serde(default, skip_serializing_if = "Option::is_none")]
8640    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
8641    /// `Internal` How to handle sub-teams when retiring. Required if the team has active sub-teams.
8642    #[serde(default, skip_serializing_if = "Option::is_none")]
8643    pub handle_sub_teams_on_retirement: Option<TeamRetirementSubTeamHandling>,
8644}
8645#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8646#[serde(rename_all = "camelCase")]
8647pub struct TemplateCreateInput {
8648    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8649    #[serde(default, skip_serializing_if = "Option::is_none")]
8650    pub id: Option<String>,
8651    /// The template type, e.g. 'issue'.
8652    #[serde(default, skip_serializing_if = "Option::is_none")]
8653    pub r#type: Option<String>,
8654    /// The identifier or key of the team associated with the template. If not given, the template will be shared across all teams.
8655    #[serde(default, skip_serializing_if = "Option::is_none")]
8656    pub team_id: Option<String>,
8657    /// The template name.
8658    #[serde(default, skip_serializing_if = "Option::is_none")]
8659    pub name: Option<String>,
8660    /// The template description.
8661    #[serde(default, skip_serializing_if = "Option::is_none")]
8662    pub description: Option<String>,
8663    /// The template data as JSON encoded attributes of the type of entity, such as an issue.
8664    #[serde(default, skip_serializing_if = "Option::is_none")]
8665    pub template_data: Option<serde_json::Value>,
8666    /// The position of the template in the templates list.
8667    #[serde(default, skip_serializing_if = "Option::is_none")]
8668    pub sort_order: Option<f64>,
8669}
8670#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8671#[serde(rename_all = "camelCase")]
8672pub struct TemplateUpdateInput {
8673    /// The template name.
8674    #[serde(default, skip_serializing_if = "Option::is_none")]
8675    pub name: Option<String>,
8676    /// The template description.
8677    #[serde(default, skip_serializing_if = "Option::is_none")]
8678    pub description: Option<String>,
8679    /// The identifier or key of the team associated with the template. If set to null, the template will be shared across all teams.
8680    #[serde(default, skip_serializing_if = "Option::is_none")]
8681    pub team_id: Option<String>,
8682    /// The template data as JSON encoded attributes of the type of entity, such as an issue.
8683    #[serde(default, skip_serializing_if = "Option::is_none")]
8684    pub template_data: Option<serde_json::Value>,
8685    /// The position of the template in the templates list.
8686    #[serde(default, skip_serializing_if = "Option::is_none")]
8687    pub sort_order: Option<f64>,
8688}
8689/// Customer tier sorting options.
8690#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8691#[serde(rename_all = "camelCase")]
8692pub struct TierSort {
8693    /// Whether nulls should be sorted first or last
8694    #[serde(default, skip_serializing_if = "Option::is_none")]
8695    pub nulls: Option<PaginationNulls>,
8696    /// The order for the individual sort
8697    #[serde(default, skip_serializing_if = "Option::is_none")]
8698    pub order: Option<PaginationSortOrder>,
8699}
8700/// Issue time in status sorting options.
8701#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8702#[serde(rename_all = "camelCase")]
8703pub struct TimeInStatusSort {
8704    /// Whether nulls should be sorted first or last
8705    #[serde(default, skip_serializing_if = "Option::is_none")]
8706    pub nulls: Option<PaginationNulls>,
8707    /// The order for the individual sort
8708    #[serde(default, skip_serializing_if = "Option::is_none")]
8709    pub order: Option<PaginationSortOrder>,
8710}
8711#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8712#[serde(rename_all = "camelCase")]
8713pub struct TimeScheduleCreateInput {
8714    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8715    #[serde(default, skip_serializing_if = "Option::is_none")]
8716    pub id: Option<String>,
8717    /// The name of the schedule.
8718    #[serde(default, skip_serializing_if = "Option::is_none")]
8719    pub name: Option<String>,
8720    /// The schedule entries.
8721    #[serde(default, skip_serializing_if = "Option::is_none")]
8722    pub entries: Option<Vec<Box<TimeScheduleEntryInput>>>,
8723    /// The unique identifier of the external schedule.
8724    #[serde(default, skip_serializing_if = "Option::is_none")]
8725    pub external_id: Option<String>,
8726    /// The URL to the external schedule.
8727    #[serde(default, skip_serializing_if = "Option::is_none")]
8728    pub external_url: Option<String>,
8729}
8730#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8731#[serde(rename_all = "camelCase")]
8732pub struct TimeScheduleEntryInput {
8733    /// The start date of the schedule in ISO 8601 date-time format.
8734    #[serde(default, skip_serializing_if = "Option::is_none")]
8735    pub starts_at: Option<chrono::DateTime<chrono::Utc>>,
8736    /// The end date of the schedule in ISO 8601 date-time format.
8737    #[serde(default, skip_serializing_if = "Option::is_none")]
8738    pub ends_at: Option<chrono::DateTime<chrono::Utc>>,
8739    /// 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.
8740    #[serde(default, skip_serializing_if = "Option::is_none")]
8741    pub user_id: Option<String>,
8742    /// 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.
8743    #[serde(default, skip_serializing_if = "Option::is_none")]
8744    pub user_email: Option<String>,
8745}
8746#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8747#[serde(rename_all = "camelCase")]
8748pub struct TimeScheduleUpdateInput {
8749    /// The name of the schedule.
8750    #[serde(default, skip_serializing_if = "Option::is_none")]
8751    pub name: Option<String>,
8752    /// The schedule entries.
8753    #[serde(default, skip_serializing_if = "Option::is_none")]
8754    pub entries: Option<Vec<Box<TimeScheduleEntryInput>>>,
8755    /// The unique identifier of the external schedule.
8756    #[serde(default, skip_serializing_if = "Option::is_none")]
8757    pub external_id: Option<String>,
8758    /// The URL to the external schedule.
8759    #[serde(default, skip_serializing_if = "Option::is_none")]
8760    pub external_url: Option<String>,
8761}
8762/// Issue title sorting options.
8763#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8764#[serde(rename_all = "camelCase")]
8765pub struct TitleSort {
8766    /// Whether nulls should be sorted first or last
8767    #[serde(default, skip_serializing_if = "Option::is_none")]
8768    pub nulls: Option<PaginationNulls>,
8769    /// The order for the individual sort
8770    #[serde(default, skip_serializing_if = "Option::is_none")]
8771    pub order: Option<PaginationSortOrder>,
8772}
8773#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8774#[serde(rename_all = "camelCase")]
8775pub struct TokenUserAccountAuthInput {
8776    /// The email which to login via the magic login code.
8777    #[serde(default, skip_serializing_if = "Option::is_none")]
8778    pub email: Option<String>,
8779    /// The magic login code.
8780    #[serde(default, skip_serializing_if = "Option::is_none")]
8781    pub token: Option<String>,
8782    /// The timezone of the user's browser.
8783    #[serde(default, skip_serializing_if = "Option::is_none")]
8784    pub timezone: Option<String>,
8785    /// An optional invite link for an organization.
8786    #[serde(default, skip_serializing_if = "Option::is_none")]
8787    pub invite_link: Option<String>,
8788}
8789#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8790#[serde(rename_all = "camelCase")]
8791pub struct TriageResponsibilityCreateInput {
8792    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
8793    #[serde(default, skip_serializing_if = "Option::is_none")]
8794    pub id: Option<String>,
8795    /// The identifier of the team associated with the triage responsibility.
8796    #[serde(default, skip_serializing_if = "Option::is_none")]
8797    pub team_id: Option<String>,
8798    /// The action to take when an issue is added to triage.
8799    #[serde(default, skip_serializing_if = "Option::is_none")]
8800    pub action: Option<String>,
8801    /// The manual selection of users responsible for triage.
8802    #[serde(default, skip_serializing_if = "Option::is_none")]
8803    pub manual_selection: Option<Box<TriageResponsibilityManualSelectionInput>>,
8804    /// The identifier of the time schedule used for scheduling triage responsibility
8805    #[serde(default, skip_serializing_if = "Option::is_none")]
8806    pub time_schedule_id: Option<String>,
8807}
8808/// Manual triage responsibility using a set of users.
8809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8810#[serde(rename_all = "camelCase")]
8811pub struct TriageResponsibilityManualSelectionInput {
8812    /// The set of users responsible for triage.
8813    #[serde(default, skip_serializing_if = "Option::is_none")]
8814    pub user_ids: Option<Vec<String>>,
8815    /// `Internal` The index of the current userId used for the assign action when having more than one user.
8816    #[serde(default, skip_serializing_if = "Option::is_none")]
8817    pub assignment_index: Option<i64>,
8818}
8819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8820#[serde(rename_all = "camelCase")]
8821pub struct TriageResponsibilityUpdateInput {
8822    /// The action to take when an issue is added to triage.
8823    #[serde(default, skip_serializing_if = "Option::is_none")]
8824    pub action: Option<String>,
8825    /// The manual selection of users responsible for triage.
8826    #[serde(default, skip_serializing_if = "Option::is_none")]
8827    pub manual_selection: Option<Box<TriageResponsibilityManualSelectionInput>>,
8828    /// The identifier of the time schedule used for scheduling triage responsibility.
8829    #[serde(default, skip_serializing_if = "Option::is_none")]
8830    pub time_schedule_id: Option<String>,
8831}
8832/// Issue update date sorting options.
8833#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8834#[serde(rename_all = "camelCase")]
8835pub struct UpdatedAtSort {
8836    /// Whether nulls should be sorted first or last
8837    #[serde(default, skip_serializing_if = "Option::is_none")]
8838    pub nulls: Option<PaginationNulls>,
8839    /// The order for the individual sort
8840    #[serde(default, skip_serializing_if = "Option::is_none")]
8841    pub order: Option<PaginationSortOrder>,
8842}
8843/// User filtering options.
8844#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8845#[serde(rename_all = "camelCase")]
8846pub struct UserCollectionFilter {
8847    /// Comparator for the identifier.
8848    #[serde(default, skip_serializing_if = "Option::is_none")]
8849    pub id: Option<Box<IDComparator>>,
8850    /// Comparator for the created at date.
8851    #[serde(default, skip_serializing_if = "Option::is_none")]
8852    pub created_at: Option<Box<DateComparator>>,
8853    /// Comparator for the updated at date.
8854    #[serde(default, skip_serializing_if = "Option::is_none")]
8855    pub updated_at: Option<Box<DateComparator>>,
8856    /// Comparator for the user's name.
8857    #[serde(default, skip_serializing_if = "Option::is_none")]
8858    pub name: Option<Box<StringComparator>>,
8859    /// Comparator for the user's display name.
8860    #[serde(default, skip_serializing_if = "Option::is_none")]
8861    pub display_name: Option<Box<StringComparator>>,
8862    /// Comparator for the user's email.
8863    #[serde(default, skip_serializing_if = "Option::is_none")]
8864    pub email: Option<Box<StringComparator>>,
8865    /// Comparator for the user's activity status.
8866    #[serde(default, skip_serializing_if = "Option::is_none")]
8867    pub active: Option<Box<BooleanComparator>>,
8868    /// Filters that the users assigned issues must satisfy.
8869    #[serde(default, skip_serializing_if = "Option::is_none")]
8870    pub assigned_issues: Option<Box<IssueCollectionFilter>>,
8871    /// Comparator for the user's admin status.
8872    #[serde(default, skip_serializing_if = "Option::is_none")]
8873    pub admin: Option<Box<BooleanComparator>>,
8874    /// Comparator for the user's owner status.
8875    #[serde(default, skip_serializing_if = "Option::is_none")]
8876    pub owner: Option<Box<BooleanComparator>>,
8877    /// Comparator for the user's invited status.
8878    #[serde(default, skip_serializing_if = "Option::is_none")]
8879    pub invited: Option<Box<BooleanComparator>>,
8880    /// Comparator for the user's invited status.
8881    #[serde(default, skip_serializing_if = "Option::is_none")]
8882    pub is_invited: Option<Box<BooleanComparator>>,
8883    /// Comparator for the user's app status.
8884    #[serde(default, skip_serializing_if = "Option::is_none")]
8885    pub app: Option<Box<BooleanComparator>>,
8886    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
8887    #[serde(default, skip_serializing_if = "Option::is_none")]
8888    pub is_me: Option<Box<BooleanComparator>>,
8889    /// Compound filters, all of which need to be matched by the user.
8890    #[serde(default, skip_serializing_if = "Option::is_none")]
8891    pub and: Option<Vec<Box<UserCollectionFilter>>>,
8892    /// Compound filters, one of which need to be matched by the user.
8893    #[serde(default, skip_serializing_if = "Option::is_none")]
8894    pub or: Option<Vec<Box<UserCollectionFilter>>>,
8895    /// Filters that needs to be matched by some users.
8896    #[serde(default, skip_serializing_if = "Option::is_none")]
8897    pub some: Option<Box<UserFilter>>,
8898    /// Filters that needs to be matched by all users.
8899    #[serde(default, skip_serializing_if = "Option::is_none")]
8900    pub every: Option<Box<UserFilter>>,
8901    /// Comparator for the collection length.
8902    #[serde(default, skip_serializing_if = "Option::is_none")]
8903    pub length: Option<Box<NumberComparator>>,
8904}
8905/// User display name sorting options.
8906#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8907#[serde(rename_all = "camelCase")]
8908pub struct UserDisplayNameSort {
8909    /// Whether nulls should be sorted first or last
8910    #[serde(default, skip_serializing_if = "Option::is_none")]
8911    pub nulls: Option<PaginationNulls>,
8912    /// The order for the individual sort
8913    #[serde(default, skip_serializing_if = "Option::is_none")]
8914    pub order: Option<PaginationSortOrder>,
8915}
8916/// User filtering options.
8917#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8918#[serde(rename_all = "camelCase")]
8919pub struct UserFilter {
8920    /// Comparator for the identifier.
8921    #[serde(default, skip_serializing_if = "Option::is_none")]
8922    pub id: Option<Box<IDComparator>>,
8923    /// Comparator for the created at date.
8924    #[serde(default, skip_serializing_if = "Option::is_none")]
8925    pub created_at: Option<Box<DateComparator>>,
8926    /// Comparator for the updated at date.
8927    #[serde(default, skip_serializing_if = "Option::is_none")]
8928    pub updated_at: Option<Box<DateComparator>>,
8929    /// Comparator for the user's name.
8930    #[serde(default, skip_serializing_if = "Option::is_none")]
8931    pub name: Option<Box<StringComparator>>,
8932    /// Comparator for the user's display name.
8933    #[serde(default, skip_serializing_if = "Option::is_none")]
8934    pub display_name: Option<Box<StringComparator>>,
8935    /// Comparator for the user's email.
8936    #[serde(default, skip_serializing_if = "Option::is_none")]
8937    pub email: Option<Box<StringComparator>>,
8938    /// Comparator for the user's activity status.
8939    #[serde(default, skip_serializing_if = "Option::is_none")]
8940    pub active: Option<Box<BooleanComparator>>,
8941    /// Filters that the users assigned issues must satisfy.
8942    #[serde(default, skip_serializing_if = "Option::is_none")]
8943    pub assigned_issues: Option<Box<IssueCollectionFilter>>,
8944    /// Comparator for the user's admin status.
8945    #[serde(default, skip_serializing_if = "Option::is_none")]
8946    pub admin: Option<Box<BooleanComparator>>,
8947    /// Comparator for the user's owner status.
8948    #[serde(default, skip_serializing_if = "Option::is_none")]
8949    pub owner: Option<Box<BooleanComparator>>,
8950    /// Comparator for the user's invited status.
8951    #[serde(default, skip_serializing_if = "Option::is_none")]
8952    pub invited: Option<Box<BooleanComparator>>,
8953    /// Comparator for the user's invited status.
8954    #[serde(default, skip_serializing_if = "Option::is_none")]
8955    pub is_invited: Option<Box<BooleanComparator>>,
8956    /// Comparator for the user's app status.
8957    #[serde(default, skip_serializing_if = "Option::is_none")]
8958    pub app: Option<Box<BooleanComparator>>,
8959    /// Filter based on the currently authenticated user. Set to true to filter for the authenticated user, false for any other user.
8960    #[serde(default, skip_serializing_if = "Option::is_none")]
8961    pub is_me: Option<Box<BooleanComparator>>,
8962    /// Compound filters, all of which need to be matched by the user.
8963    #[serde(default, skip_serializing_if = "Option::is_none")]
8964    pub and: Option<Vec<Box<UserFilter>>>,
8965    /// Compound filters, one of which need to be matched by the user.
8966    #[serde(default, skip_serializing_if = "Option::is_none")]
8967    pub or: Option<Vec<Box<UserFilter>>>,
8968}
8969/// User name sorting options.
8970#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8971#[serde(rename_all = "camelCase")]
8972pub struct UserNameSort {
8973    /// Whether nulls should be sorted first or last
8974    #[serde(default, skip_serializing_if = "Option::is_none")]
8975    pub nulls: Option<PaginationNulls>,
8976    /// The order for the individual sort
8977    #[serde(default, skip_serializing_if = "Option::is_none")]
8978    pub order: Option<PaginationSortOrder>,
8979}
8980#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8981#[serde(rename_all = "camelCase")]
8982pub struct UserSettingsUpdateInput {
8983    /// The user's settings.
8984    #[serde(default, skip_serializing_if = "Option::is_none")]
8985    pub settings: Option<serde_json::Value>,
8986    /// Whether this user is subscribed to changelog email or not.
8987    #[serde(default, skip_serializing_if = "Option::is_none")]
8988    pub subscribed_to_changelog: Option<bool>,
8989    /// Whether this user is subscribed to DPA emails or not.
8990    #[serde(
8991        rename = "subscribedToDPA",
8992        default,
8993        skip_serializing_if = "Option::is_none"
8994    )]
8995    pub subscribed_to_dpa: Option<bool>,
8996    /// Whether this user is subscribed to invite accepted emails or not.
8997    #[serde(default, skip_serializing_if = "Option::is_none")]
8998    pub subscribed_to_invite_accepted: Option<bool>,
8999    /// Whether this user is subscribed to privacy and legal update emails or not.
9000    #[serde(default, skip_serializing_if = "Option::is_none")]
9001    pub subscribed_to_privacy_legal_updates: Option<bool>,
9002    /// Whether this user is subscribed to general marketing communications or not.
9003    #[serde(default, skip_serializing_if = "Option::is_none")]
9004    pub subscribed_to_general_marketing_communications: Option<bool>,
9005    /// The user's notification category preferences.
9006    #[serde(default, skip_serializing_if = "Option::is_none")]
9007    pub notification_category_preferences: Option<Box<NotificationCategoryPreferencesInput>>,
9008    /// The user's notification channel preferences.
9009    #[serde(default, skip_serializing_if = "Option::is_none")]
9010    pub notification_channel_preferences: Option<Box<PartialNotificationChannelPreferencesInput>>,
9011    /// The user's notification delivery preferences.
9012    #[serde(default, skip_serializing_if = "Option::is_none")]
9013    pub notification_delivery_preferences: Option<Box<NotificationDeliveryPreferencesInput>>,
9014    /// `Internal` The user's usage warning history.
9015    #[serde(default, skip_serializing_if = "Option::is_none")]
9016    pub usage_warning_history: Option<serde_json::Value>,
9017    /// `Internal` How often to generate a feed summary.
9018    #[serde(default, skip_serializing_if = "Option::is_none")]
9019    pub feed_summary_schedule: Option<FeedSummarySchedule>,
9020    /// `Internal` The user's last seen time for the pulse feed.
9021    #[serde(default, skip_serializing_if = "Option::is_none")]
9022    pub feed_last_seen_time: Option<chrono::DateTime<chrono::Utc>>,
9023}
9024/// User sorting options.
9025#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9026#[serde(rename_all = "camelCase")]
9027pub struct UserSortInput {
9028    /// Sort by user name
9029    #[serde(default, skip_serializing_if = "Option::is_none")]
9030    pub name: Option<Box<UserNameSort>>,
9031    /// Sort by user display name
9032    #[serde(default, skip_serializing_if = "Option::is_none")]
9033    pub display_name: Option<Box<UserDisplayNameSort>>,
9034}
9035#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9036#[serde(rename_all = "camelCase")]
9037pub struct UserUpdateInput {
9038    /// The name of the user.
9039    #[serde(default, skip_serializing_if = "Option::is_none")]
9040    pub name: Option<String>,
9041    /// The display name of the user.
9042    #[serde(default, skip_serializing_if = "Option::is_none")]
9043    pub display_name: Option<String>,
9044    /// The avatar image URL of the user.
9045    #[serde(default, skip_serializing_if = "Option::is_none")]
9046    pub avatar_url: Option<String>,
9047    /// The user description or a short bio.
9048    #[serde(default, skip_serializing_if = "Option::is_none")]
9049    pub description: Option<String>,
9050    /// The emoji part of the user status.
9051    #[serde(default, skip_serializing_if = "Option::is_none")]
9052    pub status_emoji: Option<String>,
9053    /// The label part of the user status.
9054    #[serde(default, skip_serializing_if = "Option::is_none")]
9055    pub status_label: Option<String>,
9056    /// When the user status should be cleared.
9057    #[serde(default, skip_serializing_if = "Option::is_none")]
9058    pub status_until_at: Option<chrono::DateTime<chrono::Utc>>,
9059    /// The local timezone of the user.
9060    #[serde(default, skip_serializing_if = "Option::is_none")]
9061    pub timezone: Option<String>,
9062}
9063#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9064#[serde(rename_all = "camelCase")]
9065pub struct ViewPreferencesCreateInput {
9066    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9067    #[serde(default, skip_serializing_if = "Option::is_none")]
9068    pub id: Option<String>,
9069    /// The type of view preferences (either user or organization level preferences).
9070    #[serde(default, skip_serializing_if = "Option::is_none")]
9071    pub r#type: Option<ViewPreferencesType>,
9072    /// The view type of the view preferences are associated with.
9073    #[serde(default, skip_serializing_if = "Option::is_none")]
9074    pub view_type: Option<ViewType>,
9075    /// View preferences object.
9076    #[serde(default, skip_serializing_if = "Option::is_none")]
9077    pub preferences: Option<serde_json::Value>,
9078    /// The default parameters for the insight on that view.
9079    #[serde(default, skip_serializing_if = "Option::is_none")]
9080    pub insights: Option<serde_json::Value>,
9081    /// The team these view preferences are associated with.
9082    #[serde(default, skip_serializing_if = "Option::is_none")]
9083    pub team_id: Option<String>,
9084    /// The project these view preferences are associated with.
9085    #[serde(default, skip_serializing_if = "Option::is_none")]
9086    pub project_id: Option<String>,
9087    /// `Internal` The initiative these view preferences are associated with.
9088    #[serde(default, skip_serializing_if = "Option::is_none")]
9089    pub initiative_id: Option<String>,
9090    /// The label these view preferences are associated with.
9091    #[serde(default, skip_serializing_if = "Option::is_none")]
9092    pub label_id: Option<String>,
9093    /// The project label these view preferences are associated with.
9094    #[serde(default, skip_serializing_if = "Option::is_none")]
9095    pub project_label_id: Option<String>,
9096    /// The custom view these view preferences are associated with.
9097    #[serde(default, skip_serializing_if = "Option::is_none")]
9098    pub custom_view_id: Option<String>,
9099    /// The user profile these view preferences are associated with.
9100    #[serde(default, skip_serializing_if = "Option::is_none")]
9101    pub user_id: Option<String>,
9102}
9103#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9104#[serde(rename_all = "camelCase")]
9105pub struct ViewPreferencesUpdateInput {
9106    /// View preferences.
9107    #[serde(default, skip_serializing_if = "Option::is_none")]
9108    pub preferences: Option<serde_json::Value>,
9109    /// The default parameters for the insight on that view.
9110    #[serde(default, skip_serializing_if = "Option::is_none")]
9111    pub insights: Option<serde_json::Value>,
9112}
9113#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9114#[serde(rename_all = "camelCase")]
9115pub struct WebhookCreateInput {
9116    /// Label for the webhook.
9117    #[serde(default, skip_serializing_if = "Option::is_none")]
9118    pub label: Option<String>,
9119    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9120    #[serde(default, skip_serializing_if = "Option::is_none")]
9121    pub id: Option<String>,
9122    /// Whether this webhook is enabled.
9123    #[serde(default, skip_serializing_if = "Option::is_none")]
9124    pub enabled: Option<bool>,
9125    /// A secret token used to sign the webhook payload.
9126    #[serde(default, skip_serializing_if = "Option::is_none")]
9127    pub secret: Option<String>,
9128    /// The URL that will be called on data changes.
9129    #[serde(default, skip_serializing_if = "Option::is_none")]
9130    pub url: Option<String>,
9131    /// List of resources the webhook should subscribe to.
9132    #[serde(default, skip_serializing_if = "Option::is_none")]
9133    pub resource_types: Option<Vec<String>>,
9134    /// The identifier or key of the team associated with the Webhook.
9135    #[serde(default, skip_serializing_if = "Option::is_none")]
9136    pub team_id: Option<String>,
9137    /// Whether this webhook is enabled for all public teams.
9138    #[serde(default, skip_serializing_if = "Option::is_none")]
9139    pub all_public_teams: Option<bool>,
9140}
9141#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9142#[serde(rename_all = "camelCase")]
9143pub struct WebhookUpdateInput {
9144    /// Label for the webhook.
9145    #[serde(default, skip_serializing_if = "Option::is_none")]
9146    pub label: Option<String>,
9147    /// A secret token used to sign the webhook payload.
9148    #[serde(default, skip_serializing_if = "Option::is_none")]
9149    pub secret: Option<String>,
9150    /// Whether this webhook is enabled.
9151    #[serde(default, skip_serializing_if = "Option::is_none")]
9152    pub enabled: Option<bool>,
9153    /// The URL that will be called on data changes.
9154    #[serde(default, skip_serializing_if = "Option::is_none")]
9155    pub url: Option<String>,
9156    /// List of resources the webhook should subscribe to.
9157    #[serde(default, skip_serializing_if = "Option::is_none")]
9158    pub resource_types: Option<Vec<String>>,
9159}
9160#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9161#[serde(rename_all = "camelCase")]
9162pub struct WorkflowStateCreateInput {
9163    /// The identifier in UUID v4 format. If none is provided, the backend will generate one.
9164    #[serde(default, skip_serializing_if = "Option::is_none")]
9165    pub id: Option<String>,
9166    /// The workflow type.
9167    #[serde(default, skip_serializing_if = "Option::is_none")]
9168    pub r#type: Option<String>,
9169    /// The name of the state.
9170    #[serde(default, skip_serializing_if = "Option::is_none")]
9171    pub name: Option<String>,
9172    /// The color of the state.
9173    #[serde(default, skip_serializing_if = "Option::is_none")]
9174    pub color: Option<String>,
9175    /// The description of the state.
9176    #[serde(default, skip_serializing_if = "Option::is_none")]
9177    pub description: Option<String>,
9178    /// The position of the state.
9179    #[serde(default, skip_serializing_if = "Option::is_none")]
9180    pub position: Option<f64>,
9181    /// The team associated with the state.
9182    #[serde(default, skip_serializing_if = "Option::is_none")]
9183    pub team_id: Option<String>,
9184}
9185/// Workflow state filtering options.
9186#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9187#[serde(rename_all = "camelCase")]
9188pub struct WorkflowStateFilter {
9189    /// Comparator for the identifier.
9190    #[serde(default, skip_serializing_if = "Option::is_none")]
9191    pub id: Option<Box<IDComparator>>,
9192    /// Comparator for the created at date.
9193    #[serde(default, skip_serializing_if = "Option::is_none")]
9194    pub created_at: Option<Box<DateComparator>>,
9195    /// Comparator for the updated at date.
9196    #[serde(default, skip_serializing_if = "Option::is_none")]
9197    pub updated_at: Option<Box<DateComparator>>,
9198    /// Comparator for the workflow state name.
9199    #[serde(default, skip_serializing_if = "Option::is_none")]
9200    pub name: Option<Box<StringComparator>>,
9201    /// Comparator for the workflow state description.
9202    #[serde(default, skip_serializing_if = "Option::is_none")]
9203    pub description: Option<Box<StringComparator>>,
9204    /// Comparator for the workflow state position.
9205    #[serde(default, skip_serializing_if = "Option::is_none")]
9206    pub position: Option<Box<NumberComparator>>,
9207    /// Comparator for the workflow state type. Possible values are "triage", "backlog", "unstarted", "started", "completed", "canceled".
9208    #[serde(default, skip_serializing_if = "Option::is_none")]
9209    pub r#type: Option<Box<StringComparator>>,
9210    /// Filters that the workflow states team must satisfy.
9211    #[serde(default, skip_serializing_if = "Option::is_none")]
9212    pub team: Option<Box<TeamFilter>>,
9213    /// Filters that the workflow states issues must satisfy.
9214    #[serde(default, skip_serializing_if = "Option::is_none")]
9215    pub issues: Option<Box<IssueCollectionFilter>>,
9216    /// Compound filters, all of which need to be matched by the workflow state.
9217    #[serde(default, skip_serializing_if = "Option::is_none")]
9218    pub and: Option<Vec<Box<WorkflowStateFilter>>>,
9219    /// Compound filters, one of which need to be matched by the workflow state.
9220    #[serde(default, skip_serializing_if = "Option::is_none")]
9221    pub or: Option<Vec<Box<WorkflowStateFilter>>>,
9222}
9223/// Issue workflow state sorting options.
9224#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9225#[serde(rename_all = "camelCase")]
9226pub struct WorkflowStateSort {
9227    /// Whether nulls should be sorted first or last
9228    #[serde(default, skip_serializing_if = "Option::is_none")]
9229    pub nulls: Option<PaginationNulls>,
9230    /// The order for the individual sort
9231    #[serde(default, skip_serializing_if = "Option::is_none")]
9232    pub order: Option<PaginationSortOrder>,
9233    /// Whether to sort closed issues by recency
9234    #[serde(default, skip_serializing_if = "Option::is_none")]
9235    pub closed_issues_ordered_by_recency: Option<bool>,
9236}
9237#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9238#[serde(rename_all = "camelCase")]
9239pub struct WorkflowStateUpdateInput {
9240    /// The name of the state.
9241    #[serde(default, skip_serializing_if = "Option::is_none")]
9242    pub name: Option<String>,
9243    /// The color of the state.
9244    #[serde(default, skip_serializing_if = "Option::is_none")]
9245    pub color: Option<String>,
9246    /// The description of the state.
9247    #[serde(default, skip_serializing_if = "Option::is_none")]
9248    pub description: Option<String>,
9249    /// The position of the state.
9250    #[serde(default, skip_serializing_if = "Option::is_none")]
9251    pub position: Option<f64>,
9252}
9253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9254#[serde(rename_all = "camelCase")]
9255pub struct ZendeskSettingsInput {
9256    /// Whether an internal message should be added when a Linear issue changes status (for status types except completed or canceled).
9257    #[serde(default, skip_serializing_if = "Option::is_none")]
9258    pub send_note_on_status_change: Option<bool>,
9259    /// Whether an internal message should be added when someone comments on an issue.
9260    #[serde(default, skip_serializing_if = "Option::is_none")]
9261    pub send_note_on_comment: Option<bool>,
9262    /// Whether a ticket should be automatically reopened when its linked Linear issue is completed.
9263    #[serde(default, skip_serializing_if = "Option::is_none")]
9264    pub automate_ticket_reopening_on_completion: Option<bool>,
9265    /// Whether a ticket should be automatically reopened when its linked Linear issue is cancelled.
9266    #[serde(default, skip_serializing_if = "Option::is_none")]
9267    pub automate_ticket_reopening_on_cancellation: Option<bool>,
9268    /// Whether a ticket should be automatically reopened when a comment is posted on its linked Linear issue
9269    #[serde(default, skip_serializing_if = "Option::is_none")]
9270    pub automate_ticket_reopening_on_comment: Option<bool>,
9271    /// `ALPHA` Whether customer and customer requests should not be automatically created when conversations are linked to a Linear issue.
9272    #[serde(default, skip_serializing_if = "Option::is_none")]
9273    pub disable_customer_requests_auto_creation: Option<bool>,
9274    /// Whether a ticket should be automatically reopened when its linked Linear project is completed.
9275    #[serde(default, skip_serializing_if = "Option::is_none")]
9276    pub automate_ticket_reopening_on_project_completion: Option<bool>,
9277    /// Whether a ticket should be automatically reopened when its linked Linear project is cancelled.
9278    #[serde(default, skip_serializing_if = "Option::is_none")]
9279    pub automate_ticket_reopening_on_project_cancellation: Option<bool>,
9280    /// Whether Linear Agent should be enabled for this integration.
9281    #[serde(default, skip_serializing_if = "Option::is_none")]
9282    pub enable_ai_intake: Option<bool>,
9283    /// The subdomain of the Zendesk organization being connected.
9284    #[serde(default, skip_serializing_if = "Option::is_none")]
9285    pub subdomain: Option<String>,
9286    /// The URL of the connected Zendesk organization.
9287    #[serde(default, skip_serializing_if = "Option::is_none")]
9288    pub url: Option<String>,
9289    /// The ID of the Linear bot user.
9290    #[serde(default, skip_serializing_if = "Option::is_none")]
9291    pub bot_user_id: Option<String>,
9292    /// `INTERNAL` Temporary flag indicating if the integration has the necessary scopes for Customers
9293    #[serde(default, skip_serializing_if = "Option::is_none")]
9294    pub can_read_customers: Option<bool>,
9295    /// `INTERNAL` Flag indicating if the integration supports OAuth refresh tokens
9296    #[serde(default, skip_serializing_if = "Option::is_none")]
9297    pub supports_o_auth_refresh: Option<bool>,
9298    /// The host mappings from Zendesk brands.
9299    #[serde(default, skip_serializing_if = "Option::is_none")]
9300    pub host_mappings: Option<Vec<String>>,
9301}