Skip to main content

lineark_sdk/generated/
types.rs

1//! GraphQL object types.
2//!
3//! Generated by lineark-codegen — do not edit.
4use super::enums::*;
5use crate::field_selection::GraphQLFields;
6use serde::{Deserialize, Serialize};
7/// A bot actor is an actor that is not a user, but an application or integration.
8#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase", default)]
10pub struct ActorBot {
11    pub id: Option<String>,
12    /// The type of bot.
13    pub r#type: Option<String>,
14    /// The sub type of the bot.
15    pub sub_type: Option<String>,
16    /// The display name of the bot.
17    pub name: Option<String>,
18    /// The display name of the external user on behalf of which the bot acted.
19    pub user_display_name: Option<String>,
20    /// A url pointing to the avatar representing this bot.
21    pub avatar_url: Option<String>,
22}
23impl GraphQLFields for ActorBot {
24    type FullType = Self;
25    fn selection() -> String {
26        "id type subType name userDisplayName avatarUrl".into()
27    }
28}
29/// An activity within an agent context.
30#[derive(Debug, Clone, Default, Serialize, Deserialize)]
31#[serde(rename_all = "camelCase", default)]
32pub struct AgentActivity {
33    /// The unique identifier of the entity.
34    pub id: Option<String>,
35    /// The time at which the entity was created.
36    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
37    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
38    /// been updated after creation.
39    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
40    /// The time at which the entity was archived. Null if the entity has not been archived.
41    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
42    /// The agent session this activity belongs to.
43    pub agent_session: Option<Box<AgentSession>>,
44    /// The comment this activity is linked to.
45    pub source_comment: Option<Box<Comment>>,
46    /// The user who created this agent activity.
47    pub user: Option<Box<User>>,
48    /// Metadata about the external source that created this agent activity.
49    pub source_metadata: Option<serde_json::Value>,
50    /// An optional modifier that provides additional instructions on how the activity should be interpreted.
51    pub signal: Option<AgentActivitySignal>,
52    /// Metadata about this agent activity's signal.
53    pub signal_metadata: Option<serde_json::Value>,
54    /// Whether the activity is ephemeral, and should disappear after the next agent activity.
55    pub ephemeral: Option<bool>,
56    /// `Internal` Metadata about user-provided contextual information for this agent activity.
57    pub contextual_metadata: Option<serde_json::Value>,
58}
59impl GraphQLFields for AgentActivity {
60    type FullType = Self;
61    fn selection() -> String {
62        "id createdAt updatedAt archivedAt sourceMetadata signal signalMetadata ephemeral contextualMetadata"
63            .into()
64    }
65}
66/// Content for an action activity (tool call or action).
67#[derive(Debug, Clone, Default, Serialize, Deserialize)]
68#[serde(rename_all = "camelCase", default)]
69pub struct AgentActivityActionContent {
70    /// The type of activity.
71    pub r#type: Option<AgentActivityType>,
72    /// The action being performed.
73    pub action: Option<String>,
74    /// The parameters for the action, e.g. a file path, a keyword, etc.
75    pub parameter: Option<String>,
76    /// The result of the action in Markdown format.
77    pub result: Option<String>,
78    /// `Internal` The result content as ProseMirror document.
79    pub result_data: Option<serde_json::Value>,
80}
81impl GraphQLFields for AgentActivityActionContent {
82    type FullType = Self;
83    fn selection() -> String {
84        "type action parameter result resultData".into()
85    }
86}
87#[derive(Debug, Clone, Default, Serialize, Deserialize)]
88#[serde(rename_all = "camelCase", default)]
89pub struct AgentActivityConnection {
90    pub edges: Option<Box<Vec<AgentActivityEdge>>>,
91    pub nodes: Option<Box<Vec<AgentActivity>>>,
92    pub page_info: Option<Box<PageInfo>>,
93}
94impl GraphQLFields for AgentActivityConnection {
95    type FullType = Self;
96    fn selection() -> String {
97        "".into()
98    }
99}
100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
101#[serde(rename_all = "camelCase", default)]
102pub struct AgentActivityEdge {
103    pub node: Option<Box<AgentActivity>>,
104    /// Used in `before` and `after` args
105    pub cursor: Option<String>,
106}
107impl GraphQLFields for AgentActivityEdge {
108    type FullType = Self;
109    fn selection() -> String {
110        "cursor".into()
111    }
112}
113/// Content for an elicitation activity.
114#[derive(Debug, Clone, Default, Serialize, Deserialize)]
115#[serde(rename_all = "camelCase", default)]
116pub struct AgentActivityElicitationContent {
117    /// The type of activity.
118    pub r#type: Option<AgentActivityType>,
119    /// The elicitation message in Markdown format.
120    pub body: Option<String>,
121    /// `Internal` The elicitation content as ProseMirror document.
122    pub body_data: Option<serde_json::Value>,
123}
124impl GraphQLFields for AgentActivityElicitationContent {
125    type FullType = Self;
126    fn selection() -> String {
127        "type body bodyData".into()
128    }
129}
130/// Content for an error activity.
131#[derive(Debug, Clone, Default, Serialize, Deserialize)]
132#[serde(rename_all = "camelCase", default)]
133pub struct AgentActivityErrorContent {
134    /// The type of activity.
135    pub r#type: Option<AgentActivityType>,
136    /// The error message in Markdown format.
137    pub body: Option<String>,
138    /// `Internal` The error content as ProseMirror document.
139    pub body_data: Option<serde_json::Value>,
140}
141impl GraphQLFields for AgentActivityErrorContent {
142    type FullType = Self;
143    fn selection() -> String {
144        "type body bodyData".into()
145    }
146}
147#[derive(Debug, Clone, Default, Serialize, Deserialize)]
148#[serde(rename_all = "camelCase", default)]
149pub struct AgentActivityPayload {
150    /// The identifier of the last sync operation.
151    pub last_sync_id: Option<f64>,
152    /// The agent activity that was created or updated.
153    pub agent_activity: Option<Box<AgentActivity>>,
154    /// Whether the operation was successful.
155    pub success: Option<bool>,
156}
157impl GraphQLFields for AgentActivityPayload {
158    type FullType = Self;
159    fn selection() -> String {
160        "lastSyncId success".into()
161    }
162}
163/// Content for a prompt activity.
164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
165#[serde(rename_all = "camelCase", default)]
166pub struct AgentActivityPromptContent {
167    /// The type of activity.
168    pub r#type: Option<AgentActivityType>,
169    /// A message requesting additional information or action from user.
170    pub body: Option<String>,
171    /// `Internal` The prompt content as ProseMirror document.
172    pub body_data: Option<serde_json::Value>,
173}
174impl GraphQLFields for AgentActivityPromptContent {
175    type FullType = Self;
176    fn selection() -> String {
177        "type body bodyData".into()
178    }
179}
180/// Content for a response activity.
181#[derive(Debug, Clone, Default, Serialize, Deserialize)]
182#[serde(rename_all = "camelCase", default)]
183pub struct AgentActivityResponseContent {
184    /// The type of activity.
185    pub r#type: Option<AgentActivityType>,
186    /// The response content in Markdown format.
187    pub body: Option<String>,
188    /// `Internal` The response content as ProseMirror document.
189    pub body_data: Option<serde_json::Value>,
190}
191impl GraphQLFields for AgentActivityResponseContent {
192    type FullType = Self;
193    fn selection() -> String {
194        "type body bodyData".into()
195    }
196}
197/// Content for a thought activity.
198#[derive(Debug, Clone, Default, Serialize, Deserialize)]
199#[serde(rename_all = "camelCase", default)]
200pub struct AgentActivityThoughtContent {
201    /// The type of activity.
202    pub r#type: Option<AgentActivityType>,
203    /// The thought content in Markdown format.
204    pub body: Option<String>,
205    /// `Internal` The thought content as ProseMirror document.
206    pub body_data: Option<serde_json::Value>,
207}
208impl GraphQLFields for AgentActivityThoughtContent {
209    type FullType = Self;
210    fn selection() -> String {
211        "type body bodyData".into()
212    }
213}
214/// A session for agent activities and state management.
215#[derive(Debug, Clone, Default, Serialize, Deserialize)]
216#[serde(rename_all = "camelCase", default)]
217pub struct AgentSession {
218    /// The unique identifier of the entity.
219    pub id: Option<String>,
220    /// The time at which the entity was created.
221    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
222    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
223    /// been updated after creation.
224    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
225    /// The time at which the entity was archived. Null if the entity has not been archived.
226    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
227    /// The human user responsible for the agent session. Null if the session was initiated via automation or by an agent user, with no responsible human user.
228    pub creator: Option<Box<User>>,
229    /// The agent user that is associated with this agent session.
230    pub app_user: Option<Box<User>>,
231    /// The comment this agent session is associated with.
232    pub comment: Option<Box<Comment>>,
233    /// The comment that this agent session was spawned from, if from a different thread.
234    pub source_comment: Option<Box<Comment>>,
235    /// The issue this agent session is associated with.
236    pub issue: Option<Box<Issue>>,
237    /// The current status of the agent session.
238    pub status: Option<AgentSessionStatus>,
239    /// The time the agent session started.
240    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
241    /// The time the agent session ended.
242    pub ended_at: Option<chrono::DateTime<chrono::Utc>>,
243    /// The time the agent session was dismissed.
244    pub dismissed_at: Option<chrono::DateTime<chrono::Utc>>,
245    /// The user who dismissed the agent session.
246    pub dismissed_by: Option<Box<User>>,
247    /// Activities associated with this agent session.
248    pub activities: Option<Box<AgentActivityConnection>>,
249    /// The URL of an external agent-hosted page associated with this session.
250    pub external_link: Option<String>,
251    /// A summary of the activities in this session.
252    pub summary: Option<String>,
253    /// Metadata about the external source that created this agent session.
254    pub source_metadata: Option<serde_json::Value>,
255    /// A dynamically updated list of the agent's execution strategy.
256    pub plan: Option<serde_json::Value>,
257    /// Serialized JSON representing the contexts this session is related to, for direct chat sessions.
258    pub context: Option<serde_json::Value>,
259    /// `DEPRECATED` The type of the agent session.
260    pub r#type: Option<AgentSessionType>,
261    /// Agent session URL.
262    pub url: Option<String>,
263    /// `Internal` Pull requests associated with this agent session.
264    pub pull_requests: Option<Box<AgentSessionToPullRequestConnection>>,
265    /// External links associated with this session.
266    pub external_links: Option<Box<Vec<AgentSessionExternalLink>>>,
267    /// URLs of external resources associated with this session.
268    pub external_urls: Option<serde_json::Value>,
269}
270impl GraphQLFields for AgentSession {
271    type FullType = Self;
272    fn selection() -> String {
273        "id createdAt updatedAt archivedAt status startedAt endedAt dismissedAt externalLink summary sourceMetadata plan context type url externalUrls"
274            .into()
275    }
276}
277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
278#[serde(rename_all = "camelCase", default)]
279pub struct AgentSessionConnection {
280    pub edges: Option<Box<Vec<AgentSessionEdge>>>,
281    pub nodes: Option<Box<Vec<AgentSession>>>,
282    pub page_info: Option<Box<PageInfo>>,
283}
284impl GraphQLFields for AgentSessionConnection {
285    type FullType = Self;
286    fn selection() -> String {
287        "".into()
288    }
289}
290#[derive(Debug, Clone, Default, Serialize, Deserialize)]
291#[serde(rename_all = "camelCase", default)]
292pub struct AgentSessionEdge {
293    pub node: Option<Box<AgentSession>>,
294    /// Used in `before` and `after` args
295    pub cursor: Option<String>,
296}
297impl GraphQLFields for AgentSessionEdge {
298    type FullType = Self;
299    fn selection() -> String {
300        "cursor".into()
301    }
302}
303/// An external link associated with an agent session.
304#[derive(Debug, Clone, Default, Serialize, Deserialize)]
305#[serde(rename_all = "camelCase", default)]
306pub struct AgentSessionExternalLink {
307    /// The URL of the external resource.
308    pub url: Option<String>,
309    /// Label for the link.
310    pub label: Option<String>,
311}
312impl GraphQLFields for AgentSessionExternalLink {
313    type FullType = Self;
314    fn selection() -> String {
315        "url label".into()
316    }
317}
318#[derive(Debug, Clone, Default, Serialize, Deserialize)]
319#[serde(rename_all = "camelCase", default)]
320pub struct AgentSessionPayload {
321    /// The identifier of the last sync operation.
322    pub last_sync_id: Option<f64>,
323    /// Whether the operation was successful.
324    pub success: Option<bool>,
325    /// The agent session that was created or updated.
326    pub agent_session: Option<Box<AgentSession>>,
327}
328impl GraphQLFields for AgentSessionPayload {
329    type FullType = Self;
330    fn selection() -> String {
331        "lastSyncId success".into()
332    }
333}
334/// Join table between agent sessions and pull requests.
335#[derive(Debug, Clone, Default, Serialize, Deserialize)]
336#[serde(rename_all = "camelCase", default)]
337pub struct AgentSessionToPullRequest {
338    /// The unique identifier of the entity.
339    pub id: Option<String>,
340    /// The time at which the entity was created.
341    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
342    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
343    /// been updated after creation.
344    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
345    /// The time at which the entity was archived. Null if the entity has not been archived.
346    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
347    /// The pull request that the agent session is associated with.
348    pub pull_request: Option<Box<PullRequest>>,
349    /// The agent session that the pull request is associated with.
350    pub agent_session: Option<Box<AgentSession>>,
351}
352impl GraphQLFields for AgentSessionToPullRequest {
353    type FullType = Self;
354    fn selection() -> String {
355        "id createdAt updatedAt archivedAt".into()
356    }
357}
358#[derive(Debug, Clone, Default, Serialize, Deserialize)]
359#[serde(rename_all = "camelCase", default)]
360pub struct AgentSessionToPullRequestConnection {
361    pub edges: Option<Box<Vec<AgentSessionToPullRequestEdge>>>,
362    pub nodes: Option<Box<Vec<AgentSessionToPullRequest>>>,
363    pub page_info: Option<Box<PageInfo>>,
364}
365impl GraphQLFields for AgentSessionToPullRequestConnection {
366    type FullType = Self;
367    fn selection() -> String {
368        "".into()
369    }
370}
371#[derive(Debug, Clone, Default, Serialize, Deserialize)]
372#[serde(rename_all = "camelCase", default)]
373pub struct AgentSessionToPullRequestEdge {
374    pub node: Option<Box<AgentSessionToPullRequest>>,
375    /// Used in `before` and `after` args
376    pub cursor: Option<String>,
377}
378impl GraphQLFields for AgentSessionToPullRequestEdge {
379    type FullType = Self;
380    fn selection() -> String {
381        "cursor".into()
382    }
383}
384/// AI prompt rules for a team.
385#[derive(Debug, Clone, Default, Serialize, Deserialize)]
386#[serde(rename_all = "camelCase", default)]
387pub struct AiPromptRules {
388    /// The unique identifier of the entity.
389    pub id: Option<String>,
390    /// The time at which the entity was created.
391    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
392    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
393    /// been updated after creation.
394    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
395    /// The time at which the entity was archived. Null if the entity has not been archived.
396    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
397    /// The user who last updated the AI prompt rules.
398    pub updated_by: Option<Box<User>>,
399}
400impl GraphQLFields for AiPromptRules {
401    type FullType = Self;
402    fn selection() -> String {
403        "id createdAt updatedAt archivedAt".into()
404    }
405}
406/// Public information of the OAuth application.
407#[derive(Debug, Clone, Default, Serialize, Deserialize)]
408#[serde(rename_all = "camelCase", default)]
409pub struct Application {
410    /// OAuth application's ID.
411    pub id: Option<String>,
412    /// OAuth application's client ID.
413    pub client_id: Option<String>,
414    /// Application name.
415    pub name: Option<String>,
416    /// Information about the application.
417    pub description: Option<String>,
418    /// Name of the developer.
419    pub developer: Option<String>,
420    /// Url of the developer (homepage or docs).
421    pub developer_url: Option<String>,
422    /// Image of the application.
423    pub image_url: Option<String>,
424}
425impl GraphQLFields for Application {
426    type FullType = Self;
427    fn selection() -> String {
428        "id clientId name description developer developerUrl imageUrl".into()
429    }
430}
431/// Contains requested archived model objects.
432#[derive(Debug, Clone, Default, Serialize, Deserialize)]
433#[serde(rename_all = "camelCase", default)]
434pub struct ArchiveResponse {
435    /// A JSON serialized collection of model objects loaded from the archive
436    pub archive: Option<String>,
437    /// The total number of entities in the archive.
438    pub total_count: Option<f64>,
439    /// The version of the remote database. Incremented by 1 for each migration run on the database.
440    pub database_version: Option<f64>,
441    /// Whether the dependencies for the model objects are included in the archive.
442    pub includes_dependencies: Option<Vec<String>>,
443}
444impl GraphQLFields for ArchiveResponse {
445    type FullType = Self;
446    fn selection() -> String {
447        "archive totalCount databaseVersion includesDependencies".into()
448    }
449}
450#[derive(Debug, Clone, Default, Serialize, Deserialize)]
451#[serde(rename_all = "camelCase", default)]
452pub struct AsksChannelConnectPayload {
453    /// The identifier of the last sync operation.
454    pub last_sync_id: Option<f64>,
455    /// The integration that was created or updated.
456    pub integration: Option<Box<Integration>>,
457    /// Whether the operation was successful.
458    pub success: Option<bool>,
459    /// The new Asks Slack channel mapping for the connected channel.
460    pub mapping: Option<Box<SlackChannelNameMapping>>,
461    /// Whether the bot needs to be manually added to the channel.
462    pub add_bot: Option<bool>,
463}
464impl GraphQLFields for AsksChannelConnectPayload {
465    type FullType = Self;
466    fn selection() -> String {
467        "lastSyncId success addBot".into()
468    }
469}
470/// A web page for an Asks web form.
471#[derive(Debug, Clone, Default, Serialize, Deserialize)]
472#[serde(rename_all = "camelCase", default)]
473pub struct AsksWebPage {
474    /// The unique identifier of the entity.
475    pub id: Option<String>,
476    /// The time at which the entity was created.
477    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
478    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
479    /// been updated after creation.
480    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
481    /// The time at which the entity was archived. Null if the entity has not been archived.
482    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
483    /// The organization that the Asks web page belongs to.
484    pub organization: Option<Box<Organization>>,
485    /// The Asks web settings this page belongs to.
486    pub asks_web_settings: Option<Box<AsksWebSettings>>,
487    /// The user who created the Asks web page.
488    pub creator: Option<Box<User>>,
489    /// The title of the page.
490    pub title: Option<String>,
491    /// The description of the page.
492    pub description: Option<String>,
493    /// The page's unique URL slug.
494    pub slug_id: Option<String>,
495    /// The auto-reply message for issue created. If not set, the default reply will be used.
496    pub issue_created_auto_reply: Option<String>,
497    /// Whether the auto-reply for issue created is enabled.
498    pub issue_created_auto_reply_enabled: Option<bool>,
499    /// The auto-reply message for issue completed. If not set, the default reply will be used.
500    pub issue_completed_auto_reply: Option<String>,
501    /// Whether the auto-reply for issue completed is enabled.
502    pub issue_completed_auto_reply_enabled: Option<bool>,
503    /// The auto-reply message for issue canceled. If not set, the default reply will be used.
504    pub issue_canceled_auto_reply: Option<String>,
505    /// Whether the auto-reply for issue canceled is enabled.
506    pub issue_canceled_auto_reply_enabled: Option<bool>,
507}
508impl GraphQLFields for AsksWebPage {
509    type FullType = Self;
510    fn selection() -> String {
511        "id createdAt updatedAt archivedAt title description slugId issueCreatedAutoReply issueCreatedAutoReplyEnabled issueCompletedAutoReply issueCompletedAutoReplyEnabled issueCanceledAutoReply issueCanceledAutoReplyEnabled"
512            .into()
513    }
514}
515#[derive(Debug, Clone, Default, Serialize, Deserialize)]
516#[serde(rename_all = "camelCase", default)]
517pub struct AsksWebPagePayload {
518    /// The identifier of the last sync operation.
519    pub last_sync_id: Option<f64>,
520    /// The Asks web page that was created or updated.
521    pub asks_web_page: Option<Box<AsksWebPage>>,
522    /// Whether the operation was successful.
523    pub success: Option<bool>,
524}
525impl GraphQLFields for AsksWebPagePayload {
526    type FullType = Self;
527    fn selection() -> String {
528        "lastSyncId success".into()
529    }
530}
531/// Settings for an Asks web form.
532#[derive(Debug, Clone, Default, Serialize, Deserialize)]
533#[serde(rename_all = "camelCase", default)]
534pub struct AsksWebSettings {
535    /// The unique identifier of the entity.
536    pub id: Option<String>,
537    /// The time at which the entity was created.
538    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
539    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
540    /// been updated after creation.
541    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
542    /// The time at which the entity was archived. Null if the entity has not been archived.
543    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
544    /// The organization that the Asks web settings are associated with.
545    pub organization: Option<Box<Organization>>,
546    /// The user who created the Asks web settings.
547    pub creator: Option<Box<User>>,
548    /// The custom domain for the Asks web form. If null, the default Linear-hosted domain will be used.
549    pub domain: Option<String>,
550    /// The email intake address associated with these Asks web settings.
551    pub email_intake_address: Option<Box<EmailIntakeAddress>>,
552    /// The identity provider for SAML authentication on this Asks web form.
553    pub identity_provider: Option<Box<IdentityProvider>>,
554}
555impl GraphQLFields for AsksWebSettings {
556    type FullType = Self;
557    fn selection() -> String {
558        "id createdAt updatedAt archivedAt domain".into()
559    }
560}
561#[derive(Debug, Clone, Default, Serialize, Deserialize)]
562#[serde(rename_all = "camelCase", default)]
563pub struct AsksWebSettingsPayload {
564    /// The identifier of the last sync operation.
565    pub last_sync_id: Option<f64>,
566    /// The Asks web settings that were created or updated.
567    pub asks_web_settings: Option<Box<AsksWebSettings>>,
568    /// Whether the operation was successful.
569    pub success: Option<bool>,
570}
571impl GraphQLFields for AsksWebSettingsPayload {
572    type FullType = Self;
573    fn selection() -> String {
574        "lastSyncId success".into()
575    }
576}
577/// Issue attachment (e.g. support ticket, pull request).
578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
579#[serde(rename_all = "camelCase", default)]
580pub struct Attachment {
581    /// The unique identifier of the entity.
582    pub id: Option<String>,
583    /// The time at which the entity was created.
584    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
585    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
586    /// been updated after creation.
587    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
588    /// The time at which the entity was archived. Null if the entity has not been archived.
589    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
590    /// Content for the title line in the Linear attachment widget.
591    pub title: Option<String>,
592    /// Content for the subtitle line in the Linear attachment widget.
593    pub subtitle: Option<String>,
594    /// Location of the attachment which is also used as an identifier.
595    pub url: Option<String>,
596    /// The creator of the attachment.
597    pub creator: Option<Box<User>>,
598    /// The non-Linear user who created the attachment.
599    pub external_user_creator: Option<Box<ExternalUser>>,
600    /// Custom metadata related to the attachment.
601    pub metadata: Option<serde_json::Value>,
602    /// Information about the source which created the attachment.
603    pub source: Option<serde_json::Value>,
604    /// An accessor helper to source.type, defines the source type of the attachment.
605    pub source_type: Option<String>,
606    /// Indicates if attachments for the same source application should be grouped in the Linear UI.
607    pub group_by_source: Option<bool>,
608    /// The issue this attachment was originally created on. Will be undefined if the attachment hasn't been moved.
609    pub original_issue: Option<Box<Issue>>,
610    /// The issue this attachment belongs to.
611    pub issue: Option<Box<Issue>>,
612    /// The body data of the attachment, if any.
613    pub body_data: Option<String>,
614}
615impl GraphQLFields for Attachment {
616    type FullType = Self;
617    fn selection() -> String {
618        "id createdAt updatedAt archivedAt title subtitle url metadata source sourceType groupBySource bodyData"
619            .into()
620    }
621}
622#[derive(Debug, Clone, Default, Serialize, Deserialize)]
623#[serde(rename_all = "camelCase", default)]
624pub struct AttachmentConnection {
625    pub edges: Option<Box<Vec<AttachmentEdge>>>,
626    pub nodes: Option<Box<Vec<Attachment>>>,
627    pub page_info: Option<Box<PageInfo>>,
628}
629impl GraphQLFields for AttachmentConnection {
630    type FullType = Self;
631    fn selection() -> String {
632        "".into()
633    }
634}
635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
636#[serde(rename_all = "camelCase", default)]
637pub struct AttachmentEdge {
638    pub node: Option<Box<Attachment>>,
639    /// Used in `before` and `after` args
640    pub cursor: Option<String>,
641}
642impl GraphQLFields for AttachmentEdge {
643    type FullType = Self;
644    fn selection() -> String {
645        "cursor".into()
646    }
647}
648#[derive(Debug, Clone, Default, Serialize, Deserialize)]
649#[serde(rename_all = "camelCase", default)]
650pub struct AttachmentPayload {
651    /// The identifier of the last sync operation.
652    pub last_sync_id: Option<f64>,
653    /// The issue attachment that was created.
654    pub attachment: Option<Box<Attachment>>,
655    /// Whether the operation was successful.
656    pub success: Option<bool>,
657}
658impl GraphQLFields for AttachmentPayload {
659    type FullType = Self;
660    fn selection() -> String {
661        "lastSyncId success".into()
662    }
663}
664#[derive(Debug, Clone, Default, Serialize, Deserialize)]
665#[serde(rename_all = "camelCase", default)]
666pub struct AttachmentSourcesPayload {
667    /// A unique list of all source types used in this workspace.
668    pub sources: Option<serde_json::Value>,
669}
670impl GraphQLFields for AttachmentSourcesPayload {
671    type FullType = Self;
672    fn selection() -> String {
673        "sources".into()
674    }
675}
676/// Workspace audit log entry object.
677#[derive(Debug, Clone, Default, Serialize, Deserialize)]
678#[serde(rename_all = "camelCase", default)]
679pub struct AuditEntry {
680    /// The unique identifier of the entity.
681    pub id: Option<String>,
682    /// The time at which the entity was created.
683    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
684    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
685    /// been updated after creation.
686    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
687    /// The time at which the entity was archived. Null if the entity has not been archived.
688    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
689    pub r#type: Option<String>,
690    /// The organization the audit log belongs to.
691    pub organization: Option<Box<Organization>>,
692    /// The user that caused the audit entry to be created.
693    pub actor: Option<Box<User>>,
694    /// The ID of the user that caused the audit entry to be created.
695    pub actor_id: Option<String>,
696    /// IP from actor when entry was recorded.
697    pub ip: Option<String>,
698    /// Country code of request resulting to audit entry.
699    pub country_code: Option<String>,
700    /// Additional metadata related to the audit entry.
701    pub metadata: Option<serde_json::Value>,
702    /// Additional information related to the request which performed the action.
703    pub request_information: Option<serde_json::Value>,
704}
705impl GraphQLFields for AuditEntry {
706    type FullType = Self;
707    fn selection() -> String {
708        "id createdAt updatedAt archivedAt type actorId ip countryCode metadata requestInformation"
709            .into()
710    }
711}
712#[derive(Debug, Clone, Default, Serialize, Deserialize)]
713#[serde(rename_all = "camelCase", default)]
714pub struct AuditEntryConnection {
715    pub edges: Option<Box<Vec<AuditEntryEdge>>>,
716    pub nodes: Option<Box<Vec<AuditEntry>>>,
717    pub page_info: Option<Box<PageInfo>>,
718}
719impl GraphQLFields for AuditEntryConnection {
720    type FullType = Self;
721    fn selection() -> String {
722        "".into()
723    }
724}
725#[derive(Debug, Clone, Default, Serialize, Deserialize)]
726#[serde(rename_all = "camelCase", default)]
727pub struct AuditEntryEdge {
728    pub node: Option<Box<AuditEntry>>,
729    /// Used in `before` and `after` args
730    pub cursor: Option<String>,
731}
732impl GraphQLFields for AuditEntryEdge {
733    type FullType = Self;
734    fn selection() -> String {
735        "cursor".into()
736    }
737}
738#[derive(Debug, Clone, Default, Serialize, Deserialize)]
739#[serde(rename_all = "camelCase", default)]
740pub struct AuditEntryType {
741    /// The audit entry type.
742    pub r#type: Option<String>,
743    /// Description of the audit entry type.
744    pub description: Option<String>,
745}
746impl GraphQLFields for AuditEntryType {
747    type FullType = Self;
748    fn selection() -> String {
749        "type description".into()
750    }
751}
752/// An identity provider.
753#[derive(Debug, Clone, Default, Serialize, Deserialize)]
754#[serde(rename_all = "camelCase", default)]
755pub struct AuthIdentityProvider {
756    /// The time at which the entity was created.
757    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
758    /// The unique identifier of the entity.
759    pub id: Option<String>,
760    /// Whether the identity provider is the default identity provider migrated from organization level settings.
761    pub default_migrated: Option<bool>,
762    /// The type of identity provider.
763    pub r#type: Option<IdentityProviderType>,
764    /// Whether SAML authentication is enabled for organization.
765    pub saml_enabled: Option<bool>,
766    /// Sign in endpoint URL for the identity provider.
767    pub sso_endpoint: Option<String>,
768    /// Binding method for authentication call. Can be either `post` (default) or `redirect`.
769    pub sso_binding: Option<String>,
770    /// The algorithm of the Signing Certificate. Can be one of `sha1`, `sha256` (default), or `sha512`.
771    pub sso_sign_algo: Option<String>,
772    /// The issuer's custom entity ID.
773    pub issuer_entity_id: Option<String>,
774    /// The service provider (Linear) custom entity ID. Defaults to <https://auth.linear.app/sso>
775    pub sp_entity_id: Option<String>,
776    /// X.509 Signing Certificate in string form.
777    pub sso_signing_cert: Option<String>,
778    /// The SAML priority used to pick default workspace in SAML SP initiated flow, when same domain is claimed for SAML by multiple workspaces. Lower priority value means higher preference.
779    pub priority: Option<f64>,
780    /// Whether SCIM provisioning is enabled for organization.
781    pub scim_enabled: Option<bool>,
782}
783impl GraphQLFields for AuthIdentityProvider {
784    type FullType = Self;
785    fn selection() -> String {
786        "createdAt id defaultMigrated type samlEnabled ssoEndpoint ssoBinding ssoSignAlgo issuerEntityId spEntityId ssoSigningCert priority scimEnabled"
787            .into()
788    }
789}
790/// An organization. Organizations are root-level objects that contain users and teams.
791#[derive(Debug, Clone, Default, Serialize, Deserialize)]
792#[serde(rename_all = "camelCase", default)]
793pub struct AuthOrganization {
794    /// The time at which the entity was created.
795    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
796    /// The unique identifier of the entity.
797    pub id: Option<String>,
798    /// The organization's name.
799    pub name: Option<String>,
800    /// Whether the organization is enabled. Used as a superuser tool to lock down the org.
801    pub enabled: Option<bool>,
802    /// The organization's unique URL key.
803    pub url_key: Option<String>,
804    /// Previously used URL keys for the organization (last 3 are kept and redirected).
805    pub previous_url_keys: Option<Vec<String>>,
806    /// The organization's logo URL.
807    pub logo_url: Option<String>,
808    /// The time at which deletion of the organization was requested.
809    pub deletion_requested_at: Option<chrono::DateTime<chrono::Utc>>,
810    /// The feature release channel the organization belongs to.
811    pub release_channel: Option<ReleaseChannel>,
812    /// Whether SAML authentication is enabled for organization.
813    pub saml_enabled: Option<bool>,
814    /// `INTERNAL` SAML settings
815    pub saml_settings: Option<serde_json::Value>,
816    /// Allowed authentication providers, empty array means all are allowed
817    pub allowed_auth_services: Option<Vec<String>>,
818    /// Whether SCIM provisioning is enabled for organization.
819    pub scim_enabled: Option<bool>,
820    /// The email domain or URL key for the organization.
821    pub service_id: Option<String>,
822    /// The region the organization is hosted in.
823    pub region: Option<String>,
824    /// Whether to hide other organizations for new users signing up with email domains claimed by this organization.
825    pub hide_non_primary_organizations: Option<bool>,
826    pub user_count: Option<f64>,
827}
828impl GraphQLFields for AuthOrganization {
829    type FullType = Self;
830    fn selection() -> String {
831        "createdAt id name enabled urlKey previousUrlKeys logoUrl deletionRequestedAt releaseChannel samlEnabled samlSettings allowedAuthServices scimEnabled serviceId region hideNonPrimaryOrganizations userCount"
832            .into()
833    }
834}
835#[derive(Debug, Clone, Default, Serialize, Deserialize)]
836#[serde(rename_all = "camelCase", default)]
837pub struct AuthResolverResponse {
838    /// User account ID.
839    pub id: Option<String>,
840    /// Email for the authenticated account.
841    pub email: Option<String>,
842    /// Should the signup flow allow access for the domain.
843    pub allow_domain_access: Option<bool>,
844    /// List of active users that belong to the user account.
845    pub users: Option<Box<Vec<AuthUser>>>,
846    /// List of locked users that are locked by login restrictions
847    pub locked_users: Option<Box<Vec<AuthUser>>>,
848    /// List of organizations allowing this user account to join automatically.
849    pub available_organizations: Option<Box<Vec<AuthOrganization>>>,
850    /// List of organization available to this user account but locked due to the current auth method.
851    pub locked_organizations: Option<Box<Vec<AuthOrganization>>>,
852    /// ID of the organization last accessed by the user.
853    pub last_used_organization_id: Option<String>,
854    /// The authentication service used for the current session (e.g., google, email, saml).
855    pub service: Option<String>,
856    /// Application token.
857    pub token: Option<String>,
858}
859impl GraphQLFields for AuthResolverResponse {
860    type FullType = Self;
861    fn selection() -> String {
862        "id email allowDomainAccess lastUsedOrganizationId service token".into()
863    }
864}
865/// A user that has access to the the resources of an organization.
866#[derive(Debug, Clone, Default, Serialize, Deserialize)]
867#[serde(rename_all = "camelCase", default)]
868pub struct AuthUser {
869    /// The time at which the entity was created.
870    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
871    pub id: Option<String>,
872    /// The user's full name.
873    pub name: Option<String>,
874    /// The user's display (nick) name. Unique within each organization.
875    pub display_name: Option<String>,
876    /// The user's email address.
877    pub email: Option<String>,
878    /// An URL to the user's avatar image.
879    pub avatar_url: Option<String>,
880    /// Whether the user is an organization admin or guest on a database level.
881    pub role: Option<UserRoleType>,
882    /// Whether the user is active.
883    pub active: Option<bool>,
884    /// User account ID the user belongs to.
885    pub user_account_id: Option<String>,
886    /// Organization the user belongs to.
887    pub organization: Option<Box<AuthOrganization>>,
888    /// `INTERNAL` Identity provider the user is managed by.
889    pub identity_provider: Option<Box<AuthIdentityProvider>>,
890}
891impl GraphQLFields for AuthUser {
892    type FullType = Self;
893    fn selection() -> String {
894        "createdAt id name displayName email avatarUrl role active userAccountId".into()
895    }
896}
897/// Authentication session information.
898#[derive(Debug, Clone, Default, Serialize, Deserialize)]
899#[serde(rename_all = "camelCase", default)]
900pub struct AuthenticationSessionResponse {
901    /// The time at which the entity was created.
902    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
903    pub id: Option<String>,
904    /// Type of application used to authenticate.
905    pub r#type: Option<AuthenticationSessionType>,
906    /// IP address.
907    pub ip: Option<String>,
908    /// Location country name.
909    pub location_country: Option<String>,
910    /// Location country code.
911    pub location_country_code: Option<String>,
912    /// Country codes of all seen locations.
913    pub country_codes: Option<Vec<String>>,
914    /// Location region code.
915    pub location_region_code: Option<String>,
916    /// Location city name.
917    pub location_city: Option<String>,
918    /// Session's user-agent.
919    pub user_agent: Option<String>,
920    /// Used web browser.
921    pub browser_type: Option<String>,
922    /// Service used for logging in.
923    pub service: Option<String>,
924    /// When was the session last seen
925    pub last_active_at: Option<chrono::DateTime<chrono::Utc>>,
926    /// Date when the session was last updated.
927    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
928    /// Human readable location
929    pub location: Option<String>,
930    /// Operating system used for the session
931    pub operating_system: Option<String>,
932    /// Client used for the session
933    pub client: Option<String>,
934    /// Name of the session, derived from the client and operating system
935    pub name: Option<String>,
936    /// Identifies the session used to make the request.
937    pub is_current_session: Option<bool>,
938}
939impl GraphQLFields for AuthenticationSessionResponse {
940    type FullType = Self;
941    fn selection() -> String {
942        "createdAt id type ip locationCountry locationCountryCode countryCodes locationRegionCode locationCity userAgent browserType service lastActiveAt updatedAt location operatingSystem client name isCurrentSession"
943            .into()
944    }
945}
946/// A comment associated with an issue.
947#[derive(Debug, Clone, Default, Serialize, Deserialize)]
948#[serde(rename_all = "camelCase", default)]
949pub struct Comment {
950    /// The unique identifier of the entity.
951    pub id: Option<String>,
952    /// The time at which the entity was created.
953    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
954    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
955    /// been updated after creation.
956    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
957    /// The time at which the entity was archived. Null if the entity has not been archived.
958    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
959    /// The comment content in markdown format.
960    pub body: Option<String>,
961    /// The issue that the comment is associated with.
962    pub issue: Option<Box<Issue>>,
963    /// The ID of the issue that the comment is associated with.
964    pub issue_id: Option<String>,
965    /// The document content that the comment is associated with.
966    pub document_content: Option<Box<DocumentContent>>,
967    /// The ID of the document content that the comment is associated with.
968    pub document_content_id: Option<String>,
969    /// The project update that the comment is associated with.
970    pub project_update: Option<Box<ProjectUpdate>>,
971    /// The ID of the project update that the comment is associated with.
972    pub project_update_id: Option<String>,
973    /// The initiative update that the comment is associated with.
974    pub initiative_update: Option<Box<InitiativeUpdate>>,
975    /// The ID of the initiative update that the comment is associated with.
976    pub initiative_update_id: Option<String>,
977    /// The post that the comment is associated with.
978    pub post: Option<Box<Post>>,
979    /// The parent comment under which the current comment is nested.
980    pub parent: Option<Box<Comment>>,
981    /// The ID of the parent comment under which the current comment is nested.
982    pub parent_id: Option<String>,
983    /// The user that resolved the thread.
984    pub resolving_user: Option<Box<User>>,
985    /// The time the resolvingUser resolved the thread.
986    pub resolved_at: Option<chrono::DateTime<chrono::Utc>>,
987    /// The comment that resolved the thread.
988    pub resolving_comment: Option<Box<Comment>>,
989    /// The ID of the comment that resolved the thread.
990    pub resolving_comment_id: Option<String>,
991    /// The user who wrote the comment.
992    pub user: Option<Box<User>>,
993    /// The external user who wrote the comment.
994    pub external_user: Option<Box<ExternalUser>>,
995    /// The time user edited the comment.
996    pub edited_at: Option<chrono::DateTime<chrono::Utc>>,
997    /// `Internal` The comment content as a Prosemirror document.
998    pub body_data: Option<String>,
999    /// The text that this comment references. Only defined for inline comments.
1000    pub quoted_text: Option<String>,
1001    /// Emoji reaction summary, grouped by emoji type.
1002    pub reaction_data: Option<serde_json::Value>,
1003    /// `Internal` A generated summary of the comment thread.
1004    pub thread_summary: Option<serde_json::Value>,
1005    /// `Internal` Whether the comment is an artificial placeholder for an agent session thread created without a comment mention.
1006    pub is_artificial_agent_session_root: Option<bool>,
1007    /// Comment's URL.
1008    pub url: Option<String>,
1009    /// The children of the comment.
1010    pub children: Option<Box<CommentConnection>>,
1011    /// Agent session associated with this comment.
1012    pub agent_session: Option<Box<AgentSession>>,
1013    /// `Internal` Agent sessions associated with this comment.
1014    pub agent_sessions: Option<Box<AgentSessionConnection>>,
1015    /// Issues created from this comment.
1016    pub created_issues: Option<Box<IssueConnection>>,
1017    /// The bot that created the comment.
1018    pub bot_actor: Option<Box<ActorBot>>,
1019    /// `Internal` The user on whose behalf the comment was created, e.g. when the Linear assistant creates a comment for a user.
1020    pub on_behalf_of: Option<Box<User>>,
1021    /// The external thread that the comment is synced with.
1022    pub external_thread: Option<Box<SyncedExternalThread>>,
1023    /// `Internal` Whether the comment should be hidden from Linear clients. This is typically used for bot comments that provide redundant information (e.g., Slack Asks confirmation messages).
1024    pub hide_in_linear: Option<bool>,
1025    /// Reactions associated with the comment.
1026    pub reactions: Option<Box<Vec<Reaction>>>,
1027    /// The external services the comment is synced with.
1028    pub synced_with: Option<Box<Vec<ExternalEntityInfo>>>,
1029}
1030impl GraphQLFields for Comment {
1031    type FullType = Self;
1032    fn selection() -> String {
1033        "id createdAt updatedAt archivedAt body issueId documentContentId projectUpdateId initiativeUpdateId parentId resolvedAt resolvingCommentId editedAt bodyData quotedText reactionData threadSummary isArtificialAgentSessionRoot url hideInLinear"
1034            .into()
1035    }
1036}
1037#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1038#[serde(rename_all = "camelCase", default)]
1039pub struct CommentConnection {
1040    pub edges: Option<Box<Vec<CommentEdge>>>,
1041    pub nodes: Option<Box<Vec<Comment>>>,
1042    pub page_info: Option<Box<PageInfo>>,
1043}
1044impl GraphQLFields for CommentConnection {
1045    type FullType = Self;
1046    fn selection() -> String {
1047        "".into()
1048    }
1049}
1050#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1051#[serde(rename_all = "camelCase", default)]
1052pub struct CommentEdge {
1053    pub node: Option<Box<Comment>>,
1054    /// Used in `before` and `after` args
1055    pub cursor: Option<String>,
1056}
1057impl GraphQLFields for CommentEdge {
1058    type FullType = Self;
1059    fn selection() -> String {
1060        "cursor".into()
1061    }
1062}
1063#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1064#[serde(rename_all = "camelCase", default)]
1065pub struct CommentPayload {
1066    /// The identifier of the last sync operation.
1067    pub last_sync_id: Option<f64>,
1068    /// The comment that was created or updated.
1069    pub comment: Option<Box<Comment>>,
1070    /// Whether the operation was successful.
1071    pub success: Option<bool>,
1072}
1073impl GraphQLFields for CommentPayload {
1074    type FullType = Self;
1075    fn selection() -> String {
1076        "lastSyncId success".into()
1077    }
1078}
1079#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1080#[serde(rename_all = "camelCase", default)]
1081pub struct ContactPayload {
1082    /// Whether the operation was successful.
1083    pub success: Option<bool>,
1084}
1085impl GraphQLFields for ContactPayload {
1086    type FullType = Self;
1087    fn selection() -> String {
1088        "success".into()
1089    }
1090}
1091#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1092#[serde(rename_all = "camelCase", default)]
1093pub struct CreateCsvExportReportPayload {
1094    /// Whether the operation was successful.
1095    pub success: Option<bool>,
1096}
1097impl GraphQLFields for CreateCsvExportReportPayload {
1098    type FullType = Self;
1099    fn selection() -> String {
1100        "success".into()
1101    }
1102}
1103#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1104#[serde(rename_all = "camelCase", default)]
1105pub struct CreateOrJoinOrganizationResponse {
1106    pub organization: Option<Box<AuthOrganization>>,
1107    pub user: Option<Box<AuthUser>>,
1108}
1109impl GraphQLFields for CreateOrJoinOrganizationResponse {
1110    type FullType = Self;
1111    fn selection() -> String {
1112        "".into()
1113    }
1114}
1115/// A custom view that has been saved by a user.
1116#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1117#[serde(rename_all = "camelCase", default)]
1118pub struct CustomView {
1119    /// The unique identifier of the entity.
1120    pub id: Option<String>,
1121    /// The time at which the entity was created.
1122    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1123    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1124    /// been updated after creation.
1125    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1126    /// The time at which the entity was archived. Null if the entity has not been archived.
1127    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1128    /// The name of the custom view.
1129    pub name: Option<String>,
1130    /// The description of the custom view.
1131    pub description: Option<String>,
1132    /// The icon of the custom view.
1133    pub icon: Option<String>,
1134    /// The color of the icon of the custom view.
1135    pub color: Option<String>,
1136    /// The organization of the custom view.
1137    pub organization: Option<Box<Organization>>,
1138    /// The user who created the custom view.
1139    pub creator: Option<Box<User>>,
1140    /// The user who owns the custom view.
1141    pub owner: Option<Box<User>>,
1142    /// The user who last updated the custom view.
1143    pub updated_by: Option<Box<User>>,
1144    /// The filters applied to issues in the custom view.
1145    pub filters: Option<serde_json::Value>,
1146    /// The filter applied to issues in the custom view.
1147    pub filter_data: Option<serde_json::Value>,
1148    /// The filter applied to projects in the custom view.
1149    pub project_filter_data: Option<serde_json::Value>,
1150    /// The filter applied to initiatives in the custom view.
1151    pub initiative_filter_data: Option<serde_json::Value>,
1152    /// The filter applied to feed items in the custom view.
1153    pub feed_item_filter_data: Option<serde_json::Value>,
1154    /// Whether the custom view is shared with everyone in the organization.
1155    pub shared: Option<bool>,
1156    /// The custom view's unique URL slug.
1157    pub slug_id: Option<String>,
1158    /// The model name of the custom view.
1159    pub model_name: Option<String>,
1160    /// `INTERNAL` The facet associated with the custom view.
1161    pub facet: Option<Box<Facet>>,
1162    /// The team associated with the custom view.
1163    pub team: Option<Box<Team>>,
1164    /// Projects associated with the custom view.
1165    pub projects: Option<Box<ProjectConnection>>,
1166    /// Issues associated with the custom view.
1167    pub issues: Option<Box<IssueConnection>>,
1168    /// Feed items associated with the custom view.
1169    pub updates: Option<Box<FeedItemConnection>>,
1170    /// The current users view preferences for this custom view.
1171    pub user_view_preferences: Option<Box<ViewPreferences>>,
1172    /// The organizations default view preferences for this custom view.
1173    pub organization_view_preferences: Option<Box<ViewPreferences>>,
1174    /// The calculated view preferences values for this custom view.
1175    pub view_preferences_values: Option<Box<ViewPreferencesValues>>,
1176    /// Initiatives associated with the custom view.
1177    pub initiatives: Option<Box<InitiativeConnection>>,
1178}
1179impl GraphQLFields for CustomView {
1180    type FullType = Self;
1181    fn selection() -> String {
1182        "id createdAt updatedAt archivedAt name description icon color filters filterData projectFilterData initiativeFilterData feedItemFilterData shared slugId modelName"
1183            .into()
1184    }
1185}
1186#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1187#[serde(rename_all = "camelCase", default)]
1188pub struct CustomViewConnection {
1189    pub edges: Option<Box<Vec<CustomViewEdge>>>,
1190    pub nodes: Option<Box<Vec<CustomView>>>,
1191    pub page_info: Option<Box<PageInfo>>,
1192}
1193impl GraphQLFields for CustomViewConnection {
1194    type FullType = Self;
1195    fn selection() -> String {
1196        "".into()
1197    }
1198}
1199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1200#[serde(rename_all = "camelCase", default)]
1201pub struct CustomViewEdge {
1202    pub node: Option<Box<CustomView>>,
1203    /// Used in `before` and `after` args
1204    pub cursor: Option<String>,
1205}
1206impl GraphQLFields for CustomViewEdge {
1207    type FullType = Self;
1208    fn selection() -> String {
1209        "cursor".into()
1210    }
1211}
1212#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1213#[serde(rename_all = "camelCase", default)]
1214pub struct CustomViewHasSubscribersPayload {
1215    /// Whether the custom view has subscribers.
1216    pub has_subscribers: Option<bool>,
1217}
1218impl GraphQLFields for CustomViewHasSubscribersPayload {
1219    type FullType = Self;
1220    fn selection() -> String {
1221        "hasSubscribers".into()
1222    }
1223}
1224/// A custom view notification subscription.
1225#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1226#[serde(rename_all = "camelCase", default)]
1227pub struct CustomViewNotificationSubscription {
1228    /// The unique identifier of the entity.
1229    pub id: Option<String>,
1230    /// The time at which the entity was created.
1231    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1232    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1233    /// been updated after creation.
1234    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1235    /// The time at which the entity was archived. Null if the entity has not been archived.
1236    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1237    /// The user that subscribed to receive notifications.
1238    pub subscriber: Option<Box<User>>,
1239    /// The customer associated with the notification subscription.
1240    pub customer: Option<Box<Customer>>,
1241    /// The custom view subscribed to.
1242    pub custom_view: Option<Box<CustomView>>,
1243    /// The contextual cycle view associated with the notification subscription.
1244    pub cycle: Option<Box<Cycle>>,
1245    /// The contextual label view associated with the notification subscription.
1246    pub label: Option<Box<IssueLabel>>,
1247    /// The contextual project view associated with the notification subscription.
1248    pub project: Option<Box<Project>>,
1249    /// The contextual initiative view associated with the notification subscription.
1250    pub initiative: Option<Box<Initiative>>,
1251    /// The team associated with the notification subscription.
1252    pub team: Option<Box<Team>>,
1253    /// The user view associated with the notification subscription.
1254    pub user: Option<Box<User>>,
1255    /// The type of view to which the notification subscription context is associated with.
1256    pub context_view_type: Option<ContextViewType>,
1257    /// The type of user view to which the notification subscription context is associated with.
1258    pub user_context_view_type: Option<UserContextViewType>,
1259    /// Whether the subscription is active or not.
1260    pub active: Option<bool>,
1261    /// The type of subscription.
1262    pub notification_subscription_types: Option<Vec<String>>,
1263}
1264impl GraphQLFields for CustomViewNotificationSubscription {
1265    type FullType = Self;
1266    fn selection() -> String {
1267        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
1268            .into()
1269    }
1270}
1271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1272#[serde(rename_all = "camelCase", default)]
1273pub struct CustomViewPayload {
1274    /// The identifier of the last sync operation.
1275    pub last_sync_id: Option<f64>,
1276    /// The custom view that was created or updated.
1277    pub custom_view: Option<Box<CustomView>>,
1278    /// Whether the operation was successful.
1279    pub success: Option<bool>,
1280}
1281impl GraphQLFields for CustomViewPayload {
1282    type FullType = Self;
1283    fn selection() -> String {
1284        "lastSyncId success".into()
1285    }
1286}
1287#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1288#[serde(rename_all = "camelCase", default)]
1289pub struct CustomViewSuggestionPayload {
1290    /// The suggested view name.
1291    pub name: Option<String>,
1292    /// The suggested view description.
1293    pub description: Option<String>,
1294    /// The suggested view icon.
1295    pub icon: Option<String>,
1296}
1297impl GraphQLFields for CustomViewSuggestionPayload {
1298    type FullType = Self;
1299    fn selection() -> String {
1300        "name description icon".into()
1301    }
1302}
1303/// A customer whose needs will be tied to issues or projects.
1304#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1305#[serde(rename_all = "camelCase", default)]
1306pub struct Customer {
1307    /// The unique identifier of the entity.
1308    pub id: Option<String>,
1309    /// The time at which the entity was created.
1310    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1311    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1312    /// been updated after creation.
1313    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1314    /// The time at which the entity was archived. Null if the entity has not been archived.
1315    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1316    /// The customer's name.
1317    pub name: Option<String>,
1318    /// The customer's logo URL.
1319    pub logo_url: Option<String>,
1320    /// The domains associated with this customer.
1321    pub domains: Option<Vec<String>>,
1322    /// The ids of the customers in external systems.
1323    pub external_ids: Option<Vec<String>>,
1324    /// The ID of the Slack channel used to interact with the customer.
1325    pub slack_channel_id: Option<String>,
1326    /// The user who owns the customer.
1327    pub owner: Option<Box<User>>,
1328    /// The current status of the customer.
1329    pub status: Option<Box<CustomerStatus>>,
1330    /// The annual revenue generated by the customer.
1331    pub revenue: Option<i64>,
1332    /// The size of the customer.
1333    pub size: Option<f64>,
1334    /// The tier of the customer.
1335    pub tier: Option<Box<CustomerTier>>,
1336    /// The approximate number of needs of the customer.
1337    pub approximate_need_count: Option<f64>,
1338    /// The customer's unique URL slug.
1339    pub slug_id: Option<String>,
1340    /// The ID of the main source, when a customer has multiple sources. Must be one of externalIds.
1341    pub main_source_id: Option<String>,
1342    /// The integration that manages the Customer.
1343    pub integration: Option<Box<Integration>>,
1344    /// URL of the customer in Linear.
1345    pub url: Option<String>,
1346}
1347impl GraphQLFields for Customer {
1348    type FullType = Self;
1349    fn selection() -> String {
1350        "id createdAt updatedAt archivedAt name logoUrl domains externalIds slackChannelId revenue size approximateNeedCount slugId mainSourceId url"
1351            .into()
1352    }
1353}
1354#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1355#[serde(rename_all = "camelCase", default)]
1356pub struct CustomerConnection {
1357    pub edges: Option<Box<Vec<CustomerEdge>>>,
1358    pub nodes: Option<Box<Vec<Customer>>>,
1359    pub page_info: Option<Box<PageInfo>>,
1360}
1361impl GraphQLFields for CustomerConnection {
1362    type FullType = Self;
1363    fn selection() -> String {
1364        "".into()
1365    }
1366}
1367#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1368#[serde(rename_all = "camelCase", default)]
1369pub struct CustomerEdge {
1370    pub node: Option<Box<Customer>>,
1371    /// Used in `before` and `after` args
1372    pub cursor: Option<String>,
1373}
1374impl GraphQLFields for CustomerEdge {
1375    type FullType = Self;
1376    fn selection() -> String {
1377        "cursor".into()
1378    }
1379}
1380/// A customer need, expressed through a reference to an issue, project, or comment.
1381#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1382#[serde(rename_all = "camelCase", default)]
1383pub struct CustomerNeed {
1384    /// The unique identifier of the entity.
1385    pub id: Option<String>,
1386    /// The time at which the entity was created.
1387    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1388    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1389    /// been updated after creation.
1390    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1391    /// The time at which the entity was archived. Null if the entity has not been archived.
1392    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1393    /// The customer that this need is attached to.
1394    pub customer: Option<Box<Customer>>,
1395    /// The issue this need is referencing.
1396    pub issue: Option<Box<Issue>>,
1397    /// The project this need is referencing.
1398    pub project: Option<Box<Project>>,
1399    /// The comment this need is referencing.
1400    pub comment: Option<Box<Comment>>,
1401    /// The attachment this need is referencing.
1402    pub attachment: Option<Box<Attachment>>,
1403    /// The project attachment this need is referencing.
1404    pub project_attachment: Option<Box<ProjectAttachment>>,
1405    /// Whether the customer need is important or not. 0 = Not important, 1 = Important.
1406    pub priority: Option<f64>,
1407    /// The need content in markdown format.
1408    pub body: Option<String>,
1409    /// `Internal` The content of the need as a Prosemirror document.
1410    pub body_data: Option<String>,
1411    /// The creator of the customer need.
1412    pub creator: Option<Box<User>>,
1413    /// The issue this customer need was originally created on. Will be undefined if the customer need hasn't been moved.
1414    pub original_issue: Option<Box<Issue>>,
1415    /// The URL of the underlying attachment, if any
1416    pub url: Option<String>,
1417}
1418impl GraphQLFields for CustomerNeed {
1419    type FullType = Self;
1420    fn selection() -> String {
1421        "id createdAt updatedAt archivedAt priority body bodyData url".into()
1422    }
1423}
1424/// A generic payload return from entity archive mutations.
1425#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1426#[serde(rename_all = "camelCase", default)]
1427pub struct CustomerNeedArchivePayload {
1428    /// The identifier of the last sync operation.
1429    pub last_sync_id: Option<f64>,
1430    /// Whether the operation was successful.
1431    pub success: Option<bool>,
1432    /// The archived/unarchived entity. Null if entity was deleted.
1433    pub entity: Option<Box<CustomerNeed>>,
1434}
1435impl GraphQLFields for CustomerNeedArchivePayload {
1436    type FullType = Self;
1437    fn selection() -> String {
1438        "lastSyncId success".into()
1439    }
1440}
1441#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1442#[serde(rename_all = "camelCase", default)]
1443pub struct CustomerNeedConnection {
1444    pub edges: Option<Box<Vec<CustomerNeedEdge>>>,
1445    pub nodes: Option<Box<Vec<CustomerNeed>>>,
1446    pub page_info: Option<Box<PageInfo>>,
1447}
1448impl GraphQLFields for CustomerNeedConnection {
1449    type FullType = Self;
1450    fn selection() -> String {
1451        "".into()
1452    }
1453}
1454#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1455#[serde(rename_all = "camelCase", default)]
1456pub struct CustomerNeedEdge {
1457    pub node: Option<Box<CustomerNeed>>,
1458    /// Used in `before` and `after` args
1459    pub cursor: Option<String>,
1460}
1461impl GraphQLFields for CustomerNeedEdge {
1462    type FullType = Self;
1463    fn selection() -> String {
1464        "cursor".into()
1465    }
1466}
1467/// A customer need related notification.
1468#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1469#[serde(rename_all = "camelCase", default)]
1470pub struct CustomerNeedNotification {
1471    /// The unique identifier of the entity.
1472    pub id: Option<String>,
1473    /// The time at which the entity was created.
1474    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1475    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1476    /// been updated after creation.
1477    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1478    /// The time at which the entity was archived. Null if the entity has not been archived.
1479    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1480    /// Notification type.
1481    pub r#type: Option<String>,
1482    /// The user that caused the notification.
1483    pub actor: Option<Box<User>>,
1484    /// The external user that caused the notification.
1485    pub external_user_actor: Option<Box<ExternalUser>>,
1486    /// The user that received the notification.
1487    pub user: Option<Box<User>>,
1488    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
1489    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
1490    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
1491    /// reminder has been sent.
1492    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
1493    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
1494    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
1495    /// The time at which a notification was unsnoozed..
1496    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
1497    /// The category of the notification.
1498    pub category: Option<NotificationCategory>,
1499    /// `Internal` URL to the target of the notification.
1500    pub url: Option<String>,
1501    /// `Internal` Inbox URL for the notification.
1502    pub inbox_url: Option<String>,
1503    /// `Internal` Notification title.
1504    pub title: Option<String>,
1505    /// `Internal` Notification subtitle.
1506    pub subtitle: Option<String>,
1507    /// `Internal` If notification actor was Linear.
1508    pub is_linear_actor: Option<bool>,
1509    /// `Internal` Notification avatar URL.
1510    pub actor_avatar_url: Option<String>,
1511    /// `Internal` Notification actor initials if avatar is not available.
1512    pub actor_initials: Option<String>,
1513    /// `Internal` Notification actor initials if avatar is not available.
1514    pub actor_avatar_color: Option<String>,
1515    /// `Internal` Issue's status type for issue notifications.
1516    pub issue_status_type: Option<String>,
1517    /// `Internal` Project update health for new updates.
1518    pub project_update_health: Option<String>,
1519    /// `Internal` Initiative update health for new updates.
1520    pub initiative_update_health: Option<String>,
1521    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
1522    pub grouping_key: Option<String>,
1523    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
1524    pub grouping_priority: Option<f64>,
1525    /// The bot that caused the notification.
1526    pub bot_actor: Option<Box<ActorBot>>,
1527    /// Related customer need.
1528    pub customer_need_id: Option<String>,
1529    /// The issue related to the notification.
1530    pub related_issue: Option<Box<Issue>>,
1531    /// The project related to the notification.
1532    pub related_project: Option<Box<Project>>,
1533    /// The customer need related to the notification.
1534    pub customer_need: Option<Box<CustomerNeed>>,
1535}
1536impl GraphQLFields for CustomerNeedNotification {
1537    type FullType = Self;
1538    fn selection() -> String {
1539        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority customerNeedId"
1540            .into()
1541    }
1542}
1543#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1544#[serde(rename_all = "camelCase", default)]
1545pub struct CustomerNeedPayload {
1546    /// The identifier of the last sync operation.
1547    pub last_sync_id: Option<f64>,
1548    /// The customer need that was created or updated.
1549    pub need: Option<Box<CustomerNeed>>,
1550    /// Whether the operation was successful.
1551    pub success: Option<bool>,
1552}
1553impl GraphQLFields for CustomerNeedPayload {
1554    type FullType = Self;
1555    fn selection() -> String {
1556        "lastSyncId success".into()
1557    }
1558}
1559#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1560#[serde(rename_all = "camelCase", default)]
1561pub struct CustomerNeedUpdatePayload {
1562    /// The identifier of the last sync operation.
1563    pub last_sync_id: Option<f64>,
1564    /// The customer need that was created or updated.
1565    pub need: Option<Box<CustomerNeed>>,
1566    /// Whether the operation was successful.
1567    pub success: Option<bool>,
1568    /// The related customer needs that were updated.
1569    pub updated_related_needs: Option<Box<Vec<CustomerNeed>>>,
1570}
1571impl GraphQLFields for CustomerNeedUpdatePayload {
1572    type FullType = Self;
1573    fn selection() -> String {
1574        "lastSyncId success".into()
1575    }
1576}
1577/// A customer related notification.
1578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1579#[serde(rename_all = "camelCase", default)]
1580pub struct CustomerNotification {
1581    /// The unique identifier of the entity.
1582    pub id: Option<String>,
1583    /// The time at which the entity was created.
1584    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1585    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1586    /// been updated after creation.
1587    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1588    /// The time at which the entity was archived. Null if the entity has not been archived.
1589    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1590    /// Notification type.
1591    pub r#type: Option<String>,
1592    /// The user that caused the notification.
1593    pub actor: Option<Box<User>>,
1594    /// The external user that caused the notification.
1595    pub external_user_actor: Option<Box<ExternalUser>>,
1596    /// The user that received the notification.
1597    pub user: Option<Box<User>>,
1598    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
1599    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
1600    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
1601    /// reminder has been sent.
1602    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
1603    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
1604    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
1605    /// The time at which a notification was unsnoozed..
1606    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
1607    /// The category of the notification.
1608    pub category: Option<NotificationCategory>,
1609    /// `Internal` URL to the target of the notification.
1610    pub url: Option<String>,
1611    /// `Internal` Inbox URL for the notification.
1612    pub inbox_url: Option<String>,
1613    /// `Internal` Notification title.
1614    pub title: Option<String>,
1615    /// `Internal` Notification subtitle.
1616    pub subtitle: Option<String>,
1617    /// `Internal` If notification actor was Linear.
1618    pub is_linear_actor: Option<bool>,
1619    /// `Internal` Notification avatar URL.
1620    pub actor_avatar_url: Option<String>,
1621    /// `Internal` Notification actor initials if avatar is not available.
1622    pub actor_initials: Option<String>,
1623    /// `Internal` Notification actor initials if avatar is not available.
1624    pub actor_avatar_color: Option<String>,
1625    /// `Internal` Issue's status type for issue notifications.
1626    pub issue_status_type: Option<String>,
1627    /// `Internal` Project update health for new updates.
1628    pub project_update_health: Option<String>,
1629    /// `Internal` Initiative update health for new updates.
1630    pub initiative_update_health: Option<String>,
1631    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
1632    pub grouping_key: Option<String>,
1633    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
1634    pub grouping_priority: Option<f64>,
1635    /// The bot that caused the notification.
1636    pub bot_actor: Option<Box<ActorBot>>,
1637    /// Related customer.
1638    pub customer_id: Option<String>,
1639    /// The customer related to the notification.
1640    pub customer: Option<Box<Customer>>,
1641}
1642impl GraphQLFields for CustomerNotification {
1643    type FullType = Self;
1644    fn selection() -> String {
1645        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority customerId"
1646            .into()
1647    }
1648}
1649/// A customer notification subscription.
1650#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1651#[serde(rename_all = "camelCase", default)]
1652pub struct CustomerNotificationSubscription {
1653    /// The unique identifier of the entity.
1654    pub id: Option<String>,
1655    /// The time at which the entity was created.
1656    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1657    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1658    /// been updated after creation.
1659    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1660    /// The time at which the entity was archived. Null if the entity has not been archived.
1661    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1662    /// The user that subscribed to receive notifications.
1663    pub subscriber: Option<Box<User>>,
1664    /// The customer subscribed to.
1665    pub customer: Option<Box<Customer>>,
1666    /// The contextual custom view associated with the notification subscription.
1667    pub custom_view: Option<Box<CustomView>>,
1668    /// The contextual cycle view associated with the notification subscription.
1669    pub cycle: Option<Box<Cycle>>,
1670    /// The contextual label view associated with the notification subscription.
1671    pub label: Option<Box<IssueLabel>>,
1672    /// The contextual project view associated with the notification subscription.
1673    pub project: Option<Box<Project>>,
1674    /// The contextual initiative view associated with the notification subscription.
1675    pub initiative: Option<Box<Initiative>>,
1676    /// The team associated with the notification subscription.
1677    pub team: Option<Box<Team>>,
1678    /// The user view associated with the notification subscription.
1679    pub user: Option<Box<User>>,
1680    /// The type of view to which the notification subscription context is associated with.
1681    pub context_view_type: Option<ContextViewType>,
1682    /// The type of user view to which the notification subscription context is associated with.
1683    pub user_context_view_type: Option<UserContextViewType>,
1684    /// Whether the subscription is active or not.
1685    pub active: Option<bool>,
1686    /// The type of subscription.
1687    pub notification_subscription_types: Option<Vec<String>>,
1688}
1689impl GraphQLFields for CustomerNotificationSubscription {
1690    type FullType = Self;
1691    fn selection() -> String {
1692        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
1693            .into()
1694    }
1695}
1696#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1697#[serde(rename_all = "camelCase", default)]
1698pub struct CustomerPayload {
1699    /// The identifier of the last sync operation.
1700    pub last_sync_id: Option<f64>,
1701    /// The customer that was created or updated.
1702    pub customer: Option<Box<Customer>>,
1703    /// Whether the operation was successful.
1704    pub success: Option<bool>,
1705}
1706impl GraphQLFields for CustomerPayload {
1707    type FullType = Self;
1708    fn selection() -> String {
1709        "lastSyncId success".into()
1710    }
1711}
1712/// A customer status.
1713#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1714#[serde(rename_all = "camelCase", default)]
1715pub struct CustomerStatus {
1716    /// The unique identifier of the entity.
1717    pub id: Option<String>,
1718    /// The time at which the entity was created.
1719    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1720    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1721    /// been updated after creation.
1722    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1723    /// The time at which the entity was archived. Null if the entity has not been archived.
1724    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1725    /// The name of the status.
1726    pub name: Option<String>,
1727    /// The UI color of the status as a HEX string.
1728    pub color: Option<String>,
1729    /// Description of the status.
1730    pub description: Option<String>,
1731    /// The position of the status in the workspace's customers flow.
1732    pub position: Option<f64>,
1733    /// The display name of the status.
1734    pub display_name: Option<String>,
1735    /// The type of the customer status.
1736    pub r#type: Option<CustomerStatusType>,
1737}
1738impl GraphQLFields for CustomerStatus {
1739    type FullType = Self;
1740    fn selection() -> String {
1741        "id createdAt updatedAt archivedAt name color description position displayName type".into()
1742    }
1743}
1744#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1745#[serde(rename_all = "camelCase", default)]
1746pub struct CustomerStatusConnection {
1747    pub edges: Option<Box<Vec<CustomerStatusEdge>>>,
1748    pub nodes: Option<Box<Vec<CustomerStatus>>>,
1749    pub page_info: Option<Box<PageInfo>>,
1750}
1751impl GraphQLFields for CustomerStatusConnection {
1752    type FullType = Self;
1753    fn selection() -> String {
1754        "".into()
1755    }
1756}
1757#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1758#[serde(rename_all = "camelCase", default)]
1759pub struct CustomerStatusEdge {
1760    pub node: Option<Box<CustomerStatus>>,
1761    /// Used in `before` and `after` args
1762    pub cursor: Option<String>,
1763}
1764impl GraphQLFields for CustomerStatusEdge {
1765    type FullType = Self;
1766    fn selection() -> String {
1767        "cursor".into()
1768    }
1769}
1770#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1771#[serde(rename_all = "camelCase", default)]
1772pub struct CustomerStatusPayload {
1773    /// The identifier of the last sync operation.
1774    pub last_sync_id: Option<f64>,
1775    /// The customer status that was created or updated.
1776    pub status: Option<Box<CustomerStatus>>,
1777    /// Whether the operation was successful.
1778    pub success: Option<bool>,
1779}
1780impl GraphQLFields for CustomerStatusPayload {
1781    type FullType = Self;
1782    fn selection() -> String {
1783        "lastSyncId success".into()
1784    }
1785}
1786/// A customer tier.
1787#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1788#[serde(rename_all = "camelCase", default)]
1789pub struct CustomerTier {
1790    /// The unique identifier of the entity.
1791    pub id: Option<String>,
1792    /// The time at which the entity was created.
1793    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1794    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1795    /// been updated after creation.
1796    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1797    /// The time at which the entity was archived. Null if the entity has not been archived.
1798    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1799    /// The name of the tier.
1800    pub name: Option<String>,
1801    /// The UI color of the tier as a HEX string.
1802    pub color: Option<String>,
1803    /// Description of the tier.
1804    pub description: Option<String>,
1805    /// The position of the tier in the workspace's customers flow.
1806    pub position: Option<f64>,
1807    /// The display name of the tier.
1808    pub display_name: Option<String>,
1809}
1810impl GraphQLFields for CustomerTier {
1811    type FullType = Self;
1812    fn selection() -> String {
1813        "id createdAt updatedAt archivedAt name color description position displayName".into()
1814    }
1815}
1816#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1817#[serde(rename_all = "camelCase", default)]
1818pub struct CustomerTierConnection {
1819    pub edges: Option<Box<Vec<CustomerTierEdge>>>,
1820    pub nodes: Option<Box<Vec<CustomerTier>>>,
1821    pub page_info: Option<Box<PageInfo>>,
1822}
1823impl GraphQLFields for CustomerTierConnection {
1824    type FullType = Self;
1825    fn selection() -> String {
1826        "".into()
1827    }
1828}
1829#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1830#[serde(rename_all = "camelCase", default)]
1831pub struct CustomerTierEdge {
1832    pub node: Option<Box<CustomerTier>>,
1833    /// Used in `before` and `after` args
1834    pub cursor: Option<String>,
1835}
1836impl GraphQLFields for CustomerTierEdge {
1837    type FullType = Self;
1838    fn selection() -> String {
1839        "cursor".into()
1840    }
1841}
1842#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1843#[serde(rename_all = "camelCase", default)]
1844pub struct CustomerTierPayload {
1845    /// The identifier of the last sync operation.
1846    pub last_sync_id: Option<f64>,
1847    /// The customer tier that was created or updated.
1848    pub tier: Option<Box<CustomerTier>>,
1849    /// Whether the operation was successful.
1850    pub success: Option<bool>,
1851}
1852impl GraphQLFields for CustomerTierPayload {
1853    type FullType = Self;
1854    fn selection() -> String {
1855        "lastSyncId success".into()
1856    }
1857}
1858/// A set of issues to be resolved in a specified amount of time.
1859#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1860#[serde(rename_all = "camelCase", default)]
1861pub struct Cycle {
1862    /// The unique identifier of the entity.
1863    pub id: Option<String>,
1864    /// The time at which the entity was created.
1865    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1866    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1867    /// been updated after creation.
1868    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1869    /// The time at which the entity was archived. Null if the entity has not been archived.
1870    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1871    /// The number of the cycle.
1872    pub number: Option<f64>,
1873    /// The custom name of the cycle.
1874    pub name: Option<String>,
1875    /// The cycle's description.
1876    pub description: Option<String>,
1877    /// The start time of the cycle.
1878    pub starts_at: Option<chrono::DateTime<chrono::Utc>>,
1879    /// The end time of the cycle.
1880    pub ends_at: Option<chrono::DateTime<chrono::Utc>>,
1881    /// The completion time of the cycle. If null, the cycle hasn't been completed.
1882    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
1883    /// The time at which the cycle was automatically archived by the auto pruning process.
1884    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
1885    /// The total number of issues in the cycle after each day.
1886    pub issue_count_history: Option<Vec<f64>>,
1887    /// The number of completed issues in the cycle after each day.
1888    pub completed_issue_count_history: Option<Vec<f64>>,
1889    /// The total number of estimation points after each day.
1890    pub scope_history: Option<Vec<f64>>,
1891    /// The number of completed estimation points after each day.
1892    pub completed_scope_history: Option<Vec<f64>>,
1893    /// The number of in progress estimation points after each day.
1894    pub in_progress_scope_history: Option<Vec<f64>>,
1895    /// The team that the cycle is associated with.
1896    pub team: Option<Box<Team>>,
1897    /// `Internal` The progress history of the cycle.
1898    pub progress_history: Option<serde_json::Value>,
1899    /// `Internal` The current progress of the cycle.
1900    pub current_progress: Option<serde_json::Value>,
1901    /// The cycle inherited from.
1902    pub inherited_from: Option<Box<Cycle>>,
1903    /// Whether the cycle is currently active.
1904    pub is_active: Option<bool>,
1905    /// Whether the cycle is in the future.
1906    pub is_future: Option<bool>,
1907    /// Whether the cycle is in the past.
1908    pub is_past: Option<bool>,
1909    /// Issues associated with the cycle.
1910    pub issues: Option<Box<IssueConnection>>,
1911    /// Issues that weren't completed when the cycle was closed.
1912    pub uncompleted_issues_upon_close: Option<Box<IssueConnection>>,
1913    /// The overall progress of the cycle. This is the (completed estimate points + 0.25 * in progress estimate points) / total estimate points.
1914    pub progress: Option<f64>,
1915    /// Whether the cycle is the next cycle for the team.
1916    pub is_next: Option<bool>,
1917    /// Whether the cycle is the previous cycle for the team.
1918    pub is_previous: Option<bool>,
1919    /// `Internal` Documents associated with the cycle.
1920    pub documents: Option<Box<DocumentConnection>>,
1921    /// `Internal` Links associated with the cycle.
1922    pub links: Option<Box<EntityExternalLinkConnection>>,
1923}
1924impl GraphQLFields for Cycle {
1925    type FullType = Self;
1926    fn selection() -> String {
1927        "id createdAt updatedAt archivedAt number name description startsAt endsAt completedAt autoArchivedAt issueCountHistory completedIssueCountHistory scopeHistory completedScopeHistory inProgressScopeHistory progressHistory currentProgress isActive isFuture isPast progress isNext isPrevious"
1928            .into()
1929    }
1930}
1931/// A generic payload return from entity archive mutations.
1932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1933#[serde(rename_all = "camelCase", default)]
1934pub struct CycleArchivePayload {
1935    /// The identifier of the last sync operation.
1936    pub last_sync_id: Option<f64>,
1937    /// Whether the operation was successful.
1938    pub success: Option<bool>,
1939    /// The archived/unarchived entity. Null if entity was deleted.
1940    pub entity: Option<Box<Cycle>>,
1941}
1942impl GraphQLFields for CycleArchivePayload {
1943    type FullType = Self;
1944    fn selection() -> String {
1945        "lastSyncId success".into()
1946    }
1947}
1948#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1949#[serde(rename_all = "camelCase", default)]
1950pub struct CycleConnection {
1951    pub edges: Option<Box<Vec<CycleEdge>>>,
1952    pub nodes: Option<Box<Vec<Cycle>>>,
1953    pub page_info: Option<Box<PageInfo>>,
1954}
1955impl GraphQLFields for CycleConnection {
1956    type FullType = Self;
1957    fn selection() -> String {
1958        "".into()
1959    }
1960}
1961#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1962#[serde(rename_all = "camelCase", default)]
1963pub struct CycleEdge {
1964    pub node: Option<Box<Cycle>>,
1965    /// Used in `before` and `after` args
1966    pub cursor: Option<String>,
1967}
1968impl GraphQLFields for CycleEdge {
1969    type FullType = Self;
1970    fn selection() -> String {
1971        "cursor".into()
1972    }
1973}
1974/// A cycle notification subscription.
1975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1976#[serde(rename_all = "camelCase", default)]
1977pub struct CycleNotificationSubscription {
1978    /// The unique identifier of the entity.
1979    pub id: Option<String>,
1980    /// The time at which the entity was created.
1981    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1982    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1983    /// been updated after creation.
1984    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1985    /// The time at which the entity was archived. Null if the entity has not been archived.
1986    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1987    /// The user that subscribed to receive notifications.
1988    pub subscriber: Option<Box<User>>,
1989    /// The customer associated with the notification subscription.
1990    pub customer: Option<Box<Customer>>,
1991    /// The contextual custom view associated with the notification subscription.
1992    pub custom_view: Option<Box<CustomView>>,
1993    /// The cycle subscribed to.
1994    pub cycle: Option<Box<Cycle>>,
1995    /// The contextual label view associated with the notification subscription.
1996    pub label: Option<Box<IssueLabel>>,
1997    /// The contextual project view associated with the notification subscription.
1998    pub project: Option<Box<Project>>,
1999    /// The contextual initiative view associated with the notification subscription.
2000    pub initiative: Option<Box<Initiative>>,
2001    /// The team associated with the notification subscription.
2002    pub team: Option<Box<Team>>,
2003    /// The user view associated with the notification subscription.
2004    pub user: Option<Box<User>>,
2005    /// The type of view to which the notification subscription context is associated with.
2006    pub context_view_type: Option<ContextViewType>,
2007    /// The type of user view to which the notification subscription context is associated with.
2008    pub user_context_view_type: Option<UserContextViewType>,
2009    /// Whether the subscription is active or not.
2010    pub active: Option<bool>,
2011    /// The type of subscription.
2012    pub notification_subscription_types: Option<Vec<String>>,
2013}
2014impl GraphQLFields for CycleNotificationSubscription {
2015    type FullType = Self;
2016    fn selection() -> String {
2017        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
2018            .into()
2019    }
2020}
2021#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2022#[serde(rename_all = "camelCase", default)]
2023pub struct CyclePayload {
2024    /// The identifier of the last sync operation.
2025    pub last_sync_id: Option<f64>,
2026    /// The Cycle that was created or updated.
2027    pub cycle: Option<Box<Cycle>>,
2028    /// Whether the operation was successful.
2029    pub success: Option<bool>,
2030}
2031impl GraphQLFields for CyclePayload {
2032    type FullType = Self;
2033    fn selection() -> String {
2034        "lastSyncId success".into()
2035    }
2036}
2037/// `Internal` A dashboard, usually a collection of widgets to display several insights at once.
2038#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2039#[serde(rename_all = "camelCase", default)]
2040pub struct Dashboard {
2041    /// The unique identifier of the entity.
2042    pub id: Option<String>,
2043    /// The time at which the entity was created.
2044    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2045    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2046    /// been updated after creation.
2047    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2048    /// The time at which the entity was archived. Null if the entity has not been archived.
2049    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2050    /// The dashboard's unique URL slug.
2051    pub slug_id: Option<String>,
2052    /// The name of the dashboard.
2053    pub name: Option<String>,
2054    /// The description of the dashboard.
2055    pub description: Option<String>,
2056    /// The icon of the dashboard.
2057    pub icon: Option<String>,
2058    /// The color of the icon of the dashboard.
2059    pub color: Option<String>,
2060    /// The sort order of the dashboard within the organization or its team.
2061    pub sort_order: Option<f64>,
2062    /// Whether the dashboard is shared with everyone in the organization.
2063    pub shared: Option<bool>,
2064    /// The organization of the dashboard.
2065    pub organization: Option<Box<Organization>>,
2066    /// The user who created the dashboard.
2067    pub creator: Option<Box<User>>,
2068    /// The user who last updated the dashboard.
2069    pub updated_by: Option<Box<User>>,
2070    /// The owner of the dashboard.
2071    pub owner: Option<Box<User>>,
2072    /// The filter applied to all dashboard widgets showing issues data.
2073    pub issue_filter: Option<serde_json::Value>,
2074    /// The filter applied to all dashboard widgets showing projects data.
2075    pub project_filter: Option<serde_json::Value>,
2076    /// The widgets on the dashboard.
2077    pub widgets: Option<serde_json::Value>,
2078}
2079impl GraphQLFields for Dashboard {
2080    type FullType = Self;
2081    fn selection() -> String {
2082        "id createdAt updatedAt archivedAt slugId name description icon color sortOrder shared issueFilter projectFilter widgets"
2083            .into()
2084    }
2085}
2086/// A generic payload return from entity deletion mutations.
2087#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2088#[serde(rename_all = "camelCase", default)]
2089pub struct DeletePayload {
2090    /// The identifier of the last sync operation.
2091    pub last_sync_id: Option<f64>,
2092    /// Whether the operation was successful.
2093    pub success: Option<bool>,
2094    /// The identifier of the deleted entity.
2095    pub entity_id: Option<String>,
2096}
2097impl GraphQLFields for DeletePayload {
2098    type FullType = Self;
2099    fn selection() -> String {
2100        "lastSyncId success entityId".into()
2101    }
2102}
2103/// A document that can be attached to different entities.
2104#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2105#[serde(rename_all = "camelCase", default)]
2106pub struct Document {
2107    /// The unique identifier of the entity.
2108    pub id: Option<String>,
2109    /// The time at which the entity was created.
2110    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2111    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2112    /// been updated after creation.
2113    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2114    /// The time at which the entity was archived. Null if the entity has not been archived.
2115    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2116    /// The document title.
2117    pub title: Option<String>,
2118    /// The icon of the document.
2119    pub icon: Option<String>,
2120    /// The color of the icon.
2121    pub color: Option<String>,
2122    /// The user who created the document.
2123    pub creator: Option<Box<User>>,
2124    /// The user who last updated the document.
2125    pub updated_by: Option<Box<User>>,
2126    /// The project that the document is associated with.
2127    pub project: Option<Box<Project>>,
2128    /// The initiative that the document is associated with.
2129    pub initiative: Option<Box<Initiative>>,
2130    /// `Internal` The team that the document is associated with.
2131    pub team: Option<Box<Team>>,
2132    /// The issue that the document is associated with.
2133    pub issue: Option<Box<Issue>>,
2134    /// `Internal` The release that the document is associated with.
2135    pub release: Option<Box<Release>>,
2136    /// `Internal` The cycle that the document is associated with.
2137    pub cycle: Option<Box<Cycle>>,
2138    /// The document's unique URL slug.
2139    pub slug_id: Option<String>,
2140    /// The last template that was applied to this document.
2141    pub last_applied_template: Option<Box<Template>>,
2142    /// The time at which the document was hidden. Null if the entity has not been hidden.
2143    pub hidden_at: Option<chrono::DateTime<chrono::Utc>>,
2144    /// A flag that indicates whether the document is in the trash bin.
2145    pub trashed: Option<bool>,
2146    /// The order of the item in the resources list.
2147    pub sort_order: Option<f64>,
2148    /// Comments associated with the document.
2149    pub comments: Option<Box<CommentConnection>>,
2150    /// The documents content in markdown format.
2151    pub content: Option<String>,
2152    /// `Internal` The documents content as YJS state.
2153    pub content_state: Option<String>,
2154    /// The ID of the document content associated with the document.
2155    pub document_content_id: Option<String>,
2156    /// The canonical url for the document.
2157    pub url: Option<String>,
2158}
2159impl GraphQLFields for Document {
2160    type FullType = Self;
2161    fn selection() -> String {
2162        "id createdAt updatedAt archivedAt title icon color slugId hiddenAt trashed sortOrder content contentState documentContentId url"
2163            .into()
2164    }
2165}
2166/// A generic payload return from entity archive mutations.
2167#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2168#[serde(rename_all = "camelCase", default)]
2169pub struct DocumentArchivePayload {
2170    /// The identifier of the last sync operation.
2171    pub last_sync_id: Option<f64>,
2172    /// Whether the operation was successful.
2173    pub success: Option<bool>,
2174    /// The archived/unarchived entity. Null if entity was deleted.
2175    pub entity: Option<Box<Document>>,
2176}
2177impl GraphQLFields for DocumentArchivePayload {
2178    type FullType = Self;
2179    fn selection() -> String {
2180        "lastSyncId success".into()
2181    }
2182}
2183#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2184#[serde(rename_all = "camelCase", default)]
2185pub struct DocumentConnection {
2186    pub edges: Option<Box<Vec<DocumentEdge>>>,
2187    pub nodes: Option<Box<Vec<Document>>>,
2188    pub page_info: Option<Box<PageInfo>>,
2189}
2190impl GraphQLFields for DocumentConnection {
2191    type FullType = Self;
2192    fn selection() -> String {
2193        "".into()
2194    }
2195}
2196/// A document content for a project.
2197#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2198#[serde(rename_all = "camelCase", default)]
2199pub struct DocumentContent {
2200    /// The unique identifier of the entity.
2201    pub id: Option<String>,
2202    /// The time at which the entity was created.
2203    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2204    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2205    /// been updated after creation.
2206    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2207    /// The time at which the entity was archived. Null if the entity has not been archived.
2208    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2209    /// The document content in markdown format.
2210    pub content: Option<String>,
2211    /// The document content state as a base64 encoded string.
2212    pub content_state: Option<String>,
2213    /// The issue that the content is associated with.
2214    pub issue: Option<Box<Issue>>,
2215    /// `Internal` The pull request that the content is associated with.
2216    pub pull_request: Option<Box<PullRequest>>,
2217    /// The project that the content is associated with.
2218    pub project: Option<Box<Project>>,
2219    /// The initiative that the content is associated with.
2220    pub initiative: Option<Box<Initiative>>,
2221    /// The project milestone that the content is associated with.
2222    pub project_milestone: Option<Box<ProjectMilestone>>,
2223    /// The document that the content is associated with.
2224    pub document: Option<Box<Document>>,
2225    /// The AI prompt rules that the content is associated with.
2226    pub ai_prompt_rules: Option<Box<AiPromptRules>>,
2227    /// The welcome message that the content is associated with.
2228    pub welcome_message: Option<Box<WelcomeMessage>>,
2229    /// The time at which the document content was restored from a previous version.
2230    pub restored_at: Option<chrono::DateTime<chrono::Utc>>,
2231}
2232impl GraphQLFields for DocumentContent {
2233    type FullType = Self;
2234    fn selection() -> String {
2235        "id createdAt updatedAt archivedAt content contentState restoredAt".into()
2236    }
2237}
2238#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2239#[serde(rename_all = "camelCase", default)]
2240pub struct DocumentContentHistoryPayload {
2241    /// The document content history entries.
2242    pub history: Option<Box<Vec<DocumentContentHistoryType>>>,
2243    /// Whether the operation was successful.
2244    pub success: Option<bool>,
2245}
2246impl GraphQLFields for DocumentContentHistoryPayload {
2247    type FullType = Self;
2248    fn selection() -> String {
2249        "success".into()
2250    }
2251}
2252#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2253#[serde(rename_all = "camelCase", default)]
2254pub struct DocumentContentHistoryType {
2255    /// The UUID of the document content history entry.
2256    pub id: Option<String>,
2257    /// The date when the document content history entry was created.
2258    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2259    /// The date when the document content history snapshot was taken. This can be different than createdAt since the content is captured from its state at the previously known updatedAt timestamp in the case of an update. On document create, these timestamps can be the same.
2260    pub content_data_snapshot_at: Option<chrono::DateTime<chrono::Utc>>,
2261    /// `Internal` The document content as Prosemirror document.
2262    pub content_data: Option<serde_json::Value>,
2263    /// The ID of the author of the change.
2264    pub actor_ids: Option<Vec<String>>,
2265}
2266impl GraphQLFields for DocumentContentHistoryType {
2267    type FullType = Self;
2268    fn selection() -> String {
2269        "id createdAt contentDataSnapshotAt contentData actorIds".into()
2270    }
2271}
2272#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2273#[serde(rename_all = "camelCase", default)]
2274pub struct DocumentEdge {
2275    pub node: Option<Box<Document>>,
2276    /// Used in `before` and `after` args
2277    pub cursor: Option<String>,
2278}
2279impl GraphQLFields for DocumentEdge {
2280    type FullType = Self;
2281    fn selection() -> String {
2282        "cursor".into()
2283    }
2284}
2285/// A document related notification.
2286#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2287#[serde(rename_all = "camelCase", default)]
2288pub struct DocumentNotification {
2289    /// Related comment ID. Null if the notification is not related to a comment.
2290    pub comment_id: Option<String>,
2291    /// Related parent comment ID. Null if the notification is not related to a comment.
2292    pub parent_comment_id: Option<String>,
2293    /// Name of the reaction emoji related to the notification.
2294    pub reaction_emoji: Option<String>,
2295    /// The unique identifier of the entity.
2296    pub id: Option<String>,
2297    /// The time at which the entity was created.
2298    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2299    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2300    /// been updated after creation.
2301    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2302    /// The time at which the entity was archived. Null if the entity has not been archived.
2303    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2304    /// Notification type.
2305    pub r#type: Option<String>,
2306    /// The user that caused the notification.
2307    pub actor: Option<Box<User>>,
2308    /// The external user that caused the notification.
2309    pub external_user_actor: Option<Box<ExternalUser>>,
2310    /// The user that received the notification.
2311    pub user: Option<Box<User>>,
2312    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
2313    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
2314    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
2315    /// reminder has been sent.
2316    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
2317    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
2318    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
2319    /// The time at which a notification was unsnoozed..
2320    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
2321    /// The category of the notification.
2322    pub category: Option<NotificationCategory>,
2323    /// `Internal` URL to the target of the notification.
2324    pub url: Option<String>,
2325    /// `Internal` Inbox URL for the notification.
2326    pub inbox_url: Option<String>,
2327    /// `Internal` Notification title.
2328    pub title: Option<String>,
2329    /// `Internal` Notification subtitle.
2330    pub subtitle: Option<String>,
2331    /// `Internal` If notification actor was Linear.
2332    pub is_linear_actor: Option<bool>,
2333    /// `Internal` Notification avatar URL.
2334    pub actor_avatar_url: Option<String>,
2335    /// `Internal` Notification actor initials if avatar is not available.
2336    pub actor_initials: Option<String>,
2337    /// `Internal` Notification actor initials if avatar is not available.
2338    pub actor_avatar_color: Option<String>,
2339    /// `Internal` Issue's status type for issue notifications.
2340    pub issue_status_type: Option<String>,
2341    /// `Internal` Project update health for new updates.
2342    pub project_update_health: Option<String>,
2343    /// `Internal` Initiative update health for new updates.
2344    pub initiative_update_health: Option<String>,
2345    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
2346    pub grouping_key: Option<String>,
2347    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
2348    pub grouping_priority: Option<f64>,
2349    /// The bot that caused the notification.
2350    pub bot_actor: Option<Box<ActorBot>>,
2351    /// Related document ID.
2352    pub document_id: Option<String>,
2353}
2354impl GraphQLFields for DocumentNotification {
2355    type FullType = Self;
2356    fn selection() -> String {
2357        "commentId parentCommentId reactionEmoji id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority documentId"
2358            .into()
2359    }
2360}
2361#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2362#[serde(rename_all = "camelCase", default)]
2363pub struct DocumentPayload {
2364    /// The identifier of the last sync operation.
2365    pub last_sync_id: Option<f64>,
2366    /// The document that was created or updated.
2367    pub document: Option<Box<Document>>,
2368    /// Whether the operation was successful.
2369    pub success: Option<bool>,
2370}
2371impl GraphQLFields for DocumentPayload {
2372    type FullType = Self;
2373    fn selection() -> String {
2374        "lastSyncId success".into()
2375    }
2376}
2377#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2378#[serde(rename_all = "camelCase", default)]
2379pub struct DocumentSearchPayload {
2380    pub edges: Option<Box<Vec<DocumentSearchResultEdge>>>,
2381    pub nodes: Option<Box<Vec<DocumentSearchResult>>>,
2382    pub page_info: Option<Box<PageInfo>>,
2383    /// Archived entities matching the search term along with all their dependencies.
2384    pub archive_payload: Option<Box<ArchiveResponse>>,
2385    /// Total number of results for query without filters applied.
2386    pub total_count: Option<f64>,
2387}
2388impl GraphQLFields for DocumentSearchPayload {
2389    type FullType = Self;
2390    fn selection() -> String {
2391        "totalCount".into()
2392    }
2393}
2394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2395#[serde(rename_all = "camelCase", default)]
2396pub struct DocumentSearchResult {
2397    /// The unique identifier of the entity.
2398    pub id: Option<String>,
2399    /// The time at which the entity was created.
2400    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2401    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2402    /// been updated after creation.
2403    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2404    /// The time at which the entity was archived. Null if the entity has not been archived.
2405    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2406    /// The document title.
2407    pub title: Option<String>,
2408    /// The icon of the document.
2409    pub icon: Option<String>,
2410    /// The color of the icon.
2411    pub color: Option<String>,
2412    /// The user who created the document.
2413    pub creator: Option<Box<User>>,
2414    /// The user who last updated the document.
2415    pub updated_by: Option<Box<User>>,
2416    /// The project that the document is associated with.
2417    pub project: Option<Box<Project>>,
2418    /// The initiative that the document is associated with.
2419    pub initiative: Option<Box<Initiative>>,
2420    /// `Internal` The team that the document is associated with.
2421    pub team: Option<Box<Team>>,
2422    /// The issue that the document is associated with.
2423    pub issue: Option<Box<Issue>>,
2424    /// `Internal` The release that the document is associated with.
2425    pub release: Option<Box<Release>>,
2426    /// `Internal` The cycle that the document is associated with.
2427    pub cycle: Option<Box<Cycle>>,
2428    /// The document's unique URL slug.
2429    pub slug_id: Option<String>,
2430    /// The last template that was applied to this document.
2431    pub last_applied_template: Option<Box<Template>>,
2432    /// The time at which the document was hidden. Null if the entity has not been hidden.
2433    pub hidden_at: Option<chrono::DateTime<chrono::Utc>>,
2434    /// A flag that indicates whether the document is in the trash bin.
2435    pub trashed: Option<bool>,
2436    /// The order of the item in the resources list.
2437    pub sort_order: Option<f64>,
2438    /// Comments associated with the document.
2439    pub comments: Option<Box<CommentConnection>>,
2440    /// The documents content in markdown format.
2441    pub content: Option<String>,
2442    /// `Internal` The documents content as YJS state.
2443    pub content_state: Option<String>,
2444    /// The ID of the document content associated with the document.
2445    pub document_content_id: Option<String>,
2446    /// The canonical url for the document.
2447    pub url: Option<String>,
2448    /// Metadata related to search result.
2449    pub metadata: Option<serde_json::Value>,
2450}
2451impl GraphQLFields for DocumentSearchResult {
2452    type FullType = Self;
2453    fn selection() -> String {
2454        "id createdAt updatedAt archivedAt title icon color slugId hiddenAt trashed sortOrder content contentState documentContentId url metadata"
2455            .into()
2456    }
2457}
2458#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2459#[serde(rename_all = "camelCase", default)]
2460pub struct DocumentSearchResultEdge {
2461    pub node: Option<Box<DocumentSearchResult>>,
2462    /// Used in `before` and `after` args
2463    pub cursor: Option<String>,
2464}
2465impl GraphQLFields for DocumentSearchResultEdge {
2466    type FullType = Self;
2467    fn selection() -> String {
2468        "cursor".into()
2469    }
2470}
2471/// A general purpose draft. Used for comments, project updates, etc.
2472#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2473#[serde(rename_all = "camelCase", default)]
2474pub struct Draft {
2475    /// The unique identifier of the entity.
2476    pub id: Option<String>,
2477    /// The time at which the entity was created.
2478    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2479    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2480    /// been updated after creation.
2481    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2482    /// The time at which the entity was archived. Null if the entity has not been archived.
2483    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2484    /// The text content as a Prosemirror document.
2485    pub body_data: Option<serde_json::Value>,
2486    /// Additional properties for the draft.
2487    pub data: Option<serde_json::Value>,
2488    /// Whether the draft was autogenerated for the user.
2489    pub is_autogenerated: Option<bool>,
2490    /// `INTERNAL` Whether the draft was ported from a local draft.
2491    pub was_local_draft: Option<bool>,
2492    /// The user who created the draft.
2493    pub user: Option<Box<User>>,
2494    /// The issue for which this is a draft comment.
2495    pub issue: Option<Box<Issue>>,
2496    /// The project for which this is a draft project update.
2497    pub project: Option<Box<Project>>,
2498    /// The project update for which this is a draft comment.
2499    pub project_update: Option<Box<ProjectUpdate>>,
2500    /// The initiative for which this is a draft initiative update.
2501    pub initiative: Option<Box<Initiative>>,
2502    /// The initiative update for which this is a draft comment.
2503    pub initiative_update: Option<Box<InitiativeUpdate>>,
2504    /// The post for which this is a draft comment.
2505    pub post: Option<Box<Post>>,
2506    /// The comment for which this is a draft comment reply.
2507    pub parent_comment: Option<Box<Comment>>,
2508    /// The customer need that this draft is referencing.
2509    pub customer_need: Option<Box<CustomerNeed>>,
2510    /// `INTERNAL` Allows for multiple drafts per entity (currently constrained to Pull Requests).
2511    pub anchor: Option<String>,
2512    /// The team for which this is a draft post.
2513    pub team: Option<Box<Team>>,
2514}
2515impl GraphQLFields for Draft {
2516    type FullType = Self;
2517    fn selection() -> String {
2518        "id createdAt updatedAt archivedAt bodyData data isAutogenerated wasLocalDraft anchor"
2519            .into()
2520    }
2521}
2522#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2523#[serde(rename_all = "camelCase", default)]
2524pub struct DraftConnection {
2525    pub edges: Option<Box<Vec<DraftEdge>>>,
2526    pub nodes: Option<Box<Vec<Draft>>>,
2527    pub page_info: Option<Box<PageInfo>>,
2528}
2529impl GraphQLFields for DraftConnection {
2530    type FullType = Self;
2531    fn selection() -> String {
2532        "".into()
2533    }
2534}
2535#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2536#[serde(rename_all = "camelCase", default)]
2537pub struct DraftEdge {
2538    pub node: Option<Box<Draft>>,
2539    /// Used in `before` and `after` args
2540    pub cursor: Option<String>,
2541}
2542impl GraphQLFields for DraftEdge {
2543    type FullType = Self;
2544    fn selection() -> String {
2545        "cursor".into()
2546    }
2547}
2548/// An email address that can be used for submitting issues.
2549#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2550#[serde(rename_all = "camelCase", default)]
2551pub struct EmailIntakeAddress {
2552    /// The unique identifier of the entity.
2553    pub id: Option<String>,
2554    /// The time at which the entity was created.
2555    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2556    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2557    /// been updated after creation.
2558    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2559    /// The time at which the entity was archived. Null if the entity has not been archived.
2560    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2561    /// Unique email address user name (before @) used for incoming email.
2562    pub address: Option<String>,
2563    /// The type of the email address.
2564    pub r#type: Option<EmailIntakeAddressType>,
2565    /// The email address used to forward emails to the intake address.
2566    pub forwarding_email_address: Option<String>,
2567    /// The name to be used for outgoing emails.
2568    pub sender_name: Option<String>,
2569    /// Whether the email address is enabled.
2570    pub enabled: Option<bool>,
2571    /// Whether email replies are enabled.
2572    pub replies_enabled: Option<bool>,
2573    /// Whether the commenter's name is included in the email replies.
2574    pub use_user_names_in_replies: Option<bool>,
2575    /// The template that the email address is associated with.
2576    pub template: Option<Box<Template>>,
2577    /// The team that the email address is associated with.
2578    pub team: Option<Box<Team>>,
2579    /// The organization that the email address is associated with.
2580    pub organization: Option<Box<Organization>>,
2581    /// The SES domain identity that the email address is associated with.
2582    pub ses_domain_identity: Option<Box<SesDomainIdentity>>,
2583    /// The user who created the email intake address.
2584    pub creator: Option<Box<User>>,
2585    /// Whether issues created from that email address will be turned into customer requests.
2586    pub customer_requests_enabled: Option<bool>,
2587    /// The auto-reply message for issue created. If not set, the default reply will be used.
2588    pub issue_created_auto_reply: Option<String>,
2589    /// Whether the auto-reply for issue created is enabled.
2590    pub issue_created_auto_reply_enabled: Option<bool>,
2591    /// Whether the auto-reply for issue completed is enabled.
2592    pub issue_completed_auto_reply_enabled: Option<bool>,
2593    /// The auto-reply message for issue completed. If not set, the default reply will be used.
2594    pub issue_completed_auto_reply: Option<String>,
2595    /// Whether the auto-reply for issue canceled is enabled.
2596    pub issue_canceled_auto_reply_enabled: Option<bool>,
2597    /// The auto-reply message for issue canceled. If not set, the default reply will be used.
2598    pub issue_canceled_auto_reply: Option<String>,
2599}
2600impl GraphQLFields for EmailIntakeAddress {
2601    type FullType = Self;
2602    fn selection() -> String {
2603        "id createdAt updatedAt archivedAt address type forwardingEmailAddress senderName enabled repliesEnabled useUserNamesInReplies customerRequestsEnabled issueCreatedAutoReply issueCreatedAutoReplyEnabled issueCompletedAutoReplyEnabled issueCompletedAutoReply issueCanceledAutoReplyEnabled issueCanceledAutoReply"
2604            .into()
2605    }
2606}
2607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2608#[serde(rename_all = "camelCase", default)]
2609pub struct EmailIntakeAddressPayload {
2610    /// The identifier of the last sync operation.
2611    pub last_sync_id: Option<f64>,
2612    /// The email address that was created or updated.
2613    pub email_intake_address: Option<Box<EmailIntakeAddress>>,
2614    /// Whether the operation was successful.
2615    pub success: Option<bool>,
2616}
2617impl GraphQLFields for EmailIntakeAddressPayload {
2618    type FullType = Self;
2619    fn selection() -> String {
2620        "lastSyncId success".into()
2621    }
2622}
2623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2624#[serde(rename_all = "camelCase", default)]
2625pub struct EmailUnsubscribePayload {
2626    /// Whether the operation was successful.
2627    pub success: Option<bool>,
2628}
2629impl GraphQLFields for EmailUnsubscribePayload {
2630    type FullType = Self;
2631    fn selection() -> String {
2632        "success".into()
2633    }
2634}
2635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2636#[serde(rename_all = "camelCase", default)]
2637pub struct EmailUserAccountAuthChallengeResponse {
2638    /// Whether the operation was successful.
2639    pub success: Option<bool>,
2640    /// Supported challenge for this user account. Can be either verificationCode or password.
2641    pub auth_type: Option<String>,
2642}
2643impl GraphQLFields for EmailUserAccountAuthChallengeResponse {
2644    type FullType = Self;
2645    fn selection() -> String {
2646        "success authType".into()
2647    }
2648}
2649/// A custom emoji.
2650#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2651#[serde(rename_all = "camelCase", default)]
2652pub struct Emoji {
2653    /// The unique identifier of the entity.
2654    pub id: Option<String>,
2655    /// The time at which the entity was created.
2656    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2657    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2658    /// been updated after creation.
2659    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2660    /// The time at which the entity was archived. Null if the entity has not been archived.
2661    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2662    /// The emoji's name.
2663    pub name: Option<String>,
2664    /// The emoji image URL.
2665    pub url: Option<String>,
2666    /// The source of the emoji.
2667    pub source: Option<String>,
2668    /// The user who created the emoji.
2669    pub creator: Option<Box<User>>,
2670    /// The organization that the emoji belongs to.
2671    pub organization: Option<Box<Organization>>,
2672}
2673impl GraphQLFields for Emoji {
2674    type FullType = Self;
2675    fn selection() -> String {
2676        "id createdAt updatedAt archivedAt name url source".into()
2677    }
2678}
2679#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2680#[serde(rename_all = "camelCase", default)]
2681pub struct EmojiConnection {
2682    pub edges: Option<Box<Vec<EmojiEdge>>>,
2683    pub nodes: Option<Box<Vec<Emoji>>>,
2684    pub page_info: Option<Box<PageInfo>>,
2685}
2686impl GraphQLFields for EmojiConnection {
2687    type FullType = Self;
2688    fn selection() -> String {
2689        "".into()
2690    }
2691}
2692#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2693#[serde(rename_all = "camelCase", default)]
2694pub struct EmojiEdge {
2695    pub node: Option<Box<Emoji>>,
2696    /// Used in `before` and `after` args
2697    pub cursor: Option<String>,
2698}
2699impl GraphQLFields for EmojiEdge {
2700    type FullType = Self;
2701    fn selection() -> String {
2702        "cursor".into()
2703    }
2704}
2705#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2706#[serde(rename_all = "camelCase", default)]
2707pub struct EmojiPayload {
2708    /// The identifier of the last sync operation.
2709    pub last_sync_id: Option<f64>,
2710    /// The emoji that was created.
2711    pub emoji: Option<Box<Emoji>>,
2712    /// Whether the operation was successful.
2713    pub success: Option<bool>,
2714}
2715impl GraphQLFields for EmojiPayload {
2716    type FullType = Self;
2717    fn selection() -> String {
2718        "lastSyncId success".into()
2719    }
2720}
2721/// An external link for an entity like initiative, etc...
2722#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2723#[serde(rename_all = "camelCase", default)]
2724pub struct EntityExternalLink {
2725    /// The unique identifier of the entity.
2726    pub id: Option<String>,
2727    /// The time at which the entity was created.
2728    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2729    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2730    /// been updated after creation.
2731    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2732    /// The time at which the entity was archived. Null if the entity has not been archived.
2733    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2734    /// The link's URL.
2735    pub url: Option<String>,
2736    /// The link's label.
2737    pub label: Option<String>,
2738    /// The order of the item in the resources list.
2739    pub sort_order: Option<f64>,
2740    /// The user who created the link.
2741    pub creator: Option<Box<User>>,
2742    /// The initiative that the link is associated with.
2743    pub initiative: Option<Box<Initiative>>,
2744}
2745impl GraphQLFields for EntityExternalLink {
2746    type FullType = Self;
2747    fn selection() -> String {
2748        "id createdAt updatedAt archivedAt url label sortOrder".into()
2749    }
2750}
2751#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2752#[serde(rename_all = "camelCase", default)]
2753pub struct EntityExternalLinkConnection {
2754    pub edges: Option<Box<Vec<EntityExternalLinkEdge>>>,
2755    pub nodes: Option<Box<Vec<EntityExternalLink>>>,
2756    pub page_info: Option<Box<PageInfo>>,
2757}
2758impl GraphQLFields for EntityExternalLinkConnection {
2759    type FullType = Self;
2760    fn selection() -> String {
2761        "".into()
2762    }
2763}
2764#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2765#[serde(rename_all = "camelCase", default)]
2766pub struct EntityExternalLinkEdge {
2767    pub node: Option<Box<EntityExternalLink>>,
2768    /// Used in `before` and `after` args
2769    pub cursor: Option<String>,
2770}
2771impl GraphQLFields for EntityExternalLinkEdge {
2772    type FullType = Self;
2773    fn selection() -> String {
2774        "cursor".into()
2775    }
2776}
2777#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2778#[serde(rename_all = "camelCase", default)]
2779pub struct EntityExternalLinkPayload {
2780    /// The identifier of the last sync operation.
2781    pub last_sync_id: Option<f64>,
2782    /// The link that was created or updated.
2783    pub entity_external_link: Option<Box<EntityExternalLink>>,
2784    /// Whether the operation was successful.
2785    pub success: Option<bool>,
2786}
2787impl GraphQLFields for EntityExternalLinkPayload {
2788    type FullType = Self;
2789    fn selection() -> String {
2790        "lastSyncId success".into()
2791    }
2792}
2793/// Information about an external entity.
2794#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2795#[serde(rename_all = "camelCase", default)]
2796pub struct ExternalEntityInfo {
2797    /// The id of the external entity.
2798    pub id: Option<String>,
2799    /// The name of the service this entity is synced with.
2800    pub service: Option<ExternalSyncService>,
2801}
2802impl GraphQLFields for ExternalEntityInfo {
2803    type FullType = Self;
2804    fn selection() -> String {
2805        "id service".into()
2806    }
2807}
2808/// Metadata about the external GitHub entity.
2809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2810#[serde(rename_all = "camelCase", default)]
2811pub struct ExternalEntityInfoGithubMetadata {
2812    /// The repository name.
2813    pub repo: Option<String>,
2814    /// The owner of the repository.
2815    pub owner: Option<String>,
2816    /// The number of the issue.
2817    pub number: Option<f64>,
2818}
2819impl GraphQLFields for ExternalEntityInfoGithubMetadata {
2820    type FullType = Self;
2821    fn selection() -> String {
2822        "repo owner number".into()
2823    }
2824}
2825/// Metadata about the external Jira entity.
2826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2827#[serde(rename_all = "camelCase", default)]
2828pub struct ExternalEntityInfoJiraMetadata {
2829    /// The key of the Jira issue.
2830    pub issue_key: Option<String>,
2831    /// The id of the Jira project.
2832    pub project_id: Option<String>,
2833    /// The id of the Jira issue type.
2834    pub issue_type_id: Option<String>,
2835}
2836impl GraphQLFields for ExternalEntityInfoJiraMetadata {
2837    type FullType = Self;
2838    fn selection() -> String {
2839        "issueKey projectId issueTypeId".into()
2840    }
2841}
2842/// Metadata about the external Slack entity.
2843#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2844#[serde(rename_all = "camelCase", default)]
2845pub struct ExternalEntitySlackMetadata {
2846    /// Whether the entity originated from Slack (not Linear).
2847    pub is_from_slack: Option<bool>,
2848    /// The id of the Slack channel.
2849    pub channel_id: Option<String>,
2850    /// The name of the Slack channel.
2851    pub channel_name: Option<String>,
2852    /// The URL of the Slack message.
2853    pub message_url: Option<String>,
2854}
2855impl GraphQLFields for ExternalEntitySlackMetadata {
2856    type FullType = Self;
2857    fn selection() -> String {
2858        "isFromSlack channelId channelName messageUrl".into()
2859    }
2860}
2861/// An external authenticated (e.g., through Slack) user which doesn't have a Linear account, but can create and update entities in Linear from the external system that authenticated them.
2862#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2863#[serde(rename_all = "camelCase", default)]
2864pub struct ExternalUser {
2865    /// The unique identifier of the entity.
2866    pub id: Option<String>,
2867    /// The time at which the entity was created.
2868    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2869    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2870    /// been updated after creation.
2871    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2872    /// The time at which the entity was archived. Null if the entity has not been archived.
2873    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2874    /// The external user's full name.
2875    pub name: Option<String>,
2876    /// The external user's display name. Unique within each organization. Can match the display name of an actual user.
2877    pub display_name: Option<String>,
2878    /// The external user's email address.
2879    pub email: Option<String>,
2880    /// An URL to the external user's avatar image.
2881    pub avatar_url: Option<String>,
2882    /// Organization the external user belongs to.
2883    pub organization: Option<Box<Organization>>,
2884    /// The last time the external user was seen interacting with Linear.
2885    pub last_seen: Option<chrono::DateTime<chrono::Utc>>,
2886}
2887impl GraphQLFields for ExternalUser {
2888    type FullType = Self;
2889    fn selection() -> String {
2890        "id createdAt updatedAt archivedAt name displayName email avatarUrl lastSeen".into()
2891    }
2892}
2893#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2894#[serde(rename_all = "camelCase", default)]
2895pub struct ExternalUserConnection {
2896    pub edges: Option<Box<Vec<ExternalUserEdge>>>,
2897    pub nodes: Option<Box<Vec<ExternalUser>>>,
2898    pub page_info: Option<Box<PageInfo>>,
2899}
2900impl GraphQLFields for ExternalUserConnection {
2901    type FullType = Self;
2902    fn selection() -> String {
2903        "".into()
2904    }
2905}
2906#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2907#[serde(rename_all = "camelCase", default)]
2908pub struct ExternalUserEdge {
2909    pub node: Option<Box<ExternalUser>>,
2910    /// Used in `before` and `after` args
2911    pub cursor: Option<String>,
2912}
2913impl GraphQLFields for ExternalUserEdge {
2914    type FullType = Self;
2915    fn selection() -> String {
2916        "cursor".into()
2917    }
2918}
2919/// A facet. Facets are joins between entities. A facet can tie a custom view to a project, or a a project to a roadmap for example.
2920#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2921#[serde(rename_all = "camelCase", default)]
2922pub struct Facet {
2923    /// The unique identifier of the entity.
2924    pub id: Option<String>,
2925    /// The time at which the entity was created.
2926    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2927    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2928    /// been updated after creation.
2929    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2930    /// The time at which the entity was archived. Null if the entity has not been archived.
2931    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2932    /// The sort order of the facet.
2933    pub sort_order: Option<f64>,
2934    /// The owning organization.
2935    pub source_organization: Option<Box<Organization>>,
2936    /// The owning team.
2937    pub source_team: Option<Box<Team>>,
2938    /// The owning project.
2939    pub source_project: Option<Box<Project>>,
2940    /// The owning initiative.
2941    pub source_initiative: Option<Box<Initiative>>,
2942    /// The owning feed user.
2943    pub source_feed_user: Option<Box<User>>,
2944    /// The owning page.
2945    pub source_page: Option<FacetPageSource>,
2946    /// The targeted custom view.
2947    pub target_custom_view: Option<Box<CustomView>>,
2948}
2949impl GraphQLFields for Facet {
2950    type FullType = Self;
2951    fn selection() -> String {
2952        "id createdAt updatedAt archivedAt sortOrder sourcePage".into()
2953    }
2954}
2955#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2956#[serde(rename_all = "camelCase", default)]
2957pub struct FacetConnection {
2958    pub edges: Option<Box<Vec<FacetEdge>>>,
2959    pub nodes: Option<Box<Vec<Facet>>>,
2960    pub page_info: Option<Box<PageInfo>>,
2961}
2962impl GraphQLFields for FacetConnection {
2963    type FullType = Self;
2964    fn selection() -> String {
2965        "".into()
2966    }
2967}
2968#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2969#[serde(rename_all = "camelCase", default)]
2970pub struct FacetEdge {
2971    pub node: Option<Box<Facet>>,
2972    /// Used in `before` and `after` args
2973    pub cursor: Option<String>,
2974}
2975impl GraphQLFields for FacetEdge {
2976    type FullType = Self;
2977    fn selection() -> String {
2978        "cursor".into()
2979    }
2980}
2981/// User favorites presented in the sidebar.
2982#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2983#[serde(rename_all = "camelCase", default)]
2984pub struct Favorite {
2985    /// The unique identifier of the entity.
2986    pub id: Option<String>,
2987    /// The time at which the entity was created.
2988    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2989    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2990    /// been updated after creation.
2991    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2992    /// The time at which the entity was archived. Null if the entity has not been archived.
2993    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2994    /// The type of the favorite.
2995    pub r#type: Option<String>,
2996    /// The parent folder of the favorite.
2997    pub parent: Option<Box<Favorite>>,
2998    /// The name of the folder. Only applies to favorites of type folder.
2999    pub folder_name: Option<String>,
3000    /// The targeted tab of the project.
3001    pub project_tab: Option<ProjectTab>,
3002    /// The type of favorited predefined view.
3003    pub predefined_view_type: Option<String>,
3004    /// The targeted tab of the initiative.
3005    pub initiative_tab: Option<InitiativeTab>,
3006    /// The owner of the favorite.
3007    pub owner: Option<Box<User>>,
3008    /// The order of the item in the favorites list.
3009    pub sort_order: Option<f64>,
3010    /// Children of the favorite. Only applies to favorites of type folder.
3011    pub children: Option<Box<FavoriteConnection>>,
3012    /// The favorited issue.
3013    pub issue: Option<Box<Issue>>,
3014    /// The favorited project.
3015    pub project: Option<Box<Project>>,
3016    /// `INTERNAL` The favorited facet.
3017    pub facet: Option<Box<Facet>>,
3018    /// `DEPRECATED` The favorited team of the project.
3019    pub project_team: Option<Box<Team>>,
3020    /// The favorited cycle.
3021    pub cycle: Option<Box<Cycle>>,
3022    /// The favorited custom view.
3023    pub custom_view: Option<Box<CustomView>>,
3024    /// The team of the favorited predefined view.
3025    pub predefined_view_team: Option<Box<Team>>,
3026    /// The favorited document.
3027    pub document: Option<Box<Document>>,
3028    /// The favorited initiative.
3029    pub initiative: Option<Box<Initiative>>,
3030    /// The favorited label.
3031    pub label: Option<Box<IssueLabel>>,
3032    /// The favorited project label.
3033    pub project_label: Option<Box<ProjectLabel>>,
3034    /// The favorited user.
3035    pub user: Option<Box<User>>,
3036    /// The favorited customer.
3037    pub customer: Option<Box<Customer>>,
3038    /// The favorited dashboard.
3039    pub dashboard: Option<Box<Dashboard>>,
3040    /// The favorited pull request.
3041    pub pull_request: Option<Box<PullRequest>>,
3042    /// `ALPHA` The favorited release.
3043    pub release: Option<Box<Release>>,
3044    /// `ALPHA` The favorited release pipeline.
3045    pub release_pipeline: Option<Box<ReleasePipeline>>,
3046    /// URL of the favorited entity. Folders return 'null' value.
3047    pub url: Option<String>,
3048    /// `Internal` Favorite's title text (name of the favorite'd object or folder).
3049    pub title: Option<String>,
3050    /// `Internal` Detail text for favorite's `title` (e.g. team's name for a project).
3051    pub detail: Option<String>,
3052    /// `Internal` Returns the color of the favorite's icon. Unavailable for avatars and views with fixed icons (e.g. cycle).
3053    pub color: Option<String>,
3054    /// `Internal` Name of the favorite's icon. Unavailable for standard views, issues, and avatars
3055    pub icon: Option<String>,
3056}
3057impl GraphQLFields for Favorite {
3058    type FullType = Self;
3059    fn selection() -> String {
3060        "id createdAt updatedAt archivedAt type folderName projectTab predefinedViewType initiativeTab sortOrder url title detail color icon"
3061            .into()
3062    }
3063}
3064#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3065#[serde(rename_all = "camelCase", default)]
3066pub struct FavoriteConnection {
3067    pub edges: Option<Box<Vec<FavoriteEdge>>>,
3068    pub nodes: Option<Box<Vec<Favorite>>>,
3069    pub page_info: Option<Box<PageInfo>>,
3070}
3071impl GraphQLFields for FavoriteConnection {
3072    type FullType = Self;
3073    fn selection() -> String {
3074        "".into()
3075    }
3076}
3077#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3078#[serde(rename_all = "camelCase", default)]
3079pub struct FavoriteEdge {
3080    pub node: Option<Box<Favorite>>,
3081    /// Used in `before` and `after` args
3082    pub cursor: Option<String>,
3083}
3084impl GraphQLFields for FavoriteEdge {
3085    type FullType = Self;
3086    fn selection() -> String {
3087        "cursor".into()
3088    }
3089}
3090#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3091#[serde(rename_all = "camelCase", default)]
3092pub struct FavoritePayload {
3093    /// The identifier of the last sync operation.
3094    pub last_sync_id: Option<f64>,
3095    /// The object that was added as a favorite.
3096    pub favorite: Option<Box<Favorite>>,
3097    /// Whether the operation was successful.
3098    pub success: Option<bool>,
3099}
3100impl GraphQLFields for FavoritePayload {
3101    type FullType = Self;
3102    fn selection() -> String {
3103        "lastSyncId success".into()
3104    }
3105}
3106/// `Internal` An item in a users feed.
3107#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3108#[serde(rename_all = "camelCase", default)]
3109pub struct FeedItem {
3110    /// The unique identifier of the entity.
3111    pub id: Option<String>,
3112    /// The time at which the entity was created.
3113    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3114    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3115    /// been updated after creation.
3116    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3117    /// The time at which the entity was archived. Null if the entity has not been archived.
3118    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3119    /// The organization that will see this feed item.
3120    pub organization: Option<Box<Organization>>,
3121    /// The user that will see this feed item.
3122    pub user: Option<Box<User>>,
3123    /// The team that will see this feed item.
3124    pub team: Option<Box<Team>>,
3125    /// The project update that is in the feed.
3126    pub project_update: Option<Box<ProjectUpdate>>,
3127    /// The initiative update that is in the feed.
3128    pub initiative_update: Option<Box<InitiativeUpdate>>,
3129    /// The post that is in the feed.
3130    pub post: Option<Box<Post>>,
3131}
3132impl GraphQLFields for FeedItem {
3133    type FullType = Self;
3134    fn selection() -> String {
3135        "id createdAt updatedAt archivedAt".into()
3136    }
3137}
3138#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3139#[serde(rename_all = "camelCase", default)]
3140pub struct FeedItemConnection {
3141    pub edges: Option<Box<Vec<FeedItemEdge>>>,
3142    pub nodes: Option<Box<Vec<FeedItem>>>,
3143    pub page_info: Option<Box<PageInfo>>,
3144}
3145impl GraphQLFields for FeedItemConnection {
3146    type FullType = Self;
3147    fn selection() -> String {
3148        "".into()
3149    }
3150}
3151#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3152#[serde(rename_all = "camelCase", default)]
3153pub struct FeedItemEdge {
3154    pub node: Option<Box<FeedItem>>,
3155    /// Used in `before` and `after` args
3156    pub cursor: Option<String>,
3157}
3158impl GraphQLFields for FeedItemEdge {
3159    type FullType = Self;
3160    fn selection() -> String {
3161        "cursor".into()
3162    }
3163}
3164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3165#[serde(rename_all = "camelCase", default)]
3166pub struct FetchDataPayload {
3167    /// The fetched data based on the natural language query.
3168    pub data: Option<serde_json::Value>,
3169    /// The GraphQL query used to fetch the data.
3170    pub query: Option<String>,
3171    /// The filters used to fetch the data.
3172    pub filters: Option<serde_json::Value>,
3173    /// Whether the fetch operation was successful.
3174    pub success: Option<bool>,
3175}
3176impl GraphQLFields for FetchDataPayload {
3177    type FullType = Self;
3178    fn selection() -> String {
3179        "data query filters success".into()
3180    }
3181}
3182#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3183#[serde(rename_all = "camelCase", default)]
3184pub struct FileUploadDeletePayload {
3185    /// Whether the operation was successful.
3186    pub success: Option<bool>,
3187}
3188impl GraphQLFields for FileUploadDeletePayload {
3189    type FullType = Self;
3190    fn selection() -> String {
3191        "success".into()
3192    }
3193}
3194#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3195#[serde(rename_all = "camelCase", default)]
3196pub struct FrontAttachmentPayload {
3197    /// The identifier of the last sync operation.
3198    pub last_sync_id: Option<f64>,
3199    /// The issue attachment that was created.
3200    pub attachment: Option<Box<Attachment>>,
3201    /// Whether the operation was successful.
3202    pub success: Option<bool>,
3203}
3204impl GraphQLFields for FrontAttachmentPayload {
3205    type FullType = Self;
3206    fn selection() -> String {
3207        "lastSyncId success".into()
3208    }
3209}
3210/// A trigger that updates the issue status according to Git automations.
3211#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3212#[serde(rename_all = "camelCase", default)]
3213pub struct GitAutomationState {
3214    /// The unique identifier of the entity.
3215    pub id: Option<String>,
3216    /// The time at which the entity was created.
3217    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3218    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3219    /// been updated after creation.
3220    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3221    /// The time at which the entity was archived. Null if the entity has not been archived.
3222    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3223    /// The associated workflow state.
3224    pub state: Option<Box<WorkflowState>>,
3225    /// The team to which this automation state belongs.
3226    pub team: Option<Box<Team>>,
3227    /// The target branch associated to this automation state.
3228    pub target_branch: Option<Box<GitAutomationTargetBranch>>,
3229    /// The event that triggers the automation.
3230    pub event: Option<GitAutomationStates>,
3231    /// `DEPRECATED` The target branch, if null, the automation will be triggered on any branch.
3232    pub branch_pattern: Option<String>,
3233}
3234impl GraphQLFields for GitAutomationState {
3235    type FullType = Self;
3236    fn selection() -> String {
3237        "id createdAt updatedAt archivedAt event branchPattern".into()
3238    }
3239}
3240#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3241#[serde(rename_all = "camelCase", default)]
3242pub struct GitAutomationStateConnection {
3243    pub edges: Option<Box<Vec<GitAutomationStateEdge>>>,
3244    pub nodes: Option<Box<Vec<GitAutomationState>>>,
3245    pub page_info: Option<Box<PageInfo>>,
3246}
3247impl GraphQLFields for GitAutomationStateConnection {
3248    type FullType = Self;
3249    fn selection() -> String {
3250        "".into()
3251    }
3252}
3253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3254#[serde(rename_all = "camelCase", default)]
3255pub struct GitAutomationStateEdge {
3256    pub node: Option<Box<GitAutomationState>>,
3257    /// Used in `before` and `after` args
3258    pub cursor: Option<String>,
3259}
3260impl GraphQLFields for GitAutomationStateEdge {
3261    type FullType = Self;
3262    fn selection() -> String {
3263        "cursor".into()
3264    }
3265}
3266#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3267#[serde(rename_all = "camelCase", default)]
3268pub struct GitAutomationStatePayload {
3269    /// The identifier of the last sync operation.
3270    pub last_sync_id: Option<f64>,
3271    /// The automation state that was created or updated.
3272    pub git_automation_state: Option<Box<GitAutomationState>>,
3273    /// Whether the operation was successful.
3274    pub success: Option<bool>,
3275}
3276impl GraphQLFields for GitAutomationStatePayload {
3277    type FullType = Self;
3278    fn selection() -> String {
3279        "lastSyncId success".into()
3280    }
3281}
3282/// A Git target branch for which there are automations (GitAutomationState).
3283#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3284#[serde(rename_all = "camelCase", default)]
3285pub struct GitAutomationTargetBranch {
3286    /// The unique identifier of the entity.
3287    pub id: Option<String>,
3288    /// The time at which the entity was created.
3289    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3290    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3291    /// been updated after creation.
3292    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3293    /// The time at which the entity was archived. Null if the entity has not been archived.
3294    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3295    /// The team to which this Git target branch automation belongs.
3296    pub team: Option<Box<Team>>,
3297    /// The target branch pattern.
3298    pub branch_pattern: Option<String>,
3299    /// Whether the branch pattern is a regular expression.
3300    pub is_regex: Option<bool>,
3301    /// Automation states associated with the target branch.
3302    pub automation_states: Option<Box<GitAutomationStateConnection>>,
3303}
3304impl GraphQLFields for GitAutomationTargetBranch {
3305    type FullType = Self;
3306    fn selection() -> String {
3307        "id createdAt updatedAt archivedAt branchPattern isRegex".into()
3308    }
3309}
3310#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3311#[serde(rename_all = "camelCase", default)]
3312pub struct GitAutomationTargetBranchPayload {
3313    /// The identifier of the last sync operation.
3314    pub last_sync_id: Option<f64>,
3315    /// The Git target branch automation that was created or updated.
3316    pub target_branch: Option<Box<GitAutomationTargetBranch>>,
3317    /// Whether the operation was successful.
3318    pub success: Option<bool>,
3319}
3320impl GraphQLFields for GitAutomationTargetBranchPayload {
3321    type FullType = Self;
3322    fn selection() -> String {
3323        "lastSyncId success".into()
3324    }
3325}
3326#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3327#[serde(rename_all = "camelCase", default)]
3328pub struct GitHubCommitIntegrationPayload {
3329    /// The identifier of the last sync operation.
3330    pub last_sync_id: Option<f64>,
3331    /// The integration that was created or updated.
3332    pub integration: Option<Box<Integration>>,
3333    /// Whether the operation was successful.
3334    pub success: Option<bool>,
3335    /// The webhook secret to provide to GitHub.
3336    pub webhook_secret: Option<String>,
3337}
3338impl GraphQLFields for GitHubCommitIntegrationPayload {
3339    type FullType = Self;
3340    fn selection() -> String {
3341        "lastSyncId success webhookSecret".into()
3342    }
3343}
3344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3345#[serde(rename_all = "camelCase", default)]
3346pub struct GitHubEnterpriseServerInstallVerificationPayload {
3347    /// Has the install been successful.
3348    pub success: Option<bool>,
3349}
3350impl GraphQLFields for GitHubEnterpriseServerInstallVerificationPayload {
3351    type FullType = Self;
3352    fn selection() -> String {
3353        "success".into()
3354    }
3355}
3356#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3357#[serde(rename_all = "camelCase", default)]
3358pub struct GitHubEnterpriseServerPayload {
3359    /// The identifier of the last sync operation.
3360    pub last_sync_id: Option<f64>,
3361    /// The integration that was created or updated.
3362    pub integration: Option<Box<Integration>>,
3363    /// Whether the operation was successful.
3364    pub success: Option<bool>,
3365    /// The setup address.
3366    pub setup_url: Option<String>,
3367    /// The app install address.
3368    pub install_url: Option<String>,
3369    /// The webhook secret to provide to GitHub.
3370    pub webhook_secret: Option<String>,
3371}
3372impl GraphQLFields for GitHubEnterpriseServerPayload {
3373    type FullType = Self;
3374    fn selection() -> String {
3375        "lastSyncId success setupUrl installUrl webhookSecret".into()
3376    }
3377}
3378#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3379#[serde(rename_all = "camelCase", default)]
3380pub struct GitLabIntegrationCreatePayload {
3381    /// The identifier of the last sync operation.
3382    pub last_sync_id: Option<f64>,
3383    /// The integration that was created or updated.
3384    pub integration: Option<Box<Integration>>,
3385    /// Whether the operation was successful.
3386    pub success: Option<bool>,
3387    /// The webhook secret to provide to GitLab.
3388    pub webhook_secret: Option<String>,
3389    /// Error message if the connection failed.
3390    pub error: Option<String>,
3391    /// Response body from GitLab for debugging.
3392    pub error_response_body: Option<String>,
3393    /// Response headers from GitLab for debugging (JSON stringified).
3394    pub error_response_headers: Option<String>,
3395}
3396impl GraphQLFields for GitLabIntegrationCreatePayload {
3397    type FullType = Self;
3398    fn selection() -> String {
3399        "lastSyncId success webhookSecret error errorResponseBody errorResponseHeaders".into()
3400    }
3401}
3402#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3403#[serde(rename_all = "camelCase", default)]
3404pub struct GitLabTestConnectionPayload {
3405    /// The identifier of the last sync operation.
3406    pub last_sync_id: Option<f64>,
3407    /// The integration that was created or updated.
3408    pub integration: Option<Box<Integration>>,
3409    /// Whether the operation was successful.
3410    pub success: Option<bool>,
3411    /// Error message if the connection test failed.
3412    pub error: Option<String>,
3413    /// Response body from GitLab for debugging.
3414    pub error_response_body: Option<String>,
3415    /// Response headers from GitLab for debugging (JSON stringified).
3416    pub error_response_headers: Option<String>,
3417}
3418impl GraphQLFields for GitLabTestConnectionPayload {
3419    type FullType = Self;
3420    fn selection() -> String {
3421        "lastSyncId success error errorResponseBody errorResponseHeaders".into()
3422    }
3423}
3424/// An identity provider.
3425#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3426#[serde(rename_all = "camelCase", default)]
3427pub struct IdentityProvider {
3428    /// The unique identifier of the entity.
3429    pub id: Option<String>,
3430    /// The time at which the entity was created.
3431    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3432    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3433    /// been updated after creation.
3434    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3435    /// The time at which the entity was archived. Null if the entity has not been archived.
3436    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3437    /// Whether the identity provider is the default identity provider migrated from organization level settings.
3438    pub default_migrated: Option<bool>,
3439    /// The type of identity provider.
3440    pub r#type: Option<IdentityProviderType>,
3441    /// Whether SAML authentication is enabled for organization.
3442    pub saml_enabled: Option<bool>,
3443    /// Sign in endpoint URL for the identity provider.
3444    pub sso_endpoint: Option<String>,
3445    /// Binding method for authentication call. Can be either `post` (default) or `redirect`.
3446    pub sso_binding: Option<String>,
3447    /// The algorithm of the Signing Certificate. Can be one of `sha1`, `sha256` (default), or `sha512`.
3448    pub sso_sign_algo: Option<String>,
3449    /// X.509 Signing Certificate in string form.
3450    pub sso_signing_cert: Option<String>,
3451    /// The issuer's custom entity ID.
3452    pub issuer_entity_id: Option<String>,
3453    /// The service provider (Linear) custom entity ID. Defaults to <https://auth.linear.app/sso>
3454    pub sp_entity_id: Option<String>,
3455    /// The SAML priority used to pick default workspace in SAML SP initiated flow, when same domain is claimed for SAML by multiple workspaces. Lower priority value means higher preference.
3456    pub priority: Option<f64>,
3457    /// Whether SCIM provisioning is enabled for organization.
3458    pub scim_enabled: Option<bool>,
3459    /// `INTERNAL` SCIM owners group push settings.
3460    pub owners_group_push: Option<serde_json::Value>,
3461    /// `INTERNAL` SCIM admins group push settings.
3462    pub admins_group_push: Option<serde_json::Value>,
3463    /// `INTERNAL` SCIM guests group push settings.
3464    pub guests_group_push: Option<serde_json::Value>,
3465    /// Whether users are allowed to change their name and display name even if SCIM is enabled.
3466    pub allow_name_change: Option<bool>,
3467}
3468impl GraphQLFields for IdentityProvider {
3469    type FullType = Self;
3470    fn selection() -> String {
3471        "id createdAt updatedAt archivedAt defaultMigrated type samlEnabled ssoEndpoint ssoBinding ssoSignAlgo ssoSigningCert issuerEntityId spEntityId priority scimEnabled ownersGroupPush adminsGroupPush guestsGroupPush allowNameChange"
3472            .into()
3473    }
3474}
3475#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3476#[serde(rename_all = "camelCase", default)]
3477pub struct ImageUploadFromUrlPayload {
3478    /// The identifier of the last sync operation.
3479    pub last_sync_id: Option<f64>,
3480    /// The URL containing the image.
3481    pub url: Option<String>,
3482    /// Whether the operation was successful.
3483    pub success: Option<bool>,
3484}
3485impl GraphQLFields for ImageUploadFromUrlPayload {
3486    type FullType = Self;
3487    fn selection() -> String {
3488        "lastSyncId url success".into()
3489    }
3490}
3491/// An initiative to group projects.
3492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3493#[serde(rename_all = "camelCase", default)]
3494pub struct Initiative {
3495    /// The unique identifier of the entity.
3496    pub id: Option<String>,
3497    /// The time at which the entity was created.
3498    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3499    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3500    /// been updated after creation.
3501    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3502    /// The time at which the entity was archived. Null if the entity has not been archived.
3503    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3504    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
3505    pub update_reminder_frequency_in_weeks: Option<f64>,
3506    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
3507    pub update_reminder_frequency: Option<f64>,
3508    /// The resolution of the reminder frequency.
3509    pub frequency_resolution: Option<FrequencyResolutionType>,
3510    /// The day at which to prompt for updates.
3511    pub update_reminders_day: Option<Day>,
3512    /// The hour at which to prompt for updates.
3513    pub update_reminders_hour: Option<f64>,
3514    /// The name of the initiative.
3515    pub name: Option<String>,
3516    /// The description of the initiative.
3517    pub description: Option<String>,
3518    /// The organization of the initiative.
3519    pub organization: Option<Box<Organization>>,
3520    /// The user who created the initiative.
3521    pub creator: Option<Box<User>>,
3522    /// The user who owns the initiative.
3523    pub owner: Option<Box<User>>,
3524    /// The initiative's unique URL slug.
3525    pub slug_id: Option<String>,
3526    /// The sort order of the initiative within the organization.
3527    pub sort_order: Option<f64>,
3528    /// The initiative's color.
3529    pub color: Option<String>,
3530    /// The icon of the initiative.
3531    pub icon: Option<String>,
3532    /// A flag that indicates whether the initiative is in the trash bin.
3533    pub trashed: Option<bool>,
3534    /// `Internal` Facets associated with the initiative.
3535    pub facets: Option<Box<Vec<Facet>>>,
3536    /// The estimated completion date of the initiative.
3537    pub target_date: Option<chrono::NaiveDate>,
3538    /// The resolution of the initiative's estimated completion date.
3539    pub target_date_resolution: Option<DateResolutionType>,
3540    /// The status of the initiative. One of Planned, Active, Completed
3541    pub status: Option<InitiativeStatus>,
3542    /// The last initiative update posted for this initiative.
3543    pub last_update: Option<Box<InitiativeUpdate>>,
3544    /// The health of the initiative.
3545    pub health: Option<InitiativeUpdateHealthType>,
3546    /// The time at which the initiative health was updated.
3547    pub health_updated_at: Option<chrono::DateTime<chrono::Utc>>,
3548    /// The time at which the initiative was moved into active status.
3549    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
3550    /// The time at which the initiative was moved into completed status.
3551    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
3552    /// Initiative URL.
3553    pub url: Option<String>,
3554    /// Projects associated with the initiative.
3555    pub projects: Option<Box<ProjectConnection>>,
3556    /// Links associated with the initiative.
3557    pub links: Option<Box<EntityExternalLinkConnection>>,
3558    /// Settings for all integrations associated with that initiative.
3559    pub integrations_settings: Option<Box<IntegrationsSettings>>,
3560    /// History entries associated with the initiative.
3561    pub history: Option<Box<InitiativeHistoryConnection>>,
3562    /// Initiative updates associated with the initiative.
3563    pub initiative_updates: Option<Box<InitiativeUpdateConnection>>,
3564    /// Sub-initiatives associated with the initiative.
3565    pub sub_initiatives: Option<Box<InitiativeConnection>>,
3566    /// Parent initiative associated with the initiative.
3567    pub parent_initiative: Option<Box<Initiative>>,
3568    /// `Internal` Parent initiatives associated with the initiative.
3569    pub parent_initiatives: Option<Box<InitiativeConnection>>,
3570    /// The initiative's content in markdown format.
3571    pub content: Option<String>,
3572    /// The content of the initiative description.
3573    pub document_content: Option<Box<DocumentContent>>,
3574    /// Documents associated with the initiative.
3575    pub documents: Option<Box<DocumentConnection>>,
3576}
3577impl GraphQLFields for Initiative {
3578    type FullType = Self;
3579    fn selection() -> String {
3580        "id createdAt updatedAt archivedAt updateReminderFrequencyInWeeks updateReminderFrequency frequencyResolution updateRemindersDay updateRemindersHour name description slugId sortOrder color icon trashed targetDate targetDateResolution status health healthUpdatedAt startedAt completedAt url content"
3581            .into()
3582    }
3583}
3584/// A generic payload return from entity archive mutations.
3585#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3586#[serde(rename_all = "camelCase", default)]
3587pub struct InitiativeArchivePayload {
3588    /// The identifier of the last sync operation.
3589    pub last_sync_id: Option<f64>,
3590    /// Whether the operation was successful.
3591    pub success: Option<bool>,
3592    /// The archived/unarchived entity. Null if entity was deleted.
3593    pub entity: Option<Box<Initiative>>,
3594}
3595impl GraphQLFields for InitiativeArchivePayload {
3596    type FullType = Self;
3597    fn selection() -> String {
3598        "lastSyncId success".into()
3599    }
3600}
3601#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3602#[serde(rename_all = "camelCase", default)]
3603pub struct InitiativeConnection {
3604    pub edges: Option<Box<Vec<InitiativeEdge>>>,
3605    pub nodes: Option<Box<Vec<Initiative>>>,
3606    pub page_info: Option<Box<PageInfo>>,
3607}
3608impl GraphQLFields for InitiativeConnection {
3609    type FullType = Self;
3610    fn selection() -> String {
3611        "".into()
3612    }
3613}
3614#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3615#[serde(rename_all = "camelCase", default)]
3616pub struct InitiativeEdge {
3617    pub node: Option<Box<Initiative>>,
3618    /// Used in `before` and `after` args
3619    pub cursor: Option<String>,
3620}
3621impl GraphQLFields for InitiativeEdge {
3622    type FullType = Self;
3623    fn selection() -> String {
3624        "cursor".into()
3625    }
3626}
3627/// A initiative history containing relevant change events.
3628#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3629#[serde(rename_all = "camelCase", default)]
3630pub struct InitiativeHistory {
3631    /// The unique identifier of the entity.
3632    pub id: Option<String>,
3633    /// The time at which the entity was created.
3634    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3635    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3636    /// been updated after creation.
3637    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3638    /// The time at which the entity was archived. Null if the entity has not been archived.
3639    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3640    /// The events that happened while recording that history.
3641    pub entries: Option<serde_json::Value>,
3642    /// The initiative that the history is associated with.
3643    pub initiative: Option<Box<Initiative>>,
3644}
3645impl GraphQLFields for InitiativeHistory {
3646    type FullType = Self;
3647    fn selection() -> String {
3648        "id createdAt updatedAt archivedAt entries".into()
3649    }
3650}
3651#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3652#[serde(rename_all = "camelCase", default)]
3653pub struct InitiativeHistoryConnection {
3654    pub edges: Option<Box<Vec<InitiativeHistoryEdge>>>,
3655    pub nodes: Option<Box<Vec<InitiativeHistory>>>,
3656    pub page_info: Option<Box<PageInfo>>,
3657}
3658impl GraphQLFields for InitiativeHistoryConnection {
3659    type FullType = Self;
3660    fn selection() -> String {
3661        "".into()
3662    }
3663}
3664#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3665#[serde(rename_all = "camelCase", default)]
3666pub struct InitiativeHistoryEdge {
3667    pub node: Option<Box<InitiativeHistory>>,
3668    /// Used in `before` and `after` args
3669    pub cursor: Option<String>,
3670}
3671impl GraphQLFields for InitiativeHistoryEdge {
3672    type FullType = Self;
3673    fn selection() -> String {
3674        "cursor".into()
3675    }
3676}
3677/// An initiative related notification.
3678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3679#[serde(rename_all = "camelCase", default)]
3680pub struct InitiativeNotification {
3681    /// Related comment ID. Null if the notification is not related to a comment.
3682    pub comment_id: Option<String>,
3683    /// Related parent comment ID. Null if the notification is not related to a comment.
3684    pub parent_comment_id: Option<String>,
3685    /// Name of the reaction emoji related to the notification.
3686    pub reaction_emoji: Option<String>,
3687    /// The unique identifier of the entity.
3688    pub id: Option<String>,
3689    /// The time at which the entity was created.
3690    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3691    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3692    /// been updated after creation.
3693    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3694    /// The time at which the entity was archived. Null if the entity has not been archived.
3695    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3696    /// Notification type.
3697    pub r#type: Option<String>,
3698    /// The user that caused the notification.
3699    pub actor: Option<Box<User>>,
3700    /// The external user that caused the notification.
3701    pub external_user_actor: Option<Box<ExternalUser>>,
3702    /// The user that received the notification.
3703    pub user: Option<Box<User>>,
3704    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
3705    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
3706    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
3707    /// reminder has been sent.
3708    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
3709    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
3710    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
3711    /// The time at which a notification was unsnoozed..
3712    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
3713    /// The category of the notification.
3714    pub category: Option<NotificationCategory>,
3715    /// `Internal` URL to the target of the notification.
3716    pub url: Option<String>,
3717    /// `Internal` Inbox URL for the notification.
3718    pub inbox_url: Option<String>,
3719    /// `Internal` Notification title.
3720    pub title: Option<String>,
3721    /// `Internal` Notification subtitle.
3722    pub subtitle: Option<String>,
3723    /// `Internal` If notification actor was Linear.
3724    pub is_linear_actor: Option<bool>,
3725    /// `Internal` Notification avatar URL.
3726    pub actor_avatar_url: Option<String>,
3727    /// `Internal` Notification actor initials if avatar is not available.
3728    pub actor_initials: Option<String>,
3729    /// `Internal` Notification actor initials if avatar is not available.
3730    pub actor_avatar_color: Option<String>,
3731    /// `Internal` Issue's status type for issue notifications.
3732    pub issue_status_type: Option<String>,
3733    /// `Internal` Project update health for new updates.
3734    pub project_update_health: Option<String>,
3735    /// `Internal` Initiative update health for new updates.
3736    pub initiative_update_health: Option<String>,
3737    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
3738    pub grouping_key: Option<String>,
3739    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
3740    pub grouping_priority: Option<f64>,
3741    /// The bot that caused the notification.
3742    pub bot_actor: Option<Box<ActorBot>>,
3743    /// Related initiative ID.
3744    pub initiative_id: Option<String>,
3745    /// Related initiative update ID.
3746    pub initiative_update_id: Option<String>,
3747    /// The initiative related to the notification.
3748    pub initiative: Option<Box<Initiative>>,
3749    /// The document related to the notification.
3750    pub document: Option<Box<Document>>,
3751    /// The initiative update related to the notification.
3752    pub initiative_update: Option<Box<InitiativeUpdate>>,
3753    /// The comment related to the notification.
3754    pub comment: Option<Box<Comment>>,
3755    /// The parent comment related to the notification, if a notification is a reply comment notification.
3756    pub parent_comment: Option<Box<Comment>>,
3757}
3758impl GraphQLFields for InitiativeNotification {
3759    type FullType = Self;
3760    fn selection() -> String {
3761        "commentId parentCommentId reactionEmoji id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority initiativeId initiativeUpdateId"
3762            .into()
3763    }
3764}
3765/// An initiative notification subscription.
3766#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3767#[serde(rename_all = "camelCase", default)]
3768pub struct InitiativeNotificationSubscription {
3769    /// The unique identifier of the entity.
3770    pub id: Option<String>,
3771    /// The time at which the entity was created.
3772    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3773    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3774    /// been updated after creation.
3775    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3776    /// The time at which the entity was archived. Null if the entity has not been archived.
3777    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3778    /// The user that subscribed to receive notifications.
3779    pub subscriber: Option<Box<User>>,
3780    /// The customer associated with the notification subscription.
3781    pub customer: Option<Box<Customer>>,
3782    /// The contextual custom view associated with the notification subscription.
3783    pub custom_view: Option<Box<CustomView>>,
3784    /// The contextual cycle view associated with the notification subscription.
3785    pub cycle: Option<Box<Cycle>>,
3786    /// The contextual label view associated with the notification subscription.
3787    pub label: Option<Box<IssueLabel>>,
3788    /// The contextual project view associated with the notification subscription.
3789    pub project: Option<Box<Project>>,
3790    /// The initiative subscribed to.
3791    pub initiative: Option<Box<Initiative>>,
3792    /// The team associated with the notification subscription.
3793    pub team: Option<Box<Team>>,
3794    /// The user view associated with the notification subscription.
3795    pub user: Option<Box<User>>,
3796    /// The type of view to which the notification subscription context is associated with.
3797    pub context_view_type: Option<ContextViewType>,
3798    /// The type of user view to which the notification subscription context is associated with.
3799    pub user_context_view_type: Option<UserContextViewType>,
3800    /// Whether the subscription is active or not.
3801    pub active: Option<bool>,
3802    /// The type of subscription.
3803    pub notification_subscription_types: Option<Vec<String>>,
3804}
3805impl GraphQLFields for InitiativeNotificationSubscription {
3806    type FullType = Self;
3807    fn selection() -> String {
3808        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
3809            .into()
3810    }
3811}
3812/// The payload returned by the initiative mutations.
3813#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3814#[serde(rename_all = "camelCase", default)]
3815pub struct InitiativePayload {
3816    /// The identifier of the last sync operation.
3817    pub last_sync_id: Option<f64>,
3818    /// The initiative that was created or updated.
3819    pub initiative: Option<Box<Initiative>>,
3820    /// Whether the operation was successful.
3821    pub success: Option<bool>,
3822}
3823impl GraphQLFields for InitiativePayload {
3824    type FullType = Self;
3825    fn selection() -> String {
3826        "lastSyncId success".into()
3827    }
3828}
3829/// A relation representing the dependency between two initiatives.
3830#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3831#[serde(rename_all = "camelCase", default)]
3832pub struct InitiativeRelation {
3833    /// The unique identifier of the entity.
3834    pub id: Option<String>,
3835    /// The time at which the entity was created.
3836    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3837    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3838    /// been updated after creation.
3839    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3840    /// The time at which the entity was archived. Null if the entity has not been archived.
3841    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3842    /// The parent initiative.
3843    pub initiative: Option<Box<Initiative>>,
3844    /// The child initiative.
3845    pub related_initiative: Option<Box<Initiative>>,
3846    /// The last user who created or modified the relation.
3847    pub user: Option<Box<User>>,
3848    /// The sort order of the relation within the initiative.
3849    pub sort_order: Option<f64>,
3850}
3851impl GraphQLFields for InitiativeRelation {
3852    type FullType = Self;
3853    fn selection() -> String {
3854        "id createdAt updatedAt archivedAt sortOrder".into()
3855    }
3856}
3857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3858#[serde(rename_all = "camelCase", default)]
3859pub struct InitiativeRelationConnection {
3860    pub edges: Option<Box<Vec<InitiativeRelationEdge>>>,
3861    pub nodes: Option<Box<Vec<InitiativeRelation>>>,
3862    pub page_info: Option<Box<PageInfo>>,
3863}
3864impl GraphQLFields for InitiativeRelationConnection {
3865    type FullType = Self;
3866    fn selection() -> String {
3867        "".into()
3868    }
3869}
3870#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3871#[serde(rename_all = "camelCase", default)]
3872pub struct InitiativeRelationEdge {
3873    pub node: Option<Box<InitiativeRelation>>,
3874    /// Used in `before` and `after` args
3875    pub cursor: Option<String>,
3876}
3877impl GraphQLFields for InitiativeRelationEdge {
3878    type FullType = Self;
3879    fn selection() -> String {
3880        "cursor".into()
3881    }
3882}
3883#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3884#[serde(rename_all = "camelCase", default)]
3885pub struct InitiativeRelationPayload {
3886    /// The identifier of the last sync operation.
3887    pub last_sync_id: Option<f64>,
3888    /// The initiative relation that was created or updated.
3889    pub initiative_relation: Option<Box<InitiativeRelation>>,
3890    /// Whether the operation was successful.
3891    pub success: Option<bool>,
3892}
3893impl GraphQLFields for InitiativeRelationPayload {
3894    type FullType = Self;
3895    fn selection() -> String {
3896        "lastSyncId success".into()
3897    }
3898}
3899/// Join table between projects and initiatives.
3900#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3901#[serde(rename_all = "camelCase", default)]
3902pub struct InitiativeToProject {
3903    /// The unique identifier of the entity.
3904    pub id: Option<String>,
3905    /// The time at which the entity was created.
3906    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3907    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3908    /// been updated after creation.
3909    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3910    /// The time at which the entity was archived. Null if the entity has not been archived.
3911    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3912    /// The project that the initiative is associated with.
3913    pub project: Option<Box<Project>>,
3914    /// The initiative that the project is associated with.
3915    pub initiative: Option<Box<Initiative>>,
3916    /// The sort order of the project within the initiative.
3917    pub sort_order: Option<String>,
3918}
3919impl GraphQLFields for InitiativeToProject {
3920    type FullType = Self;
3921    fn selection() -> String {
3922        "id createdAt updatedAt archivedAt sortOrder".into()
3923    }
3924}
3925#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3926#[serde(rename_all = "camelCase", default)]
3927pub struct InitiativeToProjectConnection {
3928    pub edges: Option<Box<Vec<InitiativeToProjectEdge>>>,
3929    pub nodes: Option<Box<Vec<InitiativeToProject>>>,
3930    pub page_info: Option<Box<PageInfo>>,
3931}
3932impl GraphQLFields for InitiativeToProjectConnection {
3933    type FullType = Self;
3934    fn selection() -> String {
3935        "".into()
3936    }
3937}
3938#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3939#[serde(rename_all = "camelCase", default)]
3940pub struct InitiativeToProjectEdge {
3941    pub node: Option<Box<InitiativeToProject>>,
3942    /// Used in `before` and `after` args
3943    pub cursor: Option<String>,
3944}
3945impl GraphQLFields for InitiativeToProjectEdge {
3946    type FullType = Self;
3947    fn selection() -> String {
3948        "cursor".into()
3949    }
3950}
3951/// The result of a initiativeToProject mutation.
3952#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3953#[serde(rename_all = "camelCase", default)]
3954pub struct InitiativeToProjectPayload {
3955    /// The identifier of the last sync operation.
3956    pub last_sync_id: Option<f64>,
3957    /// The initiativeToProject that was created or updated.
3958    pub initiative_to_project: Option<Box<InitiativeToProject>>,
3959    /// Whether the operation was successful.
3960    pub success: Option<bool>,
3961}
3962impl GraphQLFields for InitiativeToProjectPayload {
3963    type FullType = Self;
3964    fn selection() -> String {
3965        "lastSyncId success".into()
3966    }
3967}
3968/// An initiative update.
3969#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3970#[serde(rename_all = "camelCase", default)]
3971pub struct InitiativeUpdate {
3972    /// The unique identifier of the entity.
3973    pub id: Option<String>,
3974    /// The time at which the entity was created.
3975    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3976    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3977    /// been updated after creation.
3978    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3979    /// The time at which the entity was archived. Null if the entity has not been archived.
3980    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3981    /// The update content in markdown format.
3982    pub body: Option<String>,
3983    /// The time the update was edited.
3984    pub edited_at: Option<chrono::DateTime<chrono::Utc>>,
3985    /// Emoji reaction summary, grouped by emoji type.
3986    pub reaction_data: Option<serde_json::Value>,
3987    /// `Internal` The content of the update as a Prosemirror document.
3988    pub body_data: Option<String>,
3989    /// The update's unique URL slug.
3990    pub slug_id: Option<String>,
3991    /// The initiative that the update is associated with.
3992    pub initiative: Option<Box<Initiative>>,
3993    /// The user who wrote the update.
3994    pub user: Option<Box<User>>,
3995    /// The health at the time of the update.
3996    pub health: Option<InitiativeUpdateHealthType>,
3997    /// `Internal` Serialized JSON representing current state of the initiative properties when posting the initiative update.
3998    pub info_snapshot: Option<serde_json::Value>,
3999    /// Whether initiative update diff should be hidden.
4000    pub is_diff_hidden: Option<bool>,
4001    /// The URL to the initiative update.
4002    pub url: Option<String>,
4003    /// Whether the initiative update is stale.
4004    pub is_stale: Option<bool>,
4005    /// The diff between the current update and the previous one.
4006    pub diff: Option<serde_json::Value>,
4007    /// The diff between the current update and the previous one, formatted as markdown.
4008    pub diff_markdown: Option<String>,
4009    /// Reactions associated with the initiative update.
4010    pub reactions: Option<Box<Vec<Reaction>>>,
4011    /// Comments associated with the initiative update.
4012    pub comments: Option<Box<CommentConnection>>,
4013    /// Number of comments associated with the initiative update.
4014    pub comment_count: Option<i64>,
4015}
4016impl GraphQLFields for InitiativeUpdate {
4017    type FullType = Self;
4018    fn selection() -> String {
4019        "id createdAt updatedAt archivedAt body editedAt reactionData bodyData slugId health infoSnapshot isDiffHidden url isStale diff diffMarkdown commentCount"
4020            .into()
4021    }
4022}
4023/// A generic payload return from entity archive mutations.
4024#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4025#[serde(rename_all = "camelCase", default)]
4026pub struct InitiativeUpdateArchivePayload {
4027    /// The identifier of the last sync operation.
4028    pub last_sync_id: Option<f64>,
4029    /// Whether the operation was successful.
4030    pub success: Option<bool>,
4031    /// The archived/unarchived entity. Null if entity was deleted.
4032    pub entity: Option<Box<InitiativeUpdate>>,
4033}
4034impl GraphQLFields for InitiativeUpdateArchivePayload {
4035    type FullType = Self;
4036    fn selection() -> String {
4037        "lastSyncId success".into()
4038    }
4039}
4040#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4041#[serde(rename_all = "camelCase", default)]
4042pub struct InitiativeUpdateConnection {
4043    pub edges: Option<Box<Vec<InitiativeUpdateEdge>>>,
4044    pub nodes: Option<Box<Vec<InitiativeUpdate>>>,
4045    pub page_info: Option<Box<PageInfo>>,
4046}
4047impl GraphQLFields for InitiativeUpdateConnection {
4048    type FullType = Self;
4049    fn selection() -> String {
4050        "".into()
4051    }
4052}
4053#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4054#[serde(rename_all = "camelCase", default)]
4055pub struct InitiativeUpdateEdge {
4056    pub node: Option<Box<InitiativeUpdate>>,
4057    /// Used in `before` and `after` args
4058    pub cursor: Option<String>,
4059}
4060impl GraphQLFields for InitiativeUpdateEdge {
4061    type FullType = Self;
4062    fn selection() -> String {
4063        "cursor".into()
4064    }
4065}
4066#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4067#[serde(rename_all = "camelCase", default)]
4068pub struct InitiativeUpdatePayload {
4069    /// The identifier of the last sync operation.
4070    pub last_sync_id: Option<f64>,
4071    /// The initiative update that was created.
4072    pub initiative_update: Option<Box<InitiativeUpdate>>,
4073    /// Whether the operation was successful.
4074    pub success: Option<bool>,
4075}
4076impl GraphQLFields for InitiativeUpdatePayload {
4077    type FullType = Self;
4078    fn selection() -> String {
4079        "lastSyncId success".into()
4080    }
4081}
4082#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4083#[serde(rename_all = "camelCase", default)]
4084pub struct InitiativeUpdateReminderPayload {
4085    /// The identifier of the last sync operation.
4086    pub last_sync_id: Option<f64>,
4087    /// Whether the operation was successful.
4088    pub success: Option<bool>,
4089}
4090impl GraphQLFields for InitiativeUpdateReminderPayload {
4091    type FullType = Self;
4092    fn selection() -> String {
4093        "lastSyncId success".into()
4094    }
4095}
4096/// An integration with an external service.
4097#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4098#[serde(rename_all = "camelCase", default)]
4099pub struct Integration {
4100    /// The unique identifier of the entity.
4101    pub id: Option<String>,
4102    /// The time at which the entity was created.
4103    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4104    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4105    /// been updated after creation.
4106    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4107    /// The time at which the entity was archived. Null if the entity has not been archived.
4108    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4109    /// The integration's type.
4110    pub service: Option<String>,
4111    /// The organization that the integration is associated with.
4112    pub organization: Option<Box<Organization>>,
4113    /// The team that the integration is associated with.
4114    pub team: Option<Box<Team>>,
4115    /// The user that added the integration.
4116    pub creator: Option<Box<User>>,
4117}
4118impl GraphQLFields for Integration {
4119    type FullType = Self;
4120    fn selection() -> String {
4121        "id createdAt updatedAt archivedAt service".into()
4122    }
4123}
4124#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4125#[serde(rename_all = "camelCase", default)]
4126pub struct IntegrationConnection {
4127    pub edges: Option<Box<Vec<IntegrationEdge>>>,
4128    pub nodes: Option<Box<Vec<Integration>>>,
4129    pub page_info: Option<Box<PageInfo>>,
4130}
4131impl GraphQLFields for IntegrationConnection {
4132    type FullType = Self;
4133    fn selection() -> String {
4134        "".into()
4135    }
4136}
4137#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4138#[serde(rename_all = "camelCase", default)]
4139pub struct IntegrationEdge {
4140    pub node: Option<Box<Integration>>,
4141    /// Used in `before` and `after` args
4142    pub cursor: Option<String>,
4143}
4144impl GraphQLFields for IntegrationEdge {
4145    type FullType = Self;
4146    fn selection() -> String {
4147        "cursor".into()
4148    }
4149}
4150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4151#[serde(rename_all = "camelCase", default)]
4152pub struct IntegrationHasScopesPayload {
4153    /// Whether the integration has the required scopes.
4154    pub has_all_scopes: Option<bool>,
4155    /// The missing scopes.
4156    pub missing_scopes: Option<Vec<String>>,
4157}
4158impl GraphQLFields for IntegrationHasScopesPayload {
4159    type FullType = Self;
4160    fn selection() -> String {
4161        "hasAllScopes missingScopes".into()
4162    }
4163}
4164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4165#[serde(rename_all = "camelCase", default)]
4166pub struct IntegrationPayload {
4167    /// The identifier of the last sync operation.
4168    pub last_sync_id: Option<f64>,
4169    /// The integration that was created or updated.
4170    pub integration: Option<Box<Integration>>,
4171    /// Whether the operation was successful.
4172    pub success: Option<bool>,
4173}
4174impl GraphQLFields for IntegrationPayload {
4175    type FullType = Self;
4176    fn selection() -> String {
4177        "lastSyncId success".into()
4178    }
4179}
4180#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4181#[serde(rename_all = "camelCase", default)]
4182pub struct IntegrationRequestPayload {
4183    /// Whether the operation was successful.
4184    pub success: Option<bool>,
4185}
4186impl GraphQLFields for IntegrationRequestPayload {
4187    type FullType = Self;
4188    fn selection() -> String {
4189        "success".into()
4190    }
4191}
4192#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4193#[serde(rename_all = "camelCase", default)]
4194pub struct IntegrationSlackWorkspaceNamePayload {
4195    /// The current name of the Slack workspace.
4196    pub name: Option<String>,
4197    /// Whether the operation was successful.
4198    pub success: Option<bool>,
4199}
4200impl GraphQLFields for IntegrationSlackWorkspaceNamePayload {
4201    type FullType = Self;
4202    fn selection() -> String {
4203        "name success".into()
4204    }
4205}
4206/// Join table between templates and integrations.
4207#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4208#[serde(rename_all = "camelCase", default)]
4209pub struct IntegrationTemplate {
4210    /// The unique identifier of the entity.
4211    pub id: Option<String>,
4212    /// The time at which the entity was created.
4213    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4214    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4215    /// been updated after creation.
4216    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4217    /// The time at which the entity was archived. Null if the entity has not been archived.
4218    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4219    /// The template that the integration is associated with.
4220    pub template: Option<Box<Template>>,
4221    /// The integration that the template is associated with.
4222    pub integration: Option<Box<Integration>>,
4223    /// ID of the foreign entity in the external integration this template is for, e.g., Slack channel ID.
4224    pub foreign_entity_id: Option<String>,
4225}
4226impl GraphQLFields for IntegrationTemplate {
4227    type FullType = Self;
4228    fn selection() -> String {
4229        "id createdAt updatedAt archivedAt foreignEntityId".into()
4230    }
4231}
4232#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4233#[serde(rename_all = "camelCase", default)]
4234pub struct IntegrationTemplateConnection {
4235    pub edges: Option<Box<Vec<IntegrationTemplateEdge>>>,
4236    pub nodes: Option<Box<Vec<IntegrationTemplate>>>,
4237    pub page_info: Option<Box<PageInfo>>,
4238}
4239impl GraphQLFields for IntegrationTemplateConnection {
4240    type FullType = Self;
4241    fn selection() -> String {
4242        "".into()
4243    }
4244}
4245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4246#[serde(rename_all = "camelCase", default)]
4247pub struct IntegrationTemplateEdge {
4248    pub node: Option<Box<IntegrationTemplate>>,
4249    /// Used in `before` and `after` args
4250    pub cursor: Option<String>,
4251}
4252impl GraphQLFields for IntegrationTemplateEdge {
4253    type FullType = Self;
4254    fn selection() -> String {
4255        "cursor".into()
4256    }
4257}
4258#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4259#[serde(rename_all = "camelCase", default)]
4260pub struct IntegrationTemplatePayload {
4261    /// The identifier of the last sync operation.
4262    pub last_sync_id: Option<f64>,
4263    /// The IntegrationTemplate that was created or updated.
4264    pub integration_template: Option<Box<IntegrationTemplate>>,
4265    /// Whether the operation was successful.
4266    pub success: Option<bool>,
4267}
4268impl GraphQLFields for IntegrationTemplatePayload {
4269    type FullType = Self;
4270    fn selection() -> String {
4271        "lastSyncId success".into()
4272    }
4273}
4274/// The configuration of all integrations for different entities.
4275#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4276#[serde(rename_all = "camelCase", default)]
4277pub struct IntegrationsSettings {
4278    /// The unique identifier of the entity.
4279    pub id: Option<String>,
4280    /// The time at which the entity was created.
4281    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4282    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4283    /// been updated after creation.
4284    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4285    /// The time at which the entity was archived. Null if the entity has not been archived.
4286    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4287    /// The type of view to which the integration settings context is associated with.
4288    pub context_view_type: Option<ContextViewType>,
4289    /// Whether to send a Slack message when a new issue is created for the project or the team.
4290    pub slack_issue_created: Option<bool>,
4291    /// Whether to send a Slack message when a comment is created on any of the project or team's issues.
4292    pub slack_issue_new_comment: Option<bool>,
4293    /// Whether to send a Slack message when any of the project or team's issues change to completed or cancelled.
4294    pub slack_issue_status_changed_done: Option<bool>,
4295    /// Whether to send a Slack message when an issue is added to the custom view.
4296    pub slack_issue_added_to_view: Option<bool>,
4297    /// Whether to send a Slack message when any of the project or team's issues has a change in status.
4298    pub slack_issue_status_changed_all: Option<bool>,
4299    /// Whether to send a Slack message when a project update is created.
4300    pub slack_project_update_created: Option<bool>,
4301    /// Whether to send a new project update to team Slack channels.
4302    pub slack_project_update_created_to_team: Option<bool>,
4303    /// Whether to send a new project update to workspace Slack channel.
4304    pub slack_project_update_created_to_workspace: Option<bool>,
4305    /// Whether to send a Slack message when a initiate update is created.
4306    pub slack_initiative_update_created: Option<bool>,
4307    /// Whether to send a Slack message when a new issue is added to triage.
4308    pub slack_issue_added_to_triage: Option<bool>,
4309    /// Whether to send a Slack message when an SLA is at high risk.
4310    pub slack_issue_sla_high_risk: Option<bool>,
4311    /// Whether to send a Slack message when an SLA is breached.
4312    pub slack_issue_sla_breached: Option<bool>,
4313    /// Team which those settings apply to.
4314    pub team: Option<Box<Team>>,
4315    /// Project which those settings apply to.
4316    pub project: Option<Box<Project>>,
4317    /// Initiative which those settings apply to.
4318    pub initiative: Option<Box<Initiative>>,
4319}
4320impl GraphQLFields for IntegrationsSettings {
4321    type FullType = Self;
4322    fn selection() -> String {
4323        "id createdAt updatedAt archivedAt contextViewType slackIssueCreated slackIssueNewComment slackIssueStatusChangedDone slackIssueAddedToView slackIssueStatusChangedAll slackProjectUpdateCreated slackProjectUpdateCreatedToTeam slackProjectUpdateCreatedToWorkspace slackInitiativeUpdateCreated slackIssueAddedToTriage slackIssueSlaHighRisk slackIssueSlaBreached"
4324            .into()
4325    }
4326}
4327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4328#[serde(rename_all = "camelCase", default)]
4329pub struct IntegrationsSettingsPayload {
4330    /// The identifier of the last sync operation.
4331    pub last_sync_id: Option<f64>,
4332    /// The settings that were created or updated.
4333    pub integrations_settings: Option<Box<IntegrationsSettings>>,
4334    /// Whether the operation was successful.
4335    pub success: Option<bool>,
4336}
4337impl GraphQLFields for IntegrationsSettingsPayload {
4338    type FullType = Self;
4339    fn selection() -> String {
4340        "lastSyncId success".into()
4341    }
4342}
4343/// An issue.
4344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4345#[serde(rename_all = "camelCase", default)]
4346pub struct Issue {
4347    /// The unique identifier of the entity.
4348    pub id: Option<String>,
4349    /// The time at which the entity was created.
4350    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4351    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4352    /// been updated after creation.
4353    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4354    /// The time at which the entity was archived. Null if the entity has not been archived.
4355    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4356    /// The issue's unique number.
4357    pub number: Option<f64>,
4358    /// The issue's title.
4359    pub title: Option<String>,
4360    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
4361    pub priority: Option<f64>,
4362    /// The estimate of the complexity of the issue..
4363    pub estimate: Option<f64>,
4364    /// The order of the item in its column on the board.
4365    pub board_order: Option<f64>,
4366    /// The order of the item in relation to other items in the organization.
4367    pub sort_order: Option<f64>,
4368    /// The order of the item in relation to other items in the organization, when ordered by priority.
4369    pub priority_sort_order: Option<f64>,
4370    /// The time at which the issue was moved into started state.
4371    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
4372    /// The time at which the issue was moved into completed state.
4373    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
4374    /// The time at which the issue entered triage.
4375    pub started_triage_at: Option<chrono::DateTime<chrono::Utc>>,
4376    /// The time at which the issue left triage.
4377    pub triaged_at: Option<chrono::DateTime<chrono::Utc>>,
4378    /// The time at which the issue was moved into canceled state.
4379    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
4380    /// The time at which the issue was automatically closed by the auto pruning process.
4381    pub auto_closed_at: Option<chrono::DateTime<chrono::Utc>>,
4382    /// The time at which the issue was automatically archived by the auto pruning process.
4383    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
4384    /// The date at which the issue is due.
4385    pub due_date: Option<chrono::NaiveDate>,
4386    /// The time at which the issue's SLA began.
4387    pub sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
4388    /// The time at which the issue's SLA will enter medium risk state.
4389    pub sla_medium_risk_at: Option<chrono::DateTime<chrono::Utc>>,
4390    /// The time at which the issue's SLA will enter high risk state.
4391    pub sla_high_risk_at: Option<chrono::DateTime<chrono::Utc>>,
4392    /// The time at which the issue's SLA will breach.
4393    pub sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
4394    /// The type of SLA set on the issue. Calendar days or business days.
4395    pub sla_type: Option<String>,
4396    /// The time at which the issue was added to a project.
4397    pub added_to_project_at: Option<chrono::DateTime<chrono::Utc>>,
4398    /// The time at which the issue was added to a cycle.
4399    pub added_to_cycle_at: Option<chrono::DateTime<chrono::Utc>>,
4400    /// The time at which the issue was added to a team.
4401    pub added_to_team_at: Option<chrono::DateTime<chrono::Utc>>,
4402    /// A flag that indicates whether the issue is in the trash bin.
4403    pub trashed: Option<bool>,
4404    /// The time until an issue will be snoozed in Triage view.
4405    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
4406    /// `Internal` The time at which the most recent suggestions for this issue were generated.
4407    pub suggestions_generated_at: Option<chrono::DateTime<chrono::Utc>>,
4408    /// `Internal` The activity summary information for this issue.
4409    pub activity_summary: Option<serde_json::Value>,
4410    /// `Internal` AI-generated activity summary for this issue.
4411    pub summary: Option<Box<Summary>>,
4412    /// Id of the labels associated with this issue.
4413    pub label_ids: Option<Vec<String>>,
4414    /// The team that the issue is associated with.
4415    pub team: Option<Box<Team>>,
4416    /// The cycle that the issue is associated with.
4417    pub cycle: Option<Box<Cycle>>,
4418    /// The project that the issue is associated with.
4419    pub project: Option<Box<Project>>,
4420    /// The projectMilestone that the issue is associated with.
4421    pub project_milestone: Option<Box<ProjectMilestone>>,
4422    /// The last template that was applied to this issue.
4423    pub last_applied_template: Option<Box<Template>>,
4424    /// The recurring issue template that created this issue.
4425    pub recurring_issue_template: Option<Box<Template>>,
4426    /// Previous identifiers of the issue if it has been moved between teams.
4427    pub previous_identifiers: Option<Vec<String>>,
4428    /// The user who created the issue.
4429    pub creator: Option<Box<User>>,
4430    /// The external user who created the issue.
4431    pub external_user_creator: Option<Box<ExternalUser>>,
4432    /// The user to whom the issue is assigned to.
4433    pub assignee: Option<Box<User>>,
4434    /// The agent user that is delegated to work on this issue.
4435    pub delegate: Option<Box<User>>,
4436    /// The user who snoozed the issue.
4437    pub snoozed_by: Option<Box<User>>,
4438    /// The workflow state that the issue is associated with.
4439    pub state: Option<Box<WorkflowState>>,
4440    /// The order of the item in the sub-issue list. Only set if the issue has a parent.
4441    pub sub_issue_sort_order: Option<f64>,
4442    /// Emoji reaction summary, grouped by emoji type.
4443    pub reaction_data: Option<serde_json::Value>,
4444    /// Label for the priority.
4445    pub priority_label: Option<String>,
4446    /// The comment that this issue was created from.
4447    pub source_comment: Option<Box<Comment>>,
4448    /// Integration type that created this issue, if applicable.
4449    pub integration_source_type: Option<IntegrationService>,
4450    /// Documents associated with the issue.
4451    pub documents: Option<Box<DocumentConnection>>,
4452    /// The bot that created the issue, if applicable.
4453    pub bot_actor: Option<Box<ActorBot>>,
4454    /// The users favorite associated with this issue.
4455    pub favorite: Option<Box<Favorite>>,
4456    /// Issue's human readable identifier (e.g. ENG-123).
4457    pub identifier: Option<String>,
4458    /// Issue URL.
4459    pub url: Option<String>,
4460    /// Suggested branch name for the issue.
4461    pub branch_name: Option<String>,
4462    /// Returns the number of Attachment resources which are created by customer support ticketing systems (e.g. Zendesk).
4463    pub customer_ticket_count: Option<i64>,
4464    /// Users who are subscribed to the issue.
4465    pub subscribers: Option<Box<UserConnection>>,
4466    /// The parent of the issue.
4467    pub parent: Option<Box<Issue>>,
4468    /// Children of the issue.
4469    pub children: Option<Box<IssueConnection>>,
4470    /// Comments associated with the issue.
4471    pub comments: Option<Box<CommentConnection>>,
4472    /// History entries associated with the issue.
4473    pub history: Option<Box<IssueHistoryConnection>>,
4474    /// Labels associated with this issue.
4475    pub labels: Option<Box<IssueLabelConnection>>,
4476    /// Relations associated with this issue.
4477    pub relations: Option<Box<IssueRelationConnection>>,
4478    /// Inverse relations associated with this issue.
4479    pub inverse_relations: Option<Box<IssueRelationConnection>>,
4480    /// Attachments associated with the issue.
4481    pub attachments: Option<Box<AttachmentConnection>>,
4482    /// Attachments previously associated with the issue before being moved to another issue.
4483    pub former_attachments: Option<Box<AttachmentConnection>>,
4484    /// The issue's description in markdown format.
4485    pub description: Option<String>,
4486    /// `Internal` The issue's description content as YJS state.
4487    pub description_state: Option<String>,
4488    /// `ALPHA` The document content representing this issue description.
4489    pub document_content: Option<Box<DocumentContent>>,
4490    /// Reactions associated with the issue.
4491    pub reactions: Option<Box<Vec<Reaction>>>,
4492    /// Customer needs associated with the issue.
4493    pub needs: Option<Box<CustomerNeedConnection>>,
4494    /// Customer needs previously associated with the issue before being moved to another issue.
4495    pub former_needs: Option<Box<CustomerNeedConnection>>,
4496    /// The external services the issue is synced with.
4497    pub synced_with: Option<Box<Vec<ExternalEntityInfo>>>,
4498    /// `Internal` Product Intelligence suggestions for the issue.
4499    pub suggestions: Option<Box<IssueSuggestionConnection>>,
4500    /// `Internal` Incoming product intelligence relation suggestions for the issue.
4501    pub incoming_suggestions: Option<Box<IssueSuggestionConnection>>,
4502    /// The internal user who requested creation of the Asks issue on behalf of the creator.
4503    pub asks_requester: Option<Box<User>>,
4504    /// The external user who requested creation of the Asks issue on behalf of the creator.
4505    pub asks_external_user_requester: Option<Box<ExternalUser>>,
4506    /// The issue's workflow states over time.
4507    pub state_history: Option<Box<IssueStateSpanConnection>>,
4508}
4509impl GraphQLFields for Issue {
4510    type FullType = Self;
4511    fn selection() -> String {
4512        "id createdAt updatedAt archivedAt number title priority estimate boardOrder sortOrder prioritySortOrder startedAt completedAt startedTriageAt triagedAt canceledAt autoClosedAt autoArchivedAt dueDate slaStartedAt slaMediumRiskAt slaHighRiskAt slaBreachesAt slaType addedToProjectAt addedToCycleAt addedToTeamAt trashed snoozedUntilAt suggestionsGeneratedAt activitySummary labelIds previousIdentifiers subIssueSortOrder reactionData priorityLabel integrationSourceType identifier url branchName customerTicketCount description"
4513            .into()
4514    }
4515}
4516/// A generic payload return from entity archive mutations.
4517#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4518#[serde(rename_all = "camelCase", default)]
4519pub struct IssueArchivePayload {
4520    /// The identifier of the last sync operation.
4521    pub last_sync_id: Option<f64>,
4522    /// Whether the operation was successful.
4523    pub success: Option<bool>,
4524    /// The archived/unarchived entity. Null if entity was deleted.
4525    pub entity: Option<Box<Issue>>,
4526}
4527impl GraphQLFields for IssueArchivePayload {
4528    type FullType = Self;
4529    fn selection() -> String {
4530        "lastSyncId success".into()
4531    }
4532}
4533#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4534#[serde(rename_all = "camelCase", default)]
4535pub struct IssueBatchPayload {
4536    /// The identifier of the last sync operation.
4537    pub last_sync_id: Option<f64>,
4538    /// The issues that were updated.
4539    pub issues: Option<Box<Vec<Issue>>>,
4540    /// Whether the operation was successful.
4541    pub success: Option<bool>,
4542}
4543impl GraphQLFields for IssueBatchPayload {
4544    type FullType = Self;
4545    fn selection() -> String {
4546        "lastSyncId success".into()
4547    }
4548}
4549#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4550#[serde(rename_all = "camelCase", default)]
4551pub struct IssueConnection {
4552    pub edges: Option<Box<Vec<IssueEdge>>>,
4553    pub nodes: Option<Box<Vec<Issue>>>,
4554    pub page_info: Option<Box<PageInfo>>,
4555}
4556impl GraphQLFields for IssueConnection {
4557    type FullType = Self;
4558    fn selection() -> String {
4559        "".into()
4560    }
4561}
4562/// `Internal` A draft issue.
4563#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4564#[serde(rename_all = "camelCase", default)]
4565pub struct IssueDraft {
4566    /// The unique identifier of the entity.
4567    pub id: Option<String>,
4568    /// The time at which the entity was created.
4569    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4570    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4571    /// been updated after creation.
4572    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4573    /// The time at which the entity was archived. Null if the entity has not been archived.
4574    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4575    /// The draft's title.
4576    pub title: Option<String>,
4577    /// The draft's description in markdown format.
4578    pub description: Option<String>,
4579    /// The priority of the draft.
4580    pub priority: Option<f64>,
4581    /// The estimate of the complexity of the draft.
4582    pub estimate: Option<f64>,
4583    /// The date at which the issue would be due.
4584    pub due_date: Option<chrono::NaiveDate>,
4585    /// The IDs of labels added to the draft.
4586    pub label_ids: Option<Vec<String>>,
4587    /// The team associated with the draft.
4588    pub team_id: Option<String>,
4589    /// The cycle associated with the draft.
4590    pub cycle_id: Option<String>,
4591    /// The project associated with the draft.
4592    pub project_id: Option<String>,
4593    /// The project milestone associated with the draft.
4594    pub project_milestone_id: Option<String>,
4595    /// The user who created the draft.
4596    pub creator: Option<Box<User>>,
4597    /// The user assigned to the draft.
4598    pub assignee_id: Option<String>,
4599    /// The agent user delegated to work on the issue being drafted.
4600    pub delegate_id: Option<String>,
4601    /// The workflow state associated with the draft.
4602    pub state_id: Option<String>,
4603    /// The parent draft of the draft.
4604    pub parent: Option<Box<IssueDraft>>,
4605    /// The ID of the parent issue draft, if any.
4606    pub parent_id: Option<String>,
4607    /// The ID of the comment that the draft was created from.
4608    pub source_comment_id: Option<String>,
4609    /// The parent issue of the draft.
4610    pub parent_issue: Option<Box<Issue>>,
4611    /// The ID of the parent issue, if any.
4612    pub parent_issue_id: Option<String>,
4613    /// The order of items in the sub-draft list. Only set if the draft has `parent` set.
4614    pub sub_issue_sort_order: Option<f64>,
4615    /// Label for the priority.
4616    pub priority_label: Option<String>,
4617    /// `Internal` The draft's description as a Prosemirror document.
4618    pub description_data: Option<serde_json::Value>,
4619    /// Serialized array of JSONs representing attachments.
4620    pub attachments: Option<serde_json::Value>,
4621    /// Serialized array of JSONs representing customer needs.
4622    pub needs: Option<serde_json::Value>,
4623    /// Serialized array of JSONs representing the recurring issue's schedule.
4624    pub schedule: Option<serde_json::Value>,
4625}
4626impl GraphQLFields for IssueDraft {
4627    type FullType = Self;
4628    fn selection() -> String {
4629        "id createdAt updatedAt archivedAt title description priority estimate dueDate labelIds teamId cycleId projectId projectMilestoneId assigneeId delegateId stateId parentId sourceCommentId parentIssueId subIssueSortOrder priorityLabel descriptionData attachments needs schedule"
4630            .into()
4631    }
4632}
4633#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4634#[serde(rename_all = "camelCase", default)]
4635pub struct IssueDraftConnection {
4636    pub edges: Option<Box<Vec<IssueDraftEdge>>>,
4637    pub nodes: Option<Box<Vec<IssueDraft>>>,
4638    pub page_info: Option<Box<PageInfo>>,
4639}
4640impl GraphQLFields for IssueDraftConnection {
4641    type FullType = Self;
4642    fn selection() -> String {
4643        "".into()
4644    }
4645}
4646#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4647#[serde(rename_all = "camelCase", default)]
4648pub struct IssueDraftEdge {
4649    pub node: Option<Box<IssueDraft>>,
4650    /// Used in `before` and `after` args
4651    pub cursor: Option<String>,
4652}
4653impl GraphQLFields for IssueDraftEdge {
4654    type FullType = Self;
4655    fn selection() -> String {
4656        "cursor".into()
4657    }
4658}
4659#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4660#[serde(rename_all = "camelCase", default)]
4661pub struct IssueEdge {
4662    pub node: Option<Box<Issue>>,
4663    /// Used in `before` and `after` args
4664    pub cursor: Option<String>,
4665}
4666impl GraphQLFields for IssueEdge {
4667    type FullType = Self;
4668    fn selection() -> String {
4669        "cursor".into()
4670    }
4671}
4672#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4673#[serde(rename_all = "camelCase", default)]
4674pub struct IssueFilterSuggestionPayload {
4675    /// The json filter that is suggested.
4676    pub filter: Option<serde_json::Value>,
4677    /// The log id of the prompt, that created this filter.
4678    pub log_id: Option<String>,
4679}
4680impl GraphQLFields for IssueFilterSuggestionPayload {
4681    type FullType = Self;
4682    fn selection() -> String {
4683        "filter logId".into()
4684    }
4685}
4686/// A record of changes to an issue.
4687#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4688#[serde(rename_all = "camelCase", default)]
4689pub struct IssueHistory {
4690    /// The unique identifier of the entity.
4691    pub id: Option<String>,
4692    /// The time at which the entity was created.
4693    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4694    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4695    /// been updated after creation.
4696    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4697    /// The time at which the entity was archived. Null if the entity has not been archived.
4698    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4699    /// The issue that was changed.
4700    pub issue: Option<Box<Issue>>,
4701    /// The id of user who made these changes. If null, possibly means that the change made by an integration.
4702    pub actor_id: Option<String>,
4703    /// Whether the issue's description was updated.
4704    pub updated_description: Option<bool>,
4705    /// What the title was changed from.
4706    pub from_title: Option<String>,
4707    /// What the title was changed to.
4708    pub to_title: Option<String>,
4709    /// The id of user from whom the issue was re-assigned from.
4710    pub from_assignee_id: Option<String>,
4711    /// The id of user to whom the issue was assigned to.
4712    pub to_assignee_id: Option<String>,
4713    /// What the priority was changed from.
4714    pub from_priority: Option<f64>,
4715    /// What the priority was changed to.
4716    pub to_priority: Option<f64>,
4717    /// The id of team from which the issue was moved from.
4718    pub from_team_id: Option<String>,
4719    /// The id of team to which the issue was moved to.
4720    pub to_team_id: Option<String>,
4721    /// The id of previous parent of the issue.
4722    pub from_parent_id: Option<String>,
4723    /// The id of new parent of the issue.
4724    pub to_parent_id: Option<String>,
4725    /// The id of previous workflow state of the issue.
4726    pub from_state_id: Option<String>,
4727    /// The id of new workflow state of the issue.
4728    pub to_state_id: Option<String>,
4729    /// The id of previous cycle of the issue.
4730    pub from_cycle_id: Option<String>,
4731    /// The id of new cycle of the issue.
4732    pub to_cycle_id: Option<String>,
4733    /// The id of new project created from the issue.
4734    pub to_converted_project_id: Option<String>,
4735    /// The id of previous project of the issue.
4736    pub from_project_id: Option<String>,
4737    /// The id of new project of the issue.
4738    pub to_project_id: Option<String>,
4739    /// What the estimate was changed from.
4740    pub from_estimate: Option<f64>,
4741    /// What the estimate was changed to.
4742    pub to_estimate: Option<f64>,
4743    /// Whether the issue is archived at the time of this history entry.
4744    pub archived: Option<bool>,
4745    /// Whether the issue was trashed or un-trashed.
4746    pub trashed: Option<bool>,
4747    /// The id of linked attachment.
4748    pub attachment_id: Option<String>,
4749    /// ID's of labels that were added.
4750    pub added_label_ids: Option<Vec<String>>,
4751    /// ID's of labels that were removed.
4752    pub removed_label_ids: Option<Vec<String>>,
4753    /// `ALPHA` ID's of releases that the issue was added to.
4754    pub added_to_release_ids: Option<Vec<String>>,
4755    /// `ALPHA` ID's of releases that the issue was removed from.
4756    pub removed_from_release_ids: Option<Vec<String>>,
4757    /// Changed issue relationships.
4758    pub relation_changes: Option<Box<Vec<IssueRelationHistoryPayload>>>,
4759    /// Whether the issue was auto-closed.
4760    pub auto_closed: Option<bool>,
4761    /// Whether the issue was auto-archived.
4762    pub auto_archived: Option<bool>,
4763    /// What the due date was changed from.
4764    pub from_due_date: Option<chrono::NaiveDate>,
4765    /// What the due date was changed to.
4766    pub to_due_date: Option<chrono::NaiveDate>,
4767    /// The id of linked customer need.
4768    pub customer_need_id: Option<String>,
4769    /// `Internal` Serialized JSON representing changes for certain non-relational properties.
4770    pub changes: Option<serde_json::Value>,
4771    /// The actor that performed the actions. This field may be empty in the case of integrations or automations.
4772    pub actor: Option<Box<User>>,
4773    /// The actors that performed the actions. This field may be empty in the case of integrations or automations.
4774    pub actors: Option<Box<Vec<User>>>,
4775    /// The actors that edited the description of the issue, if any.
4776    pub description_updated_by: Option<Box<Vec<User>>>,
4777    /// The user that was unassigned from the issue.
4778    pub from_assignee: Option<Box<User>>,
4779    /// The user that was assigned to the issue.
4780    pub to_assignee: Option<Box<User>>,
4781    /// The cycle that the issue was moved from.
4782    pub from_cycle: Option<Box<Cycle>>,
4783    /// The cycle that the issue was moved to.
4784    pub to_cycle: Option<Box<Cycle>>,
4785    /// The new project created from the issue.
4786    pub to_converted_project: Option<Box<Project>>,
4787    /// The app user from whom the issue delegation was transferred.
4788    pub from_delegate: Option<Box<User>>,
4789    /// The app user to whom the issue delegation was transferred.
4790    pub to_delegate: Option<Box<User>>,
4791    /// The project that the issue was moved from.
4792    pub from_project: Option<Box<Project>>,
4793    /// The project that the issue was moved to.
4794    pub to_project: Option<Box<Project>>,
4795    /// The state that the issue was moved from.
4796    pub from_state: Option<Box<WorkflowState>>,
4797    /// The state that the issue was moved to.
4798    pub to_state: Option<Box<WorkflowState>>,
4799    /// The team that the issue was moved from.
4800    pub from_team: Option<Box<Team>>,
4801    /// The team that the issue was moved to.
4802    pub to_team: Option<Box<Team>>,
4803    /// The parent issue that the issue was moved from.
4804    pub from_parent: Option<Box<Issue>>,
4805    /// The parent issue that the issue was moved to.
4806    pub to_parent: Option<Box<Issue>>,
4807    /// The linked attachment.
4808    pub attachment: Option<Box<Attachment>>,
4809    /// The import record.
4810    pub issue_import: Option<Box<IssueImport>>,
4811    /// The users that were notified of the issue.
4812    pub triage_responsibility_notified_users: Option<Box<Vec<User>>>,
4813    /// Boolean indicating if the issue was auto-assigned using the triage responsibility feature.
4814    pub triage_responsibility_auto_assigned: Option<bool>,
4815    /// The team that triggered the triage responsibility action.
4816    pub triage_responsibility_team: Option<Box<Team>>,
4817    /// The project milestone that the issue was moved from.
4818    pub from_project_milestone: Option<Box<ProjectMilestone>>,
4819    /// The project milestone that the issue was moved to.
4820    pub to_project_milestone: Option<Box<ProjectMilestone>>,
4821    /// The time at which the issue's SLA was previously started.
4822    pub from_sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
4823    /// The time at which the issue's SLA is now started.
4824    pub to_sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
4825    /// The SLA breach time that was previously set on the issue.
4826    pub from_sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
4827    /// The SLA breach time that is now set on the issue.
4828    pub to_sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
4829    /// Whether the issue had previously breached its SLA.
4830    pub from_sla_breached: Option<bool>,
4831    /// Whether the issue has now breached its SLA.
4832    pub to_sla_breached: Option<bool>,
4833    /// The type of SLA that was previously set on the issue.
4834    pub from_sla_type: Option<String>,
4835    /// The type of SLA that is now set on the issue.
4836    pub to_sla_type: Option<String>,
4837    /// The bot that performed the action.
4838    pub bot_actor: Option<Box<ActorBot>>,
4839    /// The labels that were added to the issue.
4840    pub added_labels: Option<Box<Vec<IssueLabel>>>,
4841    /// The labels that were removed from the issue.
4842    pub removed_labels: Option<Box<Vec<IssueLabel>>>,
4843    /// The releases that the issue was added to.
4844    pub added_to_releases: Option<Box<Vec<Release>>>,
4845    /// The releases that the issue was removed from.
4846    pub removed_from_releases: Option<Box<Vec<Release>>>,
4847    /// `INTERNAL` Metadata about the triage rule that made changes to the issue.
4848    pub triage_rule_metadata: Option<Box<IssueHistoryTriageRuleMetadata>>,
4849}
4850impl GraphQLFields for IssueHistory {
4851    type FullType = Self;
4852    fn selection() -> String {
4853        "id createdAt updatedAt archivedAt actorId updatedDescription fromTitle toTitle fromAssigneeId toAssigneeId fromPriority toPriority fromTeamId toTeamId fromParentId toParentId fromStateId toStateId fromCycleId toCycleId toConvertedProjectId fromProjectId toProjectId fromEstimate toEstimate archived trashed attachmentId addedLabelIds removedLabelIds addedToReleaseIds removedFromReleaseIds autoClosed autoArchived fromDueDate toDueDate customerNeedId changes triageResponsibilityAutoAssigned fromSlaStartedAt toSlaStartedAt fromSlaBreachesAt toSlaBreachesAt fromSlaBreached toSlaBreached fromSlaType toSlaType"
4854            .into()
4855    }
4856}
4857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4858#[serde(rename_all = "camelCase", default)]
4859pub struct IssueHistoryConnection {
4860    pub edges: Option<Box<Vec<IssueHistoryEdge>>>,
4861    pub nodes: Option<Box<Vec<IssueHistory>>>,
4862    pub page_info: Option<Box<PageInfo>>,
4863}
4864impl GraphQLFields for IssueHistoryConnection {
4865    type FullType = Self;
4866    fn selection() -> String {
4867        "".into()
4868    }
4869}
4870#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4871#[serde(rename_all = "camelCase", default)]
4872pub struct IssueHistoryEdge {
4873    pub node: Option<Box<IssueHistory>>,
4874    /// Used in `before` and `after` args
4875    pub cursor: Option<String>,
4876}
4877impl GraphQLFields for IssueHistoryEdge {
4878    type FullType = Self;
4879    fn selection() -> String {
4880        "cursor".into()
4881    }
4882}
4883/// An error that occurred during triage rule execution.
4884#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4885#[serde(rename_all = "camelCase", default)]
4886pub struct IssueHistoryTriageRuleError {
4887    /// The type of error that occurred.
4888    pub r#type: Option<TriageRuleErrorType>,
4889    /// The property that caused the error.
4890    pub property: Option<String>,
4891    /// Whether the conflict was for the same child label.
4892    pub conflict_for_same_child_label: Option<bool>,
4893    /// The team the issue was being moved from.
4894    pub from_team: Option<Box<Team>>,
4895    /// The team the issue was being moved to.
4896    pub to_team: Option<Box<Team>>,
4897    /// The conflicting labels.
4898    pub conflicting_labels: Option<Box<Vec<IssueLabel>>>,
4899}
4900impl GraphQLFields for IssueHistoryTriageRuleError {
4901    type FullType = Self;
4902    fn selection() -> String {
4903        "type property conflictForSameChildLabel".into()
4904    }
4905}
4906/// Metadata about a triage rule that made changes to an issue.
4907#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4908#[serde(rename_all = "camelCase", default)]
4909pub struct IssueHistoryTriageRuleMetadata {
4910    /// The error that occurred, if any.
4911    pub triage_rule_error: Option<Box<IssueHistoryTriageRuleError>>,
4912    /// The triage rule that triggered the issue update.
4913    pub updated_by_triage_rule: Option<Box<WorkflowDefinition>>,
4914}
4915impl GraphQLFields for IssueHistoryTriageRuleMetadata {
4916    type FullType = Self;
4917    fn selection() -> String {
4918        "".into()
4919    }
4920}
4921/// An import job for data from an external service.
4922#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4923#[serde(rename_all = "camelCase", default)]
4924pub struct IssueImport {
4925    /// The unique identifier of the entity.
4926    pub id: Option<String>,
4927    /// The time at which the entity was created.
4928    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4929    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4930    /// been updated after creation.
4931    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4932    /// The time at which the entity was archived. Null if the entity has not been archived.
4933    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4934    /// New team's name in cases when teamId not set.
4935    pub team_name: Option<String>,
4936    /// The id for the user that started the job.
4937    pub creator_id: Option<String>,
4938    /// The service from which data will be imported.
4939    pub service: Option<String>,
4940    /// The status for the import job.
4941    pub status: Option<String>,
4942    /// The data mapping configuration for the import job.
4943    pub mapping: Option<serde_json::Value>,
4944    /// User readable error message, if one has occurred during the import.
4945    pub error: Option<String>,
4946    /// Current step progress in % (0-100).
4947    pub progress: Option<f64>,
4948    /// File URL for the uploaded CSV for the import, if there is one.
4949    pub csv_file_url: Option<String>,
4950    /// Error code and metadata, if one has occurred during the import.
4951    pub error_metadata: Option<serde_json::Value>,
4952    /// Metadata related to import service.
4953    pub service_metadata: Option<serde_json::Value>,
4954    /// The display name of the import service.
4955    pub display_name: Option<String>,
4956}
4957impl GraphQLFields for IssueImport {
4958    type FullType = Self;
4959    fn selection() -> String {
4960        "id createdAt updatedAt archivedAt teamName creatorId service status mapping error progress csvFileUrl errorMetadata serviceMetadata displayName"
4961            .into()
4962    }
4963}
4964#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4965#[serde(rename_all = "camelCase", default)]
4966pub struct IssueImportCheckPayload {
4967    /// Whether the operation was successful.
4968    pub success: Option<bool>,
4969}
4970impl GraphQLFields for IssueImportCheckPayload {
4971    type FullType = Self;
4972    fn selection() -> String {
4973        "success".into()
4974    }
4975}
4976#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4977#[serde(rename_all = "camelCase", default)]
4978pub struct IssueImportDeletePayload {
4979    /// The identifier of the last sync operation.
4980    pub last_sync_id: Option<f64>,
4981    /// The import job that was deleted.
4982    pub issue_import: Option<Box<IssueImport>>,
4983    /// Whether the operation was successful.
4984    pub success: Option<bool>,
4985}
4986impl GraphQLFields for IssueImportDeletePayload {
4987    type FullType = Self;
4988    fn selection() -> String {
4989        "lastSyncId success".into()
4990    }
4991}
4992/// Whether a custom JQL query is valid or not
4993#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4994#[serde(rename_all = "camelCase", default)]
4995pub struct IssueImportJqlCheckPayload {
4996    /// Returns true if the JQL query has been validated successfully, false otherwise
4997    pub success: Option<bool>,
4998    /// Returns an approximate number of issues matching the JQL query, if available
4999    pub count: Option<f64>,
5000    /// An error message returned by Jira when validating the JQL query.
5001    pub error: Option<String>,
5002}
5003impl GraphQLFields for IssueImportJqlCheckPayload {
5004    type FullType = Self;
5005    fn selection() -> String {
5006        "success count error".into()
5007    }
5008}
5009#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5010#[serde(rename_all = "camelCase", default)]
5011pub struct IssueImportPayload {
5012    /// The identifier of the last sync operation.
5013    pub last_sync_id: Option<f64>,
5014    /// The import job that was created or updated.
5015    pub issue_import: Option<Box<IssueImport>>,
5016    /// Whether the operation was successful.
5017    pub success: Option<bool>,
5018}
5019impl GraphQLFields for IssueImportPayload {
5020    type FullType = Self;
5021    fn selection() -> String {
5022        "lastSyncId success".into()
5023    }
5024}
5025/// Whether an issue import can be synced at the end of an import or not
5026#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5027#[serde(rename_all = "camelCase", default)]
5028pub struct IssueImportSyncCheckPayload {
5029    /// Returns true if the import can be synced, false otherwise
5030    pub can_sync: Option<bool>,
5031    /// An error message with a root cause of why the import cannot be synced
5032    pub error: Option<String>,
5033}
5034impl GraphQLFields for IssueImportSyncCheckPayload {
5035    type FullType = Self;
5036    fn selection() -> String {
5037        "canSync error".into()
5038    }
5039}
5040/// Labels that can be associated with issues.
5041#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5042#[serde(rename_all = "camelCase", default)]
5043pub struct IssueLabel {
5044    /// The unique identifier of the entity.
5045    pub id: Option<String>,
5046    /// The time at which the entity was created.
5047    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5048    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5049    /// been updated after creation.
5050    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5051    /// The time at which the entity was archived. Null if the entity has not been archived.
5052    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5053    /// The label's name.
5054    pub name: Option<String>,
5055    /// The label's description.
5056    pub description: Option<String>,
5057    /// The label's color as a HEX string.
5058    pub color: Option<String>,
5059    /// Whether the label is a group.
5060    pub is_group: Option<bool>,
5061    /// The date when the label was last applied to an issue or project.
5062    pub last_applied_at: Option<chrono::DateTime<chrono::Utc>>,
5063    /// `Internal` When the label was retired.
5064    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
5065    pub organization: Option<Box<Organization>>,
5066    /// The team that the label is associated with. If null, the label is associated with the global workspace.
5067    pub team: Option<Box<Team>>,
5068    /// The user who created the label.
5069    pub creator: Option<Box<User>>,
5070    /// The user who retired the label.
5071    pub retired_by: Option<Box<User>>,
5072    /// The parent label.
5073    pub parent: Option<Box<IssueLabel>>,
5074    /// The original label inherited from.
5075    pub inherited_from: Option<Box<IssueLabel>>,
5076    /// Issues associated with the label.
5077    pub issues: Option<Box<IssueConnection>>,
5078    /// Children of the label.
5079    pub children: Option<Box<IssueLabelConnection>>,
5080}
5081impl GraphQLFields for IssueLabel {
5082    type FullType = Self;
5083    fn selection() -> String {
5084        "id createdAt updatedAt archivedAt name description color isGroup lastAppliedAt retiredAt"
5085            .into()
5086    }
5087}
5088#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5089#[serde(rename_all = "camelCase", default)]
5090pub struct IssueLabelConnection {
5091    pub edges: Option<Box<Vec<IssueLabelEdge>>>,
5092    pub nodes: Option<Box<Vec<IssueLabel>>>,
5093    pub page_info: Option<Box<PageInfo>>,
5094}
5095impl GraphQLFields for IssueLabelConnection {
5096    type FullType = Self;
5097    fn selection() -> String {
5098        "".into()
5099    }
5100}
5101#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5102#[serde(rename_all = "camelCase", default)]
5103pub struct IssueLabelEdge {
5104    pub node: Option<Box<IssueLabel>>,
5105    /// Used in `before` and `after` args
5106    pub cursor: Option<String>,
5107}
5108impl GraphQLFields for IssueLabelEdge {
5109    type FullType = Self;
5110    fn selection() -> String {
5111        "cursor".into()
5112    }
5113}
5114#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5115#[serde(rename_all = "camelCase", default)]
5116pub struct IssueLabelPayload {
5117    /// The identifier of the last sync operation.
5118    pub last_sync_id: Option<f64>,
5119    /// The label that was created or updated.
5120    pub issue_label: Option<Box<IssueLabel>>,
5121    /// Whether the operation was successful.
5122    pub success: Option<bool>,
5123}
5124impl GraphQLFields for IssueLabelPayload {
5125    type FullType = Self;
5126    fn selection() -> String {
5127        "lastSyncId success".into()
5128    }
5129}
5130/// An issue related notification.
5131#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5132#[serde(rename_all = "camelCase", default)]
5133pub struct IssueNotification {
5134    /// Related comment ID. Null if the notification is not related to a comment.
5135    pub comment_id: Option<String>,
5136    /// Related parent comment ID. Null if the notification is not related to a comment.
5137    pub parent_comment_id: Option<String>,
5138    /// Name of the reaction emoji related to the notification.
5139    pub reaction_emoji: Option<String>,
5140    /// The unique identifier of the entity.
5141    pub id: Option<String>,
5142    /// The time at which the entity was created.
5143    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5144    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5145    /// been updated after creation.
5146    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5147    /// The time at which the entity was archived. Null if the entity has not been archived.
5148    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5149    /// Notification type.
5150    pub r#type: Option<String>,
5151    /// The user that caused the notification.
5152    pub actor: Option<Box<User>>,
5153    /// The external user that caused the notification.
5154    pub external_user_actor: Option<Box<ExternalUser>>,
5155    /// The user that received the notification.
5156    pub user: Option<Box<User>>,
5157    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
5158    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
5159    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
5160    /// reminder has been sent.
5161    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
5162    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
5163    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
5164    /// The time at which a notification was unsnoozed..
5165    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
5166    /// The category of the notification.
5167    pub category: Option<NotificationCategory>,
5168    /// `Internal` URL to the target of the notification.
5169    pub url: Option<String>,
5170    /// `Internal` Inbox URL for the notification.
5171    pub inbox_url: Option<String>,
5172    /// `Internal` Notification title.
5173    pub title: Option<String>,
5174    /// `Internal` Notification subtitle.
5175    pub subtitle: Option<String>,
5176    /// `Internal` If notification actor was Linear.
5177    pub is_linear_actor: Option<bool>,
5178    /// `Internal` Notification avatar URL.
5179    pub actor_avatar_url: Option<String>,
5180    /// `Internal` Notification actor initials if avatar is not available.
5181    pub actor_initials: Option<String>,
5182    /// `Internal` Notification actor initials if avatar is not available.
5183    pub actor_avatar_color: Option<String>,
5184    /// `Internal` Issue's status type for issue notifications.
5185    pub issue_status_type: Option<String>,
5186    /// `Internal` Project update health for new updates.
5187    pub project_update_health: Option<String>,
5188    /// `Internal` Initiative update health for new updates.
5189    pub initiative_update_health: Option<String>,
5190    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
5191    pub grouping_key: Option<String>,
5192    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
5193    pub grouping_priority: Option<f64>,
5194    /// The bot that caused the notification.
5195    pub bot_actor: Option<Box<ActorBot>>,
5196    /// Related issue ID.
5197    pub issue_id: Option<String>,
5198    /// The issue related to the notification.
5199    pub issue: Option<Box<Issue>>,
5200    /// The comment related to the notification.
5201    pub comment: Option<Box<Comment>>,
5202    /// The parent comment related to the notification, if a notification is a reply comment notification.
5203    pub parent_comment: Option<Box<Comment>>,
5204    /// The team related to the issue notification.
5205    pub team: Option<Box<Team>>,
5206}
5207impl GraphQLFields for IssueNotification {
5208    type FullType = Self;
5209    fn selection() -> String {
5210        "commentId parentCommentId reactionEmoji id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority issueId"
5211            .into()
5212    }
5213}
5214#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5215#[serde(rename_all = "camelCase", default)]
5216pub struct IssuePayload {
5217    /// The identifier of the last sync operation.
5218    pub last_sync_id: Option<f64>,
5219    /// The issue that was created or updated.
5220    pub issue: Option<Box<Issue>>,
5221    /// Whether the operation was successful.
5222    pub success: Option<bool>,
5223}
5224impl GraphQLFields for IssuePayload {
5225    type FullType = Self;
5226    fn selection() -> String {
5227        "lastSyncId success".into()
5228    }
5229}
5230#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5231#[serde(rename_all = "camelCase", default)]
5232pub struct IssuePriorityValue {
5233    /// Priority's number value.
5234    pub priority: Option<i64>,
5235    /// Priority's label.
5236    pub label: Option<String>,
5237}
5238impl GraphQLFields for IssuePriorityValue {
5239    type FullType = Self;
5240    fn selection() -> String {
5241        "priority label".into()
5242    }
5243}
5244/// A relation between two issues.
5245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5246#[serde(rename_all = "camelCase", default)]
5247pub struct IssueRelation {
5248    /// The unique identifier of the entity.
5249    pub id: Option<String>,
5250    /// The time at which the entity was created.
5251    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5252    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5253    /// been updated after creation.
5254    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5255    /// The time at which the entity was archived. Null if the entity has not been archived.
5256    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5257    /// The relationship of the issue with the related issue.
5258    pub r#type: Option<String>,
5259    /// The issue whose relationship is being described.
5260    pub issue: Option<Box<Issue>>,
5261    /// The related issue.
5262    pub related_issue: Option<Box<Issue>>,
5263}
5264impl GraphQLFields for IssueRelation {
5265    type FullType = Self;
5266    fn selection() -> String {
5267        "id createdAt updatedAt archivedAt type".into()
5268    }
5269}
5270#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5271#[serde(rename_all = "camelCase", default)]
5272pub struct IssueRelationConnection {
5273    pub edges: Option<Box<Vec<IssueRelationEdge>>>,
5274    pub nodes: Option<Box<Vec<IssueRelation>>>,
5275    pub page_info: Option<Box<PageInfo>>,
5276}
5277impl GraphQLFields for IssueRelationConnection {
5278    type FullType = Self;
5279    fn selection() -> String {
5280        "".into()
5281    }
5282}
5283#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5284#[serde(rename_all = "camelCase", default)]
5285pub struct IssueRelationEdge {
5286    pub node: Option<Box<IssueRelation>>,
5287    /// Used in `before` and `after` args
5288    pub cursor: Option<String>,
5289}
5290impl GraphQLFields for IssueRelationEdge {
5291    type FullType = Self;
5292    fn selection() -> String {
5293        "cursor".into()
5294    }
5295}
5296/// Issue relation history's payload.
5297#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5298#[serde(rename_all = "camelCase", default)]
5299pub struct IssueRelationHistoryPayload {
5300    /// The identifier of the related issue.
5301    pub identifier: Option<String>,
5302    /// The type of the change.
5303    pub r#type: Option<String>,
5304}
5305impl GraphQLFields for IssueRelationHistoryPayload {
5306    type FullType = Self;
5307    fn selection() -> String {
5308        "identifier type".into()
5309    }
5310}
5311#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5312#[serde(rename_all = "camelCase", default)]
5313pub struct IssueRelationPayload {
5314    /// The identifier of the last sync operation.
5315    pub last_sync_id: Option<f64>,
5316    /// The issue relation that was created or updated.
5317    pub issue_relation: Option<Box<IssueRelation>>,
5318    /// Whether the operation was successful.
5319    pub success: Option<bool>,
5320}
5321impl GraphQLFields for IssueRelationPayload {
5322    type FullType = Self;
5323    fn selection() -> String {
5324        "lastSyncId success".into()
5325    }
5326}
5327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5328#[serde(rename_all = "camelCase", default)]
5329pub struct IssueSearchPayload {
5330    pub edges: Option<Box<Vec<IssueSearchResultEdge>>>,
5331    pub nodes: Option<Box<Vec<IssueSearchResult>>>,
5332    pub page_info: Option<Box<PageInfo>>,
5333    /// Archived entities matching the search term along with all their dependencies.
5334    pub archive_payload: Option<Box<ArchiveResponse>>,
5335    /// Total number of results for query without filters applied.
5336    pub total_count: Option<f64>,
5337}
5338impl GraphQLFields for IssueSearchPayload {
5339    type FullType = Self;
5340    fn selection() -> String {
5341        "totalCount".into()
5342    }
5343}
5344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5345#[serde(rename_all = "camelCase", default)]
5346pub struct IssueSearchResult {
5347    /// The unique identifier of the entity.
5348    pub id: Option<String>,
5349    /// The time at which the entity was created.
5350    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5351    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5352    /// been updated after creation.
5353    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5354    /// The time at which the entity was archived. Null if the entity has not been archived.
5355    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5356    /// The issue's unique number.
5357    pub number: Option<f64>,
5358    /// The issue's title.
5359    pub title: Option<String>,
5360    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
5361    pub priority: Option<f64>,
5362    /// The estimate of the complexity of the issue..
5363    pub estimate: Option<f64>,
5364    /// The order of the item in its column on the board.
5365    pub board_order: Option<f64>,
5366    /// The order of the item in relation to other items in the organization.
5367    pub sort_order: Option<f64>,
5368    /// The order of the item in relation to other items in the organization, when ordered by priority.
5369    pub priority_sort_order: Option<f64>,
5370    /// The time at which the issue was moved into started state.
5371    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
5372    /// The time at which the issue was moved into completed state.
5373    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
5374    /// The time at which the issue entered triage.
5375    pub started_triage_at: Option<chrono::DateTime<chrono::Utc>>,
5376    /// The time at which the issue left triage.
5377    pub triaged_at: Option<chrono::DateTime<chrono::Utc>>,
5378    /// The time at which the issue was moved into canceled state.
5379    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
5380    /// The time at which the issue was automatically closed by the auto pruning process.
5381    pub auto_closed_at: Option<chrono::DateTime<chrono::Utc>>,
5382    /// The time at which the issue was automatically archived by the auto pruning process.
5383    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
5384    /// The date at which the issue is due.
5385    pub due_date: Option<chrono::NaiveDate>,
5386    /// The time at which the issue's SLA began.
5387    pub sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
5388    /// The time at which the issue's SLA will enter medium risk state.
5389    pub sla_medium_risk_at: Option<chrono::DateTime<chrono::Utc>>,
5390    /// The time at which the issue's SLA will enter high risk state.
5391    pub sla_high_risk_at: Option<chrono::DateTime<chrono::Utc>>,
5392    /// The time at which the issue's SLA will breach.
5393    pub sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
5394    /// The type of SLA set on the issue. Calendar days or business days.
5395    pub sla_type: Option<String>,
5396    /// The time at which the issue was added to a project.
5397    pub added_to_project_at: Option<chrono::DateTime<chrono::Utc>>,
5398    /// The time at which the issue was added to a cycle.
5399    pub added_to_cycle_at: Option<chrono::DateTime<chrono::Utc>>,
5400    /// The time at which the issue was added to a team.
5401    pub added_to_team_at: Option<chrono::DateTime<chrono::Utc>>,
5402    /// A flag that indicates whether the issue is in the trash bin.
5403    pub trashed: Option<bool>,
5404    /// The time until an issue will be snoozed in Triage view.
5405    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
5406    /// `Internal` The time at which the most recent suggestions for this issue were generated.
5407    pub suggestions_generated_at: Option<chrono::DateTime<chrono::Utc>>,
5408    /// `Internal` The activity summary information for this issue.
5409    pub activity_summary: Option<serde_json::Value>,
5410    /// `Internal` AI-generated activity summary for this issue.
5411    pub summary: Option<Box<Summary>>,
5412    /// Id of the labels associated with this issue.
5413    pub label_ids: Option<Vec<String>>,
5414    /// The team that the issue is associated with.
5415    pub team: Option<Box<Team>>,
5416    /// The cycle that the issue is associated with.
5417    pub cycle: Option<Box<Cycle>>,
5418    /// The project that the issue is associated with.
5419    pub project: Option<Box<Project>>,
5420    /// The projectMilestone that the issue is associated with.
5421    pub project_milestone: Option<Box<ProjectMilestone>>,
5422    /// The last template that was applied to this issue.
5423    pub last_applied_template: Option<Box<Template>>,
5424    /// The recurring issue template that created this issue.
5425    pub recurring_issue_template: Option<Box<Template>>,
5426    /// Previous identifiers of the issue if it has been moved between teams.
5427    pub previous_identifiers: Option<Vec<String>>,
5428    /// The user who created the issue.
5429    pub creator: Option<Box<User>>,
5430    /// The external user who created the issue.
5431    pub external_user_creator: Option<Box<ExternalUser>>,
5432    /// The user to whom the issue is assigned to.
5433    pub assignee: Option<Box<User>>,
5434    /// The agent user that is delegated to work on this issue.
5435    pub delegate: Option<Box<User>>,
5436    /// The user who snoozed the issue.
5437    pub snoozed_by: Option<Box<User>>,
5438    /// The workflow state that the issue is associated with.
5439    pub state: Option<Box<WorkflowState>>,
5440    /// The order of the item in the sub-issue list. Only set if the issue has a parent.
5441    pub sub_issue_sort_order: Option<f64>,
5442    /// Emoji reaction summary, grouped by emoji type.
5443    pub reaction_data: Option<serde_json::Value>,
5444    /// Label for the priority.
5445    pub priority_label: Option<String>,
5446    /// The comment that this issue was created from.
5447    pub source_comment: Option<Box<Comment>>,
5448    /// Integration type that created this issue, if applicable.
5449    pub integration_source_type: Option<IntegrationService>,
5450    /// Documents associated with the issue.
5451    pub documents: Option<Box<DocumentConnection>>,
5452    /// The bot that created the issue, if applicable.
5453    pub bot_actor: Option<Box<ActorBot>>,
5454    /// The users favorite associated with this issue.
5455    pub favorite: Option<Box<Favorite>>,
5456    /// Issue's human readable identifier (e.g. ENG-123).
5457    pub identifier: Option<String>,
5458    /// Issue URL.
5459    pub url: Option<String>,
5460    /// Suggested branch name for the issue.
5461    pub branch_name: Option<String>,
5462    /// Returns the number of Attachment resources which are created by customer support ticketing systems (e.g. Zendesk).
5463    pub customer_ticket_count: Option<i64>,
5464    /// Users who are subscribed to the issue.
5465    pub subscribers: Option<Box<UserConnection>>,
5466    /// The parent of the issue.
5467    pub parent: Option<Box<Issue>>,
5468    /// Children of the issue.
5469    pub children: Option<Box<IssueConnection>>,
5470    /// Comments associated with the issue.
5471    pub comments: Option<Box<CommentConnection>>,
5472    /// History entries associated with the issue.
5473    pub history: Option<Box<IssueHistoryConnection>>,
5474    /// Labels associated with this issue.
5475    pub labels: Option<Box<IssueLabelConnection>>,
5476    /// Relations associated with this issue.
5477    pub relations: Option<Box<IssueRelationConnection>>,
5478    /// Inverse relations associated with this issue.
5479    pub inverse_relations: Option<Box<IssueRelationConnection>>,
5480    /// Attachments associated with the issue.
5481    pub attachments: Option<Box<AttachmentConnection>>,
5482    /// Attachments previously associated with the issue before being moved to another issue.
5483    pub former_attachments: Option<Box<AttachmentConnection>>,
5484    /// The issue's description in markdown format.
5485    pub description: Option<String>,
5486    /// `Internal` The issue's description content as YJS state.
5487    pub description_state: Option<String>,
5488    /// `ALPHA` The document content representing this issue description.
5489    pub document_content: Option<Box<DocumentContent>>,
5490    /// Reactions associated with the issue.
5491    pub reactions: Option<Box<Vec<Reaction>>>,
5492    /// Customer needs associated with the issue.
5493    pub needs: Option<Box<CustomerNeedConnection>>,
5494    /// Customer needs previously associated with the issue before being moved to another issue.
5495    pub former_needs: Option<Box<CustomerNeedConnection>>,
5496    /// The external services the issue is synced with.
5497    pub synced_with: Option<Box<Vec<ExternalEntityInfo>>>,
5498    /// `Internal` Product Intelligence suggestions for the issue.
5499    pub suggestions: Option<Box<IssueSuggestionConnection>>,
5500    /// `Internal` Incoming product intelligence relation suggestions for the issue.
5501    pub incoming_suggestions: Option<Box<IssueSuggestionConnection>>,
5502    /// The internal user who requested creation of the Asks issue on behalf of the creator.
5503    pub asks_requester: Option<Box<User>>,
5504    /// The external user who requested creation of the Asks issue on behalf of the creator.
5505    pub asks_external_user_requester: Option<Box<ExternalUser>>,
5506    /// The issue's workflow states over time.
5507    pub state_history: Option<Box<IssueStateSpanConnection>>,
5508    /// Metadata related to search result.
5509    pub metadata: Option<serde_json::Value>,
5510}
5511impl GraphQLFields for IssueSearchResult {
5512    type FullType = Self;
5513    fn selection() -> String {
5514        "id createdAt updatedAt archivedAt number title priority estimate boardOrder sortOrder prioritySortOrder startedAt completedAt startedTriageAt triagedAt canceledAt autoClosedAt autoArchivedAt dueDate slaStartedAt slaMediumRiskAt slaHighRiskAt slaBreachesAt slaType addedToProjectAt addedToCycleAt addedToTeamAt trashed snoozedUntilAt suggestionsGeneratedAt activitySummary labelIds previousIdentifiers subIssueSortOrder reactionData priorityLabel integrationSourceType identifier url branchName customerTicketCount description metadata"
5515            .into()
5516    }
5517}
5518#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5519#[serde(rename_all = "camelCase", default)]
5520pub struct IssueSearchResultEdge {
5521    pub node: Option<Box<IssueSearchResult>>,
5522    /// Used in `before` and `after` args
5523    pub cursor: Option<String>,
5524}
5525impl GraphQLFields for IssueSearchResultEdge {
5526    type FullType = Self;
5527    fn selection() -> String {
5528        "cursor".into()
5529    }
5530}
5531/// A continuous period of time during which an issue remained in a specific workflow state.
5532#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5533#[serde(rename_all = "camelCase", default)]
5534pub struct IssueStateSpan {
5535    /// The unique identifier of the state span.
5536    pub id: Option<String>,
5537    /// The workflow state identifier for this span.
5538    pub state_id: Option<String>,
5539    /// The timestamp when the issue entered this state.
5540    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
5541    /// The timestamp when the issue left this state. Null if the issue is currently in this state.
5542    pub ended_at: Option<chrono::DateTime<chrono::Utc>>,
5543    /// The workflow state for this span.
5544    pub state: Option<Box<WorkflowState>>,
5545}
5546impl GraphQLFields for IssueStateSpan {
5547    type FullType = Self;
5548    fn selection() -> String {
5549        "id stateId startedAt endedAt".into()
5550    }
5551}
5552#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5553#[serde(rename_all = "camelCase", default)]
5554pub struct IssueStateSpanConnection {
5555    pub edges: Option<Box<Vec<IssueStateSpanEdge>>>,
5556    pub nodes: Option<Box<Vec<IssueStateSpan>>>,
5557    pub page_info: Option<Box<PageInfo>>,
5558}
5559impl GraphQLFields for IssueStateSpanConnection {
5560    type FullType = Self;
5561    fn selection() -> String {
5562        "".into()
5563    }
5564}
5565#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5566#[serde(rename_all = "camelCase", default)]
5567pub struct IssueStateSpanEdge {
5568    pub node: Option<Box<IssueStateSpan>>,
5569    /// Used in `before` and `after` args
5570    pub cursor: Option<String>,
5571}
5572impl GraphQLFields for IssueStateSpanEdge {
5573    type FullType = Self;
5574    fn selection() -> String {
5575        "cursor".into()
5576    }
5577}
5578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5579#[serde(rename_all = "camelCase", default)]
5580pub struct IssueSuggestion {
5581    /// The unique identifier of the entity.
5582    pub id: Option<String>,
5583    /// The time at which the entity was created.
5584    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5585    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5586    /// been updated after creation.
5587    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5588    /// The time at which the entity was archived. Null if the entity has not been archived.
5589    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5590    pub issue: Option<Box<Issue>>,
5591    pub issue_id: Option<String>,
5592    pub r#type: Option<IssueSuggestionType>,
5593    pub state: Option<IssueSuggestionState>,
5594    pub state_changed_at: Option<chrono::DateTime<chrono::Utc>>,
5595    pub dismissal_reason: Option<String>,
5596    pub metadata: Option<Box<IssueSuggestionMetadata>>,
5597    pub suggested_issue: Option<Box<Issue>>,
5598    pub suggested_issue_id: Option<String>,
5599    pub suggested_team: Option<Box<Team>>,
5600    pub suggested_project: Option<Box<Project>>,
5601    pub suggested_user: Option<Box<User>>,
5602    pub suggested_user_id: Option<String>,
5603    pub suggested_label: Option<Box<IssueLabel>>,
5604    pub suggested_label_id: Option<String>,
5605}
5606impl GraphQLFields for IssueSuggestion {
5607    type FullType = Self;
5608    fn selection() -> String {
5609        "id createdAt updatedAt archivedAt issueId type state stateChangedAt dismissalReason suggestedIssueId suggestedUserId suggestedLabelId"
5610            .into()
5611    }
5612}
5613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5614#[serde(rename_all = "camelCase", default)]
5615pub struct IssueSuggestionConnection {
5616    pub edges: Option<Box<Vec<IssueSuggestionEdge>>>,
5617    pub nodes: Option<Box<Vec<IssueSuggestion>>>,
5618    pub page_info: Option<Box<PageInfo>>,
5619}
5620impl GraphQLFields for IssueSuggestionConnection {
5621    type FullType = Self;
5622    fn selection() -> String {
5623        "".into()
5624    }
5625}
5626#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5627#[serde(rename_all = "camelCase", default)]
5628pub struct IssueSuggestionEdge {
5629    pub node: Option<Box<IssueSuggestion>>,
5630    /// Used in `before` and `after` args
5631    pub cursor: Option<String>,
5632}
5633impl GraphQLFields for IssueSuggestionEdge {
5634    type FullType = Self;
5635    fn selection() -> String {
5636        "cursor".into()
5637    }
5638}
5639#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5640#[serde(rename_all = "camelCase", default)]
5641pub struct IssueSuggestionMetadata {
5642    pub score: Option<f64>,
5643    pub classification: Option<String>,
5644    pub reasons: Option<Vec<String>>,
5645    pub eval_log_id: Option<String>,
5646    pub rank: Option<f64>,
5647    pub variant: Option<String>,
5648    pub applied_automation_rule_id: Option<String>,
5649}
5650impl GraphQLFields for IssueSuggestionMetadata {
5651    type FullType = Self;
5652    fn selection() -> String {
5653        "score classification reasons evalLogId rank variant appliedAutomationRuleId".into()
5654    }
5655}
5656#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5657#[serde(rename_all = "camelCase", default)]
5658pub struct IssueTitleSuggestionFromCustomerRequestPayload {
5659    /// The identifier of the last sync operation.
5660    pub last_sync_id: Option<f64>,
5661    /// The suggested issue title.
5662    pub title: Option<String>,
5663    /// `Internal` The log id of the ai response.
5664    pub log_id: Option<String>,
5665}
5666impl GraphQLFields for IssueTitleSuggestionFromCustomerRequestPayload {
5667    type FullType = Self;
5668    fn selection() -> String {
5669        "lastSyncId title logId".into()
5670    }
5671}
5672/// `Internal` Join table between issues and releases.
5673#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5674#[serde(rename_all = "camelCase", default)]
5675pub struct IssueToRelease {
5676    /// The unique identifier of the entity.
5677    pub id: Option<String>,
5678    /// The time at which the entity was created.
5679    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5680    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5681    /// been updated after creation.
5682    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5683    /// The time at which the entity was archived. Null if the entity has not been archived.
5684    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5685    /// The issue associated with the release.
5686    pub issue: Option<Box<Issue>>,
5687    /// The release associated with the issue.
5688    pub release: Option<Box<Release>>,
5689    /// The pull request that linked this issue to the release.
5690    pub pull_request: Option<Box<PullRequest>>,
5691}
5692impl GraphQLFields for IssueToRelease {
5693    type FullType = Self;
5694    fn selection() -> String {
5695        "id createdAt updatedAt archivedAt".into()
5696    }
5697}
5698#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5699#[serde(rename_all = "camelCase", default)]
5700pub struct IssueToReleaseConnection {
5701    pub edges: Option<Box<Vec<IssueToReleaseEdge>>>,
5702    pub nodes: Option<Box<Vec<IssueToRelease>>>,
5703    pub page_info: Option<Box<PageInfo>>,
5704}
5705impl GraphQLFields for IssueToReleaseConnection {
5706    type FullType = Self;
5707    fn selection() -> String {
5708        "".into()
5709    }
5710}
5711#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5712#[serde(rename_all = "camelCase", default)]
5713pub struct IssueToReleaseEdge {
5714    pub node: Option<Box<IssueToRelease>>,
5715    /// Used in `before` and `after` args
5716    pub cursor: Option<String>,
5717}
5718impl GraphQLFields for IssueToReleaseEdge {
5719    type FullType = Self;
5720    fn selection() -> String {
5721        "cursor".into()
5722    }
5723}
5724/// `ALPHA` The result of an issueToRelease mutation.
5725#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5726#[serde(rename_all = "camelCase", default)]
5727pub struct IssueToReleasePayload {
5728    /// The identifier of the last sync operation.
5729    pub last_sync_id: Option<f64>,
5730    /// The issueToRelease that was created or updated.
5731    pub issue_to_release: Option<Box<IssueToRelease>>,
5732    /// Whether the operation was successful.
5733    pub success: Option<bool>,
5734}
5735impl GraphQLFields for IssueToReleasePayload {
5736    type FullType = Self;
5737    fn selection() -> String {
5738        "lastSyncId success".into()
5739    }
5740}
5741/// A label notification subscription.
5742#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5743#[serde(rename_all = "camelCase", default)]
5744pub struct LabelNotificationSubscription {
5745    /// The unique identifier of the entity.
5746    pub id: Option<String>,
5747    /// The time at which the entity was created.
5748    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5749    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5750    /// been updated after creation.
5751    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5752    /// The time at which the entity was archived. Null if the entity has not been archived.
5753    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5754    /// The user that subscribed to receive notifications.
5755    pub subscriber: Option<Box<User>>,
5756    /// The customer associated with the notification subscription.
5757    pub customer: Option<Box<Customer>>,
5758    /// The contextual custom view associated with the notification subscription.
5759    pub custom_view: Option<Box<CustomView>>,
5760    /// The contextual cycle view associated with the notification subscription.
5761    pub cycle: Option<Box<Cycle>>,
5762    /// The label subscribed to.
5763    pub label: Option<Box<IssueLabel>>,
5764    /// The contextual project view associated with the notification subscription.
5765    pub project: Option<Box<Project>>,
5766    /// The contextual initiative view associated with the notification subscription.
5767    pub initiative: Option<Box<Initiative>>,
5768    /// The team associated with the notification subscription.
5769    pub team: Option<Box<Team>>,
5770    /// The user view associated with the notification subscription.
5771    pub user: Option<Box<User>>,
5772    /// The type of view to which the notification subscription context is associated with.
5773    pub context_view_type: Option<ContextViewType>,
5774    /// The type of user view to which the notification subscription context is associated with.
5775    pub user_context_view_type: Option<UserContextViewType>,
5776    /// Whether the subscription is active or not.
5777    pub active: Option<bool>,
5778    /// The type of subscription.
5779    pub notification_subscription_types: Option<Vec<String>>,
5780}
5781impl GraphQLFields for LabelNotificationSubscription {
5782    type FullType = Self;
5783    fn selection() -> String {
5784        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
5785            .into()
5786    }
5787}
5788#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5789#[serde(rename_all = "camelCase", default)]
5790pub struct LogoutResponse {
5791    /// Whether the operation was successful.
5792    pub success: Option<bool>,
5793}
5794impl GraphQLFields for LogoutResponse {
5795    type FullType = Self;
5796    fn selection() -> String {
5797        "success".into()
5798    }
5799}
5800/// A generic payload return from entity archive mutations.
5801#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5802#[serde(rename_all = "camelCase", default)]
5803pub struct NotificationArchivePayload {
5804    /// The identifier of the last sync operation.
5805    pub last_sync_id: Option<f64>,
5806    /// Whether the operation was successful.
5807    pub success: Option<bool>,
5808}
5809impl GraphQLFields for NotificationArchivePayload {
5810    type FullType = Self;
5811    fn selection() -> String {
5812        "lastSyncId success".into()
5813    }
5814}
5815#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5816#[serde(rename_all = "camelCase", default)]
5817pub struct NotificationBatchActionPayload {
5818    /// The identifier of the last sync operation.
5819    pub last_sync_id: Option<f64>,
5820    /// Whether the operation was successful.
5821    pub success: Option<bool>,
5822}
5823impl GraphQLFields for NotificationBatchActionPayload {
5824    type FullType = Self;
5825    fn selection() -> String {
5826        "lastSyncId success".into()
5827    }
5828}
5829/// A user's notification category preferences.
5830#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5831#[serde(rename_all = "camelCase", default)]
5832pub struct NotificationCategoryPreferences {
5833    /// The preferences for notifications about assignments.
5834    pub assignments: Option<Box<NotificationChannelPreferences>>,
5835    /// The preferences for notifications about status changes.
5836    pub status_changes: Option<Box<NotificationChannelPreferences>>,
5837    /// The preferences for notifications about comments and replies.
5838    pub comments_and_replies: Option<Box<NotificationChannelPreferences>>,
5839    /// The preferences for notifications about mentions.
5840    pub mentions: Option<Box<NotificationChannelPreferences>>,
5841    /// The preferences for notifications about reactions.
5842    pub reactions: Option<Box<NotificationChannelPreferences>>,
5843    /// The preferences for notifications about subscriptions.
5844    pub subscriptions: Option<Box<NotificationChannelPreferences>>,
5845    /// The preferences for notifications about document changes.
5846    pub document_changes: Option<Box<NotificationChannelPreferences>>,
5847    /// The preferences for notifications about posts and updates.
5848    pub posts_and_updates: Option<Box<NotificationChannelPreferences>>,
5849    /// The preferences for notifications about reminders.
5850    pub reminders: Option<Box<NotificationChannelPreferences>>,
5851    /// The preferences for notifications about reviews.
5852    pub reviews: Option<Box<NotificationChannelPreferences>>,
5853    /// The preferences for notifications about apps and integrations.
5854    pub apps_and_integrations: Option<Box<NotificationChannelPreferences>>,
5855    /// The preferences for system notifications.
5856    pub system: Option<Box<NotificationChannelPreferences>>,
5857    /// The preferences for triage notifications.
5858    pub triage: Option<Box<NotificationChannelPreferences>>,
5859    /// The preferences for customer notifications.
5860    pub customers: Option<Box<NotificationChannelPreferences>>,
5861    /// The preferences for feed summary notifications.
5862    pub feed: Option<Box<NotificationChannelPreferences>>,
5863}
5864impl GraphQLFields for NotificationCategoryPreferences {
5865    type FullType = Self;
5866    fn selection() -> String {
5867        "".into()
5868    }
5869}
5870/// A user's notification channel preferences, indicating if a channel is enabled or not
5871#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5872#[serde(rename_all = "camelCase", default)]
5873pub struct NotificationChannelPreferences {
5874    /// Whether notifications are currently enabled for mobile.
5875    pub mobile: Option<bool>,
5876    /// Whether notifications are currently enabled for desktop.
5877    pub desktop: Option<bool>,
5878    /// Whether notifications are currently enabled for email.
5879    pub email: Option<bool>,
5880    /// Whether notifications are currently enabled for Slack.
5881    pub slack: Option<bool>,
5882}
5883impl GraphQLFields for NotificationChannelPreferences {
5884    type FullType = Self;
5885    fn selection() -> String {
5886        "mobile desktop email slack".into()
5887    }
5888}
5889#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5890#[serde(rename_all = "camelCase", default)]
5891pub struct NotificationConnection {
5892    pub edges: Option<Box<Vec<NotificationEdge>>>,
5893    pub page_info: Option<Box<PageInfo>>,
5894}
5895impl GraphQLFields for NotificationConnection {
5896    type FullType = Self;
5897    fn selection() -> String {
5898        "".into()
5899    }
5900}
5901/// A user's notification delivery preferences.
5902#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5903#[serde(rename_all = "camelCase", default)]
5904pub struct NotificationDeliveryPreferences {
5905    /// The delivery preferences for the mobile channel.
5906    pub mobile: Option<Box<NotificationDeliveryPreferencesChannel>>,
5907}
5908impl GraphQLFields for NotificationDeliveryPreferences {
5909    type FullType = Self;
5910    fn selection() -> String {
5911        "".into()
5912    }
5913}
5914/// A user's notification delivery preferences.
5915#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5916#[serde(rename_all = "camelCase", default)]
5917pub struct NotificationDeliveryPreferencesChannel {
5918    /// `DEPRECATED` Whether notifications are enabled for this channel. Use notificationChannelPreferences instead.
5919    pub notifications_disabled: Option<bool>,
5920    /// The schedule for notifications on this channel.
5921    pub schedule: Option<Box<NotificationDeliveryPreferencesSchedule>>,
5922}
5923impl GraphQLFields for NotificationDeliveryPreferencesChannel {
5924    type FullType = Self;
5925    fn selection() -> String {
5926        "notificationsDisabled".into()
5927    }
5928}
5929/// A user's notification delivery schedule for a particular day.
5930#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5931#[serde(rename_all = "camelCase", default)]
5932pub struct NotificationDeliveryPreferencesDay {
5933    /// The time notifications start.
5934    pub start: Option<String>,
5935    /// The time notifications end.
5936    pub end: Option<String>,
5937}
5938impl GraphQLFields for NotificationDeliveryPreferencesDay {
5939    type FullType = Self;
5940    fn selection() -> String {
5941        "start end".into()
5942    }
5943}
5944/// A user's notification delivery schedule for a particular day.
5945#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5946#[serde(rename_all = "camelCase", default)]
5947pub struct NotificationDeliveryPreferencesSchedule {
5948    /// Whether the schedule is disabled.
5949    pub disabled: Option<bool>,
5950    /// Delivery preferences for Sunday.
5951    pub sunday: Option<Box<NotificationDeliveryPreferencesDay>>,
5952    /// Delivery preferences for Monday.
5953    pub monday: Option<Box<NotificationDeliveryPreferencesDay>>,
5954    /// Delivery preferences for Tuesday.
5955    pub tuesday: Option<Box<NotificationDeliveryPreferencesDay>>,
5956    /// Delivery preferences for Wednesday.
5957    pub wednesday: Option<Box<NotificationDeliveryPreferencesDay>>,
5958    /// Delivery preferences for Thursday.
5959    pub thursday: Option<Box<NotificationDeliveryPreferencesDay>>,
5960    /// Delivery preferences for Friday.
5961    pub friday: Option<Box<NotificationDeliveryPreferencesDay>>,
5962    /// Delivery preferences for Saturday.
5963    pub saturday: Option<Box<NotificationDeliveryPreferencesDay>>,
5964}
5965impl GraphQLFields for NotificationDeliveryPreferencesSchedule {
5966    type FullType = Self;
5967    fn selection() -> String {
5968        "disabled".into()
5969    }
5970}
5971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5972#[serde(rename_all = "camelCase", default)]
5973pub struct NotificationEdge {
5974    /// Used in `before` and `after` args
5975    pub cursor: Option<String>,
5976}
5977impl GraphQLFields for NotificationEdge {
5978    type FullType = Self;
5979    fn selection() -> String {
5980        "cursor".into()
5981    }
5982}
5983#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5984#[serde(rename_all = "camelCase", default)]
5985pub struct NotificationPayload {
5986    /// The identifier of the last sync operation.
5987    pub last_sync_id: Option<f64>,
5988    /// Whether the operation was successful.
5989    pub success: Option<bool>,
5990}
5991impl GraphQLFields for NotificationPayload {
5992    type FullType = Self;
5993    fn selection() -> String {
5994        "lastSyncId success".into()
5995    }
5996}
5997#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5998#[serde(rename_all = "camelCase", default)]
5999pub struct NotificationSubscriptionConnection {
6000    pub edges: Option<Box<Vec<NotificationSubscriptionEdge>>>,
6001    pub page_info: Option<Box<PageInfo>>,
6002}
6003impl GraphQLFields for NotificationSubscriptionConnection {
6004    type FullType = Self;
6005    fn selection() -> String {
6006        "".into()
6007    }
6008}
6009#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6010#[serde(rename_all = "camelCase", default)]
6011pub struct NotificationSubscriptionEdge {
6012    /// Used in `before` and `after` args
6013    pub cursor: Option<String>,
6014}
6015impl GraphQLFields for NotificationSubscriptionEdge {
6016    type FullType = Self;
6017    fn selection() -> String {
6018        "cursor".into()
6019    }
6020}
6021#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6022#[serde(rename_all = "camelCase", default)]
6023pub struct NotificationSubscriptionPayload {
6024    /// The identifier of the last sync operation.
6025    pub last_sync_id: Option<f64>,
6026    /// Whether the operation was successful.
6027    pub success: Option<bool>,
6028}
6029impl GraphQLFields for NotificationSubscriptionPayload {
6030    type FullType = Self;
6031    fn selection() -> String {
6032        "lastSyncId success".into()
6033    }
6034}
6035/// Request to install OAuth clients on organizations and the response to the request.
6036#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6037#[serde(rename_all = "camelCase", default)]
6038pub struct OauthClientApproval {
6039    /// The unique identifier of the entity.
6040    pub id: Option<String>,
6041    /// The time at which the entity was created.
6042    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6043    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6044    /// been updated after creation.
6045    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6046    /// The time at which the entity was archived. Null if the entity has not been archived.
6047    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6048    /// The uuid of the OAuth client being requested for installation.
6049    pub oauth_client_id: Option<String>,
6050    /// The person who requested installing the OAuth client.
6051    pub requester_id: Option<String>,
6052    /// The person who responded to the request to install the OAuth client.
6053    pub responder_id: Option<String>,
6054    /// The status for the OAuth client approval request.
6055    pub status: Option<OAuthClientApprovalStatus>,
6056    /// The scopes the app has been approved for.
6057    pub scopes: Option<Vec<String>>,
6058    /// The reason the person wants to install this OAuth client.
6059    pub request_reason: Option<String>,
6060    /// The reason the request for the OAuth client approval was denied.
6061    pub deny_reason: Option<String>,
6062    /// New scopes that were requested for approval after the initial request.
6063    pub newly_requested_scopes: Option<Vec<String>>,
6064}
6065impl GraphQLFields for OauthClientApproval {
6066    type FullType = Self;
6067    fn selection() -> String {
6068        "id createdAt updatedAt archivedAt oauthClientId requesterId responderId status scopes requestReason denyReason newlyRequestedScopes"
6069            .into()
6070    }
6071}
6072/// An oauth client approval related notification.
6073#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6074#[serde(rename_all = "camelCase", default)]
6075pub struct OauthClientApprovalNotification {
6076    /// The unique identifier of the entity.
6077    pub id: Option<String>,
6078    /// The time at which the entity was created.
6079    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6080    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6081    /// been updated after creation.
6082    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6083    /// The time at which the entity was archived. Null if the entity has not been archived.
6084    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6085    /// Notification type.
6086    pub r#type: Option<String>,
6087    /// The user that caused the notification.
6088    pub actor: Option<Box<User>>,
6089    /// The external user that caused the notification.
6090    pub external_user_actor: Option<Box<ExternalUser>>,
6091    /// The user that received the notification.
6092    pub user: Option<Box<User>>,
6093    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
6094    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
6095    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
6096    /// reminder has been sent.
6097    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
6098    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
6099    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
6100    /// The time at which a notification was unsnoozed..
6101    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
6102    /// The category of the notification.
6103    pub category: Option<NotificationCategory>,
6104    /// `Internal` URL to the target of the notification.
6105    pub url: Option<String>,
6106    /// `Internal` Inbox URL for the notification.
6107    pub inbox_url: Option<String>,
6108    /// `Internal` Notification title.
6109    pub title: Option<String>,
6110    /// `Internal` Notification subtitle.
6111    pub subtitle: Option<String>,
6112    /// `Internal` If notification actor was Linear.
6113    pub is_linear_actor: Option<bool>,
6114    /// `Internal` Notification avatar URL.
6115    pub actor_avatar_url: Option<String>,
6116    /// `Internal` Notification actor initials if avatar is not available.
6117    pub actor_initials: Option<String>,
6118    /// `Internal` Notification actor initials if avatar is not available.
6119    pub actor_avatar_color: Option<String>,
6120    /// `Internal` Issue's status type for issue notifications.
6121    pub issue_status_type: Option<String>,
6122    /// `Internal` Project update health for new updates.
6123    pub project_update_health: Option<String>,
6124    /// `Internal` Initiative update health for new updates.
6125    pub initiative_update_health: Option<String>,
6126    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
6127    pub grouping_key: Option<String>,
6128    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
6129    pub grouping_priority: Option<f64>,
6130    /// The bot that caused the notification.
6131    pub bot_actor: Option<Box<ActorBot>>,
6132    /// Related OAuth client approval request ID.
6133    pub oauth_client_approval_id: Option<String>,
6134    /// The OAuth client approval request related to the notification.
6135    pub oauth_client_approval: Option<Box<OauthClientApproval>>,
6136}
6137impl GraphQLFields for OauthClientApprovalNotification {
6138    type FullType = Self;
6139    fn selection() -> String {
6140        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority oauthClientApprovalId"
6141            .into()
6142    }
6143}
6144/// An organization. Organizations are root-level objects that contain user accounts and teams.
6145#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6146#[serde(rename_all = "camelCase", default)]
6147pub struct Organization {
6148    /// The unique identifier of the entity.
6149    pub id: Option<String>,
6150    /// The time at which the entity was created.
6151    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6152    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6153    /// been updated after creation.
6154    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6155    /// The time at which the entity was archived. Null if the entity has not been archived.
6156    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6157    /// The organization's name.
6158    pub name: Option<String>,
6159    /// The organization's unique URL key.
6160    pub url_key: Option<String>,
6161    /// The organization's logo URL.
6162    pub logo_url: Option<String>,
6163    /// Rolling 30-day total upload volume for the organization, in megabytes.
6164    pub period_upload_volume: Option<f64>,
6165    /// `Internal` Facets associated with the organization.
6166    pub facets: Option<Box<Vec<Facet>>>,
6167    /// How git branches are formatted. If null, default formatting will be used.
6168    pub git_branch_format: Option<String>,
6169    /// Whether the Git integration linkback messages should be sent to private repositories.
6170    pub git_linkback_messages_enabled: Option<bool>,
6171    /// Whether the Git integration linkback messages should be sent to public repositories.
6172    pub git_public_linkback_messages_enabled: Option<bool>,
6173    /// Whether issue descriptions should be included in Git integration linkback messages.
6174    pub git_linkback_descriptions_enabled: Option<bool>,
6175    /// Whether the organization is using a roadmap.
6176    pub roadmap_enabled: Option<bool>,
6177    /// The n-weekly frequency at which to prompt for project updates. When not set, reminders are off.
6178    pub project_update_reminder_frequency_in_weeks: Option<f64>,
6179    /// The day at which to prompt for project updates.
6180    pub project_update_reminders_day: Option<Day>,
6181    /// The hour at which to prompt for project updates.
6182    pub project_update_reminders_hour: Option<f64>,
6183    /// The n-weekly frequency at which to prompt for initiative updates. When not set, reminders are off.
6184    pub initiative_update_reminder_frequency_in_weeks: Option<f64>,
6185    /// The day at which to prompt for initiative updates.
6186    pub initiative_update_reminders_day: Option<Day>,
6187    /// The hour at which to prompt for initiative updates.
6188    pub initiative_update_reminders_hour: Option<f64>,
6189    /// The month at which the fiscal year starts. Defaults to January (0).
6190    pub fiscal_year_start_month: Option<f64>,
6191    /// `Internal` The list of working days. Sunday is 0, Monday is 1, etc.
6192    pub working_days: Option<Vec<f64>>,
6193    /// Whether SAML authentication is enabled for organization.
6194    pub saml_enabled: Option<bool>,
6195    /// `INTERNAL` SAML settings.
6196    pub saml_settings: Option<serde_json::Value>,
6197    /// Whether SCIM provisioning is enabled for organization.
6198    pub scim_enabled: Option<bool>,
6199    /// `INTERNAL` SCIM settings.
6200    pub scim_settings: Option<serde_json::Value>,
6201    /// Security settings for the organization.
6202    pub security_settings: Option<serde_json::Value>,
6203    /// Allowed authentication providers, empty array means all are allowed.
6204    pub allowed_auth_services: Option<Vec<String>>,
6205    /// Allowed file upload content types
6206    pub allowed_file_upload_content_types: Option<Vec<String>>,
6207    /// IP restriction configurations.
6208    pub ip_restrictions: Option<Box<Vec<OrganizationIpRestriction>>>,
6209    /// The time at which deletion of the organization was requested.
6210    pub deletion_requested_at: Option<chrono::DateTime<chrono::Utc>>,
6211    /// The time at which the trial will end.
6212    pub trial_ends_at: Option<chrono::DateTime<chrono::Utc>>,
6213    /// The time at which the trial started.
6214    pub trial_starts_at: Option<chrono::DateTime<chrono::Utc>>,
6215    /// Previously used URL keys for the organization (last 3 are kept and redirected).
6216    pub previous_url_keys: Option<Vec<String>>,
6217    /// Whether HIPAA compliance is enabled for organization.
6218    pub hipaa_compliance_enabled: Option<bool>,
6219    /// `ALPHA` Theme settings for the organization.
6220    pub theme_settings: Option<serde_json::Value>,
6221    /// The feature release channel the organization belongs to.
6222    pub release_channel: Option<ReleaseChannel>,
6223    /// Configuration settings for the Customers feature.
6224    pub customers_configuration: Option<serde_json::Value>,
6225    /// `INTERNAL` Whether code intelligence is enabled for the organization.
6226    pub code_intelligence_enabled: Option<bool>,
6227    /// `INTERNAL` GitHub repository in owner/repo format for code intelligence.
6228    pub code_intelligence_repository: Option<String>,
6229    /// Default schedule for how often feed summaries are generated.
6230    pub default_feed_summary_schedule: Option<FeedSummarySchedule>,
6231    /// Whether the organization has enabled the feed feature.
6232    pub feed_enabled: Option<bool>,
6233    /// Whether to hide other organizations for new users signing up with email domains claimed by this organization.
6234    pub hide_non_primary_organizations: Option<bool>,
6235    /// `INTERNAL` Whether the organization has enabled the AI add-on (which at this point only includes triage suggestions).
6236    pub ai_addon_enabled: Option<bool>,
6237    /// `INTERNAL` Whether the organization has enabled generated updates.
6238    pub generated_updates_enabled: Option<bool>,
6239    /// Whether the organization has enabled resolved thread AI summaries.
6240    pub ai_thread_summaries_enabled: Option<bool>,
6241    /// Whether the organization has enabled AI discussion summaries for issues.
6242    pub ai_discussion_summaries_enabled: Option<bool>,
6243    /// `INTERNAL` Configure per-modality AI host providers and model families.
6244    pub ai_provider_configuration: Option<serde_json::Value>,
6245    /// `Internal` Whether the organization has enabled Linear Agent.
6246    pub linear_agent_enabled: Option<bool>,
6247    /// `DEPRECATED` Which day count to use for SLA calculations.
6248    pub sla_day_count: Option<SLADayCountType>,
6249    /// `DEPRECATED` The frequency at which to prompt for project updates.
6250    pub project_updates_reminder_frequency: Option<ProjectUpdateReminderFrequency>,
6251    /// `INTERNAL` Permitted AI providers.
6252    pub allowed_ai_providers: Option<Vec<String>>,
6253    /// Users associated with the organization.
6254    pub users: Option<Box<UserConnection>>,
6255    /// Teams associated with the organization.
6256    pub teams: Option<Box<TeamConnection>>,
6257    /// The organization's project statuses.
6258    pub project_statuses: Option<Box<Vec<ProjectStatus>>>,
6259    /// Integrations associated with the organization.
6260    pub integrations: Option<Box<IntegrationConnection>>,
6261    /// The Slack integration used for auto-creating project channels.
6262    pub slack_project_channel_integration: Option<Box<Integration>>,
6263    /// The prefix used for auto-created Slack project channels.
6264    pub slack_project_channel_prefix: Option<String>,
6265    /// The organization's subscription to a paid plan.
6266    pub subscription: Option<Box<PaidSubscription>>,
6267    /// Number of active users in the organization.
6268    pub user_count: Option<i64>,
6269    /// Aproximate number of issues in the organization, including archived ones.
6270    pub created_issue_count: Option<i64>,
6271    /// Templates associated with the organization.
6272    pub templates: Option<Box<TemplateConnection>>,
6273    /// Labels associated with the organization.
6274    pub labels: Option<Box<IssueLabelConnection>>,
6275    /// Project labels associated with the organization.
6276    pub project_labels: Option<Box<ProjectLabelConnection>>,
6277    /// Number of customers in the organization.
6278    pub customer_count: Option<i64>,
6279    /// Whether the organization is using Customers.
6280    pub customers_enabled: Option<bool>,
6281    /// `DEPRECATED` Whether member users are allowed to send invites.
6282    pub allow_members_to_invite: Option<bool>,
6283    /// `DEPRECATED` Whether team creation is restricted to admins.
6284    pub restrict_team_creation_to_admins: Option<bool>,
6285    /// `DEPRECATED` Whether workspace label creation, update, and deletion is restricted to admins.
6286    pub restrict_label_management_to_admins: Option<bool>,
6287}
6288impl GraphQLFields for Organization {
6289    type FullType = Self;
6290    fn selection() -> String {
6291        "id createdAt updatedAt archivedAt name urlKey logoUrl periodUploadVolume gitBranchFormat gitLinkbackMessagesEnabled gitPublicLinkbackMessagesEnabled gitLinkbackDescriptionsEnabled roadmapEnabled projectUpdateReminderFrequencyInWeeks projectUpdateRemindersDay projectUpdateRemindersHour initiativeUpdateReminderFrequencyInWeeks initiativeUpdateRemindersDay initiativeUpdateRemindersHour fiscalYearStartMonth workingDays samlEnabled samlSettings scimEnabled scimSettings securitySettings allowedAuthServices allowedFileUploadContentTypes deletionRequestedAt trialEndsAt trialStartsAt previousUrlKeys hipaaComplianceEnabled themeSettings releaseChannel customersConfiguration codeIntelligenceEnabled codeIntelligenceRepository defaultFeedSummarySchedule feedEnabled hideNonPrimaryOrganizations aiAddonEnabled generatedUpdatesEnabled aiThreadSummariesEnabled aiDiscussionSummariesEnabled aiProviderConfiguration linearAgentEnabled slaDayCount projectUpdatesReminderFrequency allowedAiProviders slackProjectChannelPrefix userCount createdIssueCount customerCount customersEnabled allowMembersToInvite restrictTeamCreationToAdmins restrictLabelManagementToAdmins"
6292            .into()
6293    }
6294}
6295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6296#[serde(rename_all = "camelCase", default)]
6297pub struct OrganizationAcceptedOrExpiredInviteDetailsPayload {
6298    /// The status of the invite.
6299    pub status: Option<OrganizationInviteStatus>,
6300}
6301impl GraphQLFields for OrganizationAcceptedOrExpiredInviteDetailsPayload {
6302    type FullType = Self;
6303    fn selection() -> String {
6304        "status".into()
6305    }
6306}
6307#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6308#[serde(rename_all = "camelCase", default)]
6309pub struct OrganizationCancelDeletePayload {
6310    /// Whether the operation was successful.
6311    pub success: Option<bool>,
6312}
6313impl GraphQLFields for OrganizationCancelDeletePayload {
6314    type FullType = Self;
6315    fn selection() -> String {
6316        "success".into()
6317    }
6318}
6319#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6320#[serde(rename_all = "camelCase", default)]
6321pub struct OrganizationDeletePayload {
6322    /// Whether the operation was successful.
6323    pub success: Option<bool>,
6324}
6325impl GraphQLFields for OrganizationDeletePayload {
6326    type FullType = Self;
6327    fn selection() -> String {
6328        "success".into()
6329    }
6330}
6331/// Defines the use of a domain by an organization.
6332#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6333#[serde(rename_all = "camelCase", default)]
6334pub struct OrganizationDomain {
6335    /// The unique identifier of the entity.
6336    pub id: Option<String>,
6337    /// The time at which the entity was created.
6338    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6339    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6340    /// been updated after creation.
6341    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6342    /// The time at which the entity was archived. Null if the entity has not been archived.
6343    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6344    /// The identity provider the domain belongs to.
6345    pub identity_provider: Option<Box<IdentityProvider>>,
6346    /// Domain name.
6347    pub name: Option<String>,
6348    /// Is this domain verified.
6349    pub verified: Option<bool>,
6350    /// E-mail used to verify this domain.
6351    pub verification_email: Option<String>,
6352    /// The user who added the domain.
6353    pub creator: Option<Box<User>>,
6354    /// What type of auth is the domain used for.
6355    pub auth_type: Option<OrganizationDomainAuthType>,
6356    /// Whether the domains was claimed by the organization through DNS verification.
6357    pub claimed: Option<bool>,
6358    /// Prevent users with this domain to create new workspaces.
6359    pub disable_organization_creation: Option<bool>,
6360}
6361impl GraphQLFields for OrganizationDomain {
6362    type FullType = Self;
6363    fn selection() -> String {
6364        "id createdAt updatedAt archivedAt name verified verificationEmail authType claimed disableOrganizationCreation"
6365            .into()
6366    }
6367}
6368/// `INTERNAL` Domain claim request response.
6369#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6370#[serde(rename_all = "camelCase", default)]
6371pub struct OrganizationDomainClaimPayload {
6372    /// String to put into DNS for verification.
6373    pub verification_string: Option<String>,
6374}
6375impl GraphQLFields for OrganizationDomainClaimPayload {
6376    type FullType = Self;
6377    fn selection() -> String {
6378        "verificationString".into()
6379    }
6380}
6381/// `INTERNAL` Organization domain operation response.
6382#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6383#[serde(rename_all = "camelCase", default)]
6384pub struct OrganizationDomainPayload {
6385    /// The identifier of the last sync operation.
6386    pub last_sync_id: Option<f64>,
6387    /// The organization domain that was created or updated.
6388    pub organization_domain: Option<Box<OrganizationDomain>>,
6389    /// Whether the operation was successful.
6390    pub success: Option<bool>,
6391}
6392impl GraphQLFields for OrganizationDomainPayload {
6393    type FullType = Self;
6394    fn selection() -> String {
6395        "lastSyncId success".into()
6396    }
6397}
6398/// `INTERNAL` Organization domain operation response.
6399#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6400#[serde(rename_all = "camelCase", default)]
6401pub struct OrganizationDomainSimplePayload {
6402    /// Whether the operation was successful.
6403    pub success: Option<bool>,
6404}
6405impl GraphQLFields for OrganizationDomainSimplePayload {
6406    type FullType = Self;
6407    fn selection() -> String {
6408        "success".into()
6409    }
6410}
6411#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6412#[serde(rename_all = "camelCase", default)]
6413pub struct OrganizationExistsPayload {
6414    /// Whether the operation was successful.
6415    pub success: Option<bool>,
6416    /// Whether the organization exists.
6417    pub exists: Option<bool>,
6418}
6419impl GraphQLFields for OrganizationExistsPayload {
6420    type FullType = Self;
6421    fn selection() -> String {
6422        "success exists".into()
6423    }
6424}
6425/// An invitation to the organization that has been sent via email.
6426#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6427#[serde(rename_all = "camelCase", default)]
6428pub struct OrganizationInvite {
6429    /// The unique identifier of the entity.
6430    pub id: Option<String>,
6431    /// The time at which the entity was created.
6432    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6433    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6434    /// been updated after creation.
6435    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6436    /// The time at which the entity was archived. Null if the entity has not been archived.
6437    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6438    /// The invitees email address.
6439    pub email: Option<String>,
6440    /// The user role that the invitee will receive upon accepting the invite.
6441    pub role: Option<UserRoleType>,
6442    /// The invite was sent to external address.
6443    pub external: Option<bool>,
6444    /// The time at which the invite was accepted. Null, if the invite hasn't been accepted.
6445    pub accepted_at: Option<chrono::DateTime<chrono::Utc>>,
6446    /// The time at which the invite will be expiring. Null, if the invite shouldn't expire.
6447    pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
6448    /// Extra metadata associated with the organization invite.
6449    pub metadata: Option<serde_json::Value>,
6450    /// The user who created the invitation.
6451    pub inviter: Option<Box<User>>,
6452    /// The user who has accepted the invite. Null, if the invite hasn't been accepted.
6453    pub invitee: Option<Box<User>>,
6454    /// The organization that the invite is associated with.
6455    pub organization: Option<Box<Organization>>,
6456}
6457impl GraphQLFields for OrganizationInvite {
6458    type FullType = Self;
6459    fn selection() -> String {
6460        "id createdAt updatedAt archivedAt email role external acceptedAt expiresAt metadata".into()
6461    }
6462}
6463#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6464#[serde(rename_all = "camelCase", default)]
6465pub struct OrganizationInviteConnection {
6466    pub edges: Option<Box<Vec<OrganizationInviteEdge>>>,
6467    pub nodes: Option<Box<Vec<OrganizationInvite>>>,
6468    pub page_info: Option<Box<PageInfo>>,
6469}
6470impl GraphQLFields for OrganizationInviteConnection {
6471    type FullType = Self;
6472    fn selection() -> String {
6473        "".into()
6474    }
6475}
6476#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6477#[serde(rename_all = "camelCase", default)]
6478pub struct OrganizationInviteEdge {
6479    pub node: Option<Box<OrganizationInvite>>,
6480    /// Used in `before` and `after` args
6481    pub cursor: Option<String>,
6482}
6483impl GraphQLFields for OrganizationInviteEdge {
6484    type FullType = Self;
6485    fn selection() -> String {
6486        "cursor".into()
6487    }
6488}
6489#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6490#[serde(rename_all = "camelCase", default)]
6491pub struct OrganizationInviteFullDetailsPayload {
6492    /// The status of the invite.
6493    pub status: Option<OrganizationInviteStatus>,
6494    /// The name of the inviter.
6495    pub inviter: Option<String>,
6496    /// The email of the invitee.
6497    pub email: Option<String>,
6498    /// What user role the invite should grant.
6499    pub role: Option<UserRoleType>,
6500    /// When the invite was created.
6501    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6502    /// Name of the workspace the invite is for.
6503    pub organization_name: Option<String>,
6504    /// ID of the workspace the invite is for.
6505    pub organization_id: Option<String>,
6506    /// URL of the workspace logo the invite is for.
6507    pub organization_logo_url: Option<String>,
6508    /// Whether the invite has already been accepted.
6509    pub accepted: Option<bool>,
6510    /// Whether the invite has expired.
6511    pub expired: Option<bool>,
6512    /// Allowed authentication providers, empty array means all are allowed.
6513    pub allowed_auth_services: Option<Vec<String>>,
6514}
6515impl GraphQLFields for OrganizationInviteFullDetailsPayload {
6516    type FullType = Self;
6517    fn selection() -> String {
6518        "status inviter email role createdAt organizationName organizationId organizationLogoUrl accepted expired allowedAuthServices"
6519            .into()
6520    }
6521}
6522#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6523#[serde(rename_all = "camelCase", default)]
6524pub struct OrganizationInvitePayload {
6525    /// The identifier of the last sync operation.
6526    pub last_sync_id: Option<f64>,
6527    /// The organization invite that was created or updated.
6528    pub organization_invite: Option<Box<OrganizationInvite>>,
6529    /// Whether the operation was successful.
6530    pub success: Option<bool>,
6531}
6532impl GraphQLFields for OrganizationInvitePayload {
6533    type FullType = Self;
6534    fn selection() -> String {
6535        "lastSyncId success".into()
6536    }
6537}
6538#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6539#[serde(rename_all = "camelCase", default)]
6540pub struct OrganizationIpRestriction {
6541    /// IP range in CIDR format.
6542    pub range: Option<String>,
6543    /// Restriction type.
6544    pub r#type: Option<String>,
6545    /// Optional restriction description.
6546    pub description: Option<String>,
6547    /// Whether the restriction is enabled.
6548    pub enabled: Option<bool>,
6549}
6550impl GraphQLFields for OrganizationIpRestriction {
6551    type FullType = Self;
6552    fn selection() -> String {
6553        "range type description enabled".into()
6554    }
6555}
6556#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6557#[serde(rename_all = "camelCase", default)]
6558pub struct OrganizationMeta {
6559    /// The region the organization is hosted in.
6560    pub region: Option<String>,
6561    /// Allowed authentication providers, empty array means all are allowed.
6562    pub allowed_auth_services: Option<Vec<String>>,
6563}
6564impl GraphQLFields for OrganizationMeta {
6565    type FullType = Self;
6566    fn selection() -> String {
6567        "region allowedAuthServices".into()
6568    }
6569}
6570#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6571#[serde(rename_all = "camelCase", default)]
6572pub struct OrganizationPayload {
6573    /// The identifier of the last sync operation.
6574    pub last_sync_id: Option<f64>,
6575    /// The organization that was created or updated.
6576    pub organization: Option<Box<Organization>>,
6577    /// Whether the operation was successful.
6578    pub success: Option<bool>,
6579}
6580impl GraphQLFields for OrganizationPayload {
6581    type FullType = Self;
6582    fn selection() -> String {
6583        "lastSyncId success".into()
6584    }
6585}
6586#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6587#[serde(rename_all = "camelCase", default)]
6588pub struct OrganizationStartTrialPayload {
6589    /// Whether the operation was successful.
6590    pub success: Option<bool>,
6591}
6592impl GraphQLFields for OrganizationStartTrialPayload {
6593    type FullType = Self;
6594    fn selection() -> String {
6595        "success".into()
6596    }
6597}
6598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6599#[serde(rename_all = "camelCase", default)]
6600pub struct PageInfo {
6601    /// Indicates if there are more results when paginating backward.
6602    pub has_previous_page: Option<bool>,
6603    /// Indicates if there are more results when paginating forward.
6604    pub has_next_page: Option<bool>,
6605    /// Cursor representing the first result in the paginated results.
6606    pub start_cursor: Option<String>,
6607    /// Cursor representing the last result in the paginated results.
6608    pub end_cursor: Option<String>,
6609}
6610impl GraphQLFields for PageInfo {
6611    type FullType = Self;
6612    fn selection() -> String {
6613        "hasPreviousPage hasNextPage startCursor endCursor".into()
6614    }
6615}
6616/// The paid subscription of an organization.
6617#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6618#[serde(rename_all = "camelCase", default)]
6619pub struct PaidSubscription {
6620    /// The unique identifier of the entity.
6621    pub id: Option<String>,
6622    /// The time at which the entity was created.
6623    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6624    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6625    /// been updated after creation.
6626    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6627    /// The time at which the entity was archived. Null if the entity has not been archived.
6628    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6629    /// The subscription type.
6630    pub r#type: Option<String>,
6631    /// The number of seats in the subscription.
6632    pub seats: Option<f64>,
6633    /// The minimum number of seats that will be billed in the subscription.
6634    pub seats_minimum: Option<f64>,
6635    /// The maximum number of seats that will be billed in the subscription.
6636    pub seats_maximum: Option<f64>,
6637    /// The creator of the subscription.
6638    pub creator: Option<Box<User>>,
6639    /// The organization that the subscription is associated with.
6640    pub organization: Option<Box<Organization>>,
6641    /// The collection method for this subscription, either automatically charged or invoiced.
6642    pub collection_method: Option<String>,
6643    /// The date the subscription was canceled, if any.
6644    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
6645    /// The date the subscription is scheduled to be canceled, if any.
6646    pub cancel_at: Option<chrono::DateTime<chrono::Utc>>,
6647    /// The subscription type of a pending change. Null if no change pending.
6648    pub pending_change_type: Option<String>,
6649    /// The date the subscription will be billed next.
6650    pub next_billing_at: Option<chrono::DateTime<chrono::Utc>>,
6651}
6652impl GraphQLFields for PaidSubscription {
6653    type FullType = Self;
6654    fn selection() -> String {
6655        "id createdAt updatedAt archivedAt type seats seatsMinimum seatsMaximum collectionMethod canceledAt cancelAt pendingChangeType nextBillingAt"
6656            .into()
6657    }
6658}
6659#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6660#[serde(rename_all = "camelCase", default)]
6661pub struct PasskeyLoginStartResponse {
6662    pub success: Option<bool>,
6663    pub options: Option<serde_json::Value>,
6664}
6665impl GraphQLFields for PasskeyLoginStartResponse {
6666    type FullType = Self;
6667    fn selection() -> String {
6668        "success options".into()
6669    }
6670}
6671/// `Internal` A generic post.
6672#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6673#[serde(rename_all = "camelCase", default)]
6674pub struct Post {
6675    /// The unique identifier of the entity.
6676    pub id: Option<String>,
6677    /// The time at which the entity was created.
6678    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6679    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6680    /// been updated after creation.
6681    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6682    /// The time at which the entity was archived. Null if the entity has not been archived.
6683    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6684    /// The update content in markdown format.
6685    pub body: Option<String>,
6686    /// `Internal` The content of the post as a Prosemirror document.
6687    pub body_data: Option<String>,
6688    /// `Internal` The written update data used to compose the written post.
6689    pub written_summary_data: Option<serde_json::Value>,
6690    /// The update content summarized for audio consumption.
6691    pub audio_summary: Option<String>,
6692    /// The post's title.
6693    pub title: Option<String>,
6694    /// The post's unique URL slug.
6695    pub slug_id: Option<String>,
6696    /// The user who wrote the post.
6697    pub creator: Option<Box<User>>,
6698    /// The time the post was edited.
6699    pub edited_at: Option<chrono::DateTime<chrono::Utc>>,
6700    /// Emoji reaction summary, grouped by emoji type.
6701    pub reaction_data: Option<serde_json::Value>,
6702    /// A URL of the TTL (text-to-language) for the body.
6703    pub ttl_url: Option<String>,
6704    /// The user that the post is associated with.
6705    pub user: Option<Box<User>>,
6706    /// The team that the post is associated with.
6707    pub team: Option<Box<Team>>,
6708    /// The type of the post.
6709    pub r#type: Option<PostType>,
6710    /// The log id of the ai response.
6711    pub eval_log_id: Option<String>,
6712    /// Schedule used to create a post summary.
6713    pub feed_summary_schedule_at_create: Option<FeedSummarySchedule>,
6714}
6715impl GraphQLFields for Post {
6716    type FullType = Self;
6717    fn selection() -> String {
6718        "id createdAt updatedAt archivedAt body bodyData writtenSummaryData audioSummary title slugId editedAt reactionData ttlUrl type evalLogId feedSummaryScheduleAtCreate"
6719            .into()
6720    }
6721}
6722/// A post related notification.
6723#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6724#[serde(rename_all = "camelCase", default)]
6725pub struct PostNotification {
6726    /// Related comment ID. Null if the notification is not related to a comment.
6727    pub comment_id: Option<String>,
6728    /// Related parent comment ID. Null if the notification is not related to a comment.
6729    pub parent_comment_id: Option<String>,
6730    /// Name of the reaction emoji related to the notification.
6731    pub reaction_emoji: Option<String>,
6732    /// The unique identifier of the entity.
6733    pub id: Option<String>,
6734    /// The time at which the entity was created.
6735    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6736    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6737    /// been updated after creation.
6738    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6739    /// The time at which the entity was archived. Null if the entity has not been archived.
6740    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6741    /// Notification type.
6742    pub r#type: Option<String>,
6743    /// The user that caused the notification.
6744    pub actor: Option<Box<User>>,
6745    /// The external user that caused the notification.
6746    pub external_user_actor: Option<Box<ExternalUser>>,
6747    /// The user that received the notification.
6748    pub user: Option<Box<User>>,
6749    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
6750    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
6751    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
6752    /// reminder has been sent.
6753    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
6754    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
6755    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
6756    /// The time at which a notification was unsnoozed..
6757    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
6758    /// The category of the notification.
6759    pub category: Option<NotificationCategory>,
6760    /// `Internal` URL to the target of the notification.
6761    pub url: Option<String>,
6762    /// `Internal` Inbox URL for the notification.
6763    pub inbox_url: Option<String>,
6764    /// `Internal` Notification title.
6765    pub title: Option<String>,
6766    /// `Internal` Notification subtitle.
6767    pub subtitle: Option<String>,
6768    /// `Internal` If notification actor was Linear.
6769    pub is_linear_actor: Option<bool>,
6770    /// `Internal` Notification avatar URL.
6771    pub actor_avatar_url: Option<String>,
6772    /// `Internal` Notification actor initials if avatar is not available.
6773    pub actor_initials: Option<String>,
6774    /// `Internal` Notification actor initials if avatar is not available.
6775    pub actor_avatar_color: Option<String>,
6776    /// `Internal` Issue's status type for issue notifications.
6777    pub issue_status_type: Option<String>,
6778    /// `Internal` Project update health for new updates.
6779    pub project_update_health: Option<String>,
6780    /// `Internal` Initiative update health for new updates.
6781    pub initiative_update_health: Option<String>,
6782    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
6783    pub grouping_key: Option<String>,
6784    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
6785    pub grouping_priority: Option<f64>,
6786    /// The bot that caused the notification.
6787    pub bot_actor: Option<Box<ActorBot>>,
6788    /// Related post ID.
6789    pub post_id: Option<String>,
6790}
6791impl GraphQLFields for PostNotification {
6792    type FullType = Self;
6793    fn selection() -> String {
6794        "commentId parentCommentId reactionEmoji id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority postId"
6795            .into()
6796    }
6797}
6798/// A project.
6799#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6800#[serde(rename_all = "camelCase", default)]
6801pub struct Project {
6802    /// The unique identifier of the entity.
6803    pub id: Option<String>,
6804    /// The time at which the entity was created.
6805    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6806    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6807    /// been updated after creation.
6808    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6809    /// The time at which the entity was archived. Null if the entity has not been archived.
6810    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6811    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
6812    pub update_reminder_frequency_in_weeks: Option<f64>,
6813    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
6814    pub update_reminder_frequency: Option<f64>,
6815    /// The resolution of the reminder frequency.
6816    pub frequency_resolution: Option<FrequencyResolutionType>,
6817    /// The day at which to prompt for updates.
6818    pub update_reminders_day: Option<Day>,
6819    /// The hour at which to prompt for updates.
6820    pub update_reminders_hour: Option<f64>,
6821    /// The project's name.
6822    pub name: Option<String>,
6823    /// The project's description.
6824    pub description: Option<String>,
6825    /// The project's unique URL slug.
6826    pub slug_id: Option<String>,
6827    /// The icon of the project.
6828    pub icon: Option<String>,
6829    /// The project's color.
6830    pub color: Option<String>,
6831    /// The status that the project is associated with.
6832    pub status: Option<Box<ProjectStatus>>,
6833    /// The user who created the project.
6834    pub creator: Option<Box<User>>,
6835    /// The project lead.
6836    pub lead: Option<Box<User>>,
6837    /// `Internal` Facets associated with the project.
6838    pub facets: Option<Box<Vec<Facet>>>,
6839    /// The time until which project update reminders are paused.
6840    pub project_update_reminders_paused_until_at: Option<chrono::DateTime<chrono::Utc>>,
6841    /// The estimated start date of the project.
6842    pub start_date: Option<chrono::NaiveDate>,
6843    /// The resolution of the project's start date.
6844    pub start_date_resolution: Option<DateResolutionType>,
6845    /// The estimated completion date of the project.
6846    pub target_date: Option<chrono::NaiveDate>,
6847    /// The resolution of the project's estimated completion date.
6848    pub target_date_resolution: Option<DateResolutionType>,
6849    /// The time at which the project was moved into started state.
6850    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
6851    /// The time at which the project was moved into completed state.
6852    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
6853    /// The time at which the project was moved into canceled state.
6854    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
6855    /// The time at which the project was automatically archived by the auto pruning process.
6856    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
6857    /// A flag that indicates whether the project is in the trash bin.
6858    pub trashed: Option<bool>,
6859    /// The sort order for the project within the organization.
6860    pub sort_order: Option<f64>,
6861    /// The sort order for the project within the organization, when ordered by priority.
6862    pub priority_sort_order: Option<f64>,
6863    /// The project was created based on this issue.
6864    pub converted_from_issue: Option<Box<Issue>>,
6865    /// The last template that was applied to this project.
6866    pub last_applied_template: Option<Box<Template>>,
6867    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
6868    pub priority: Option<i64>,
6869    /// The last project update posted for this project.
6870    pub last_update: Option<Box<ProjectUpdate>>,
6871    /// The health of the project.
6872    pub health: Option<ProjectUpdateHealthType>,
6873    /// The time at which the project health was updated.
6874    pub health_updated_at: Option<chrono::DateTime<chrono::Utc>>,
6875    /// The total number of issues in the project after each week.
6876    pub issue_count_history: Option<Vec<f64>>,
6877    /// The number of completed issues in the project after each week.
6878    pub completed_issue_count_history: Option<Vec<f64>>,
6879    /// The total number of estimation points after each week.
6880    pub scope_history: Option<Vec<f64>>,
6881    /// The number of completed estimation points after each week.
6882    pub completed_scope_history: Option<Vec<f64>>,
6883    /// The number of in progress estimation points after each week.
6884    pub in_progress_scope_history: Option<Vec<f64>>,
6885    /// `INTERNAL` The progress history of the project.
6886    pub progress_history: Option<serde_json::Value>,
6887    /// `INTERNAL` The current progress of the project.
6888    pub current_progress: Option<serde_json::Value>,
6889    /// Whether to send new issue notifications to Slack.
6890    pub slack_new_issue: Option<bool>,
6891    /// Whether to send new issue comment notifications to Slack.
6892    pub slack_issue_comments: Option<bool>,
6893    /// Whether to send new issue status updates to Slack.
6894    pub slack_issue_statuses: Option<bool>,
6895    /// Id of the labels associated with this project.
6896    pub label_ids: Option<Vec<String>>,
6897    /// The user's favorite associated with this project.
6898    pub favorite: Option<Box<Favorite>>,
6899    /// Project URL.
6900    pub url: Option<String>,
6901    /// Initiatives that this project belongs to.
6902    pub initiatives: Option<Box<InitiativeConnection>>,
6903    /// Associations of this project to parent initiatives.
6904    pub initiative_to_projects: Option<Box<InitiativeToProjectConnection>>,
6905    /// Teams associated with this project.
6906    pub teams: Option<Box<TeamConnection>>,
6907    /// Users that are members of the project.
6908    pub members: Option<Box<UserConnection>>,
6909    /// Project updates associated with the project.
6910    pub project_updates: Option<Box<ProjectUpdateConnection>>,
6911    /// Documents associated with the project.
6912    pub documents: Option<Box<DocumentConnection>>,
6913    /// Milestones associated with the project.
6914    pub project_milestones: Option<Box<ProjectMilestoneConnection>>,
6915    /// Issues associated with the project.
6916    pub issues: Option<Box<IssueConnection>>,
6917    /// External links associated with the project.
6918    pub external_links: Option<Box<EntityExternalLinkConnection>>,
6919    /// Attachments associated with the project.
6920    pub attachments: Option<Box<ProjectAttachmentConnection>>,
6921    /// History entries associated with the project.
6922    pub history: Option<Box<ProjectHistoryConnection>>,
6923    /// Labels associated with this project.
6924    pub labels: Option<Box<ProjectLabelConnection>>,
6925    /// The overall progress of the project. This is the (completed estimate points + 0.25 * in progress estimate points) / total estimate points.
6926    pub progress: Option<f64>,
6927    /// The overall scope (total estimate points) of the project.
6928    pub scope: Option<f64>,
6929    /// Settings for all integrations associated with that project.
6930    pub integrations_settings: Option<Box<IntegrationsSettings>>,
6931    /// The project's content in markdown format.
6932    pub content: Option<String>,
6933    /// `Internal` The project's content as YJS state.
6934    pub content_state: Option<String>,
6935    /// The content of the project description.
6936    pub document_content: Option<Box<DocumentContent>>,
6937    /// Comments associated with the project overview.
6938    pub comments: Option<Box<CommentConnection>>,
6939    /// Relations associated with this project.
6940    pub relations: Option<Box<ProjectRelationConnection>>,
6941    /// Inverse relations associated with this project.
6942    pub inverse_relations: Option<Box<ProjectRelationConnection>>,
6943    /// Customer needs associated with the project.
6944    pub needs: Option<Box<CustomerNeedConnection>>,
6945    /// `DEPRECATED` The type of the state.
6946    pub state: Option<String>,
6947    /// The priority of the project as a label.
6948    pub priority_label: Option<String>,
6949}
6950impl GraphQLFields for Project {
6951    type FullType = Self;
6952    fn selection() -> String {
6953        "id createdAt updatedAt archivedAt updateReminderFrequencyInWeeks updateReminderFrequency frequencyResolution updateRemindersDay updateRemindersHour name description slugId icon color projectUpdateRemindersPausedUntilAt startDate startDateResolution targetDate targetDateResolution startedAt completedAt canceledAt autoArchivedAt trashed sortOrder prioritySortOrder priority health healthUpdatedAt issueCountHistory completedIssueCountHistory scopeHistory completedScopeHistory inProgressScopeHistory progressHistory currentProgress slackNewIssue slackIssueComments slackIssueStatuses labelIds url progress scope content contentState state priorityLabel"
6954            .into()
6955    }
6956}
6957/// A generic payload return from entity archive mutations.
6958#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6959#[serde(rename_all = "camelCase", default)]
6960pub struct ProjectArchivePayload {
6961    /// The identifier of the last sync operation.
6962    pub last_sync_id: Option<f64>,
6963    /// Whether the operation was successful.
6964    pub success: Option<bool>,
6965    /// The archived/unarchived entity. Null if entity was deleted.
6966    pub entity: Option<Box<Project>>,
6967}
6968impl GraphQLFields for ProjectArchivePayload {
6969    type FullType = Self;
6970    fn selection() -> String {
6971        "lastSyncId success".into()
6972    }
6973}
6974/// Project attachment
6975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6976#[serde(rename_all = "camelCase", default)]
6977pub struct ProjectAttachment {
6978    /// The unique identifier of the entity.
6979    pub id: Option<String>,
6980    /// The time at which the entity was created.
6981    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6982    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6983    /// been updated after creation.
6984    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6985    /// The time at which the entity was archived. Null if the entity has not been archived.
6986    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6987    /// Title of the attachment.
6988    pub title: Option<String>,
6989    /// Optional subtitle of the attachment
6990    pub subtitle: Option<String>,
6991    /// URL of the attachment.
6992    pub url: Option<String>,
6993    /// The creator of the attachment.
6994    pub creator: Option<Box<User>>,
6995    /// Custom metadata related to the attachment.
6996    pub metadata: Option<serde_json::Value>,
6997    /// Information about the external source which created the attachment.
6998    pub source: Option<serde_json::Value>,
6999    /// An accessor helper to source.type, defines the source type of the attachment.
7000    pub source_type: Option<String>,
7001}
7002impl GraphQLFields for ProjectAttachment {
7003    type FullType = Self;
7004    fn selection() -> String {
7005        "id createdAt updatedAt archivedAt title subtitle url metadata source sourceType".into()
7006    }
7007}
7008#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7009#[serde(rename_all = "camelCase", default)]
7010pub struct ProjectAttachmentConnection {
7011    pub edges: Option<Box<Vec<ProjectAttachmentEdge>>>,
7012    pub nodes: Option<Box<Vec<ProjectAttachment>>>,
7013    pub page_info: Option<Box<PageInfo>>,
7014}
7015impl GraphQLFields for ProjectAttachmentConnection {
7016    type FullType = Self;
7017    fn selection() -> String {
7018        "".into()
7019    }
7020}
7021#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7022#[serde(rename_all = "camelCase", default)]
7023pub struct ProjectAttachmentEdge {
7024    pub node: Option<Box<ProjectAttachment>>,
7025    /// Used in `before` and `after` args
7026    pub cursor: Option<String>,
7027}
7028impl GraphQLFields for ProjectAttachmentEdge {
7029    type FullType = Self;
7030    fn selection() -> String {
7031        "cursor".into()
7032    }
7033}
7034#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7035#[serde(rename_all = "camelCase", default)]
7036pub struct ProjectConnection {
7037    pub edges: Option<Box<Vec<ProjectEdge>>>,
7038    pub nodes: Option<Box<Vec<Project>>>,
7039    pub page_info: Option<Box<PageInfo>>,
7040}
7041impl GraphQLFields for ProjectConnection {
7042    type FullType = Self;
7043    fn selection() -> String {
7044        "".into()
7045    }
7046}
7047#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7048#[serde(rename_all = "camelCase", default)]
7049pub struct ProjectEdge {
7050    pub node: Option<Box<Project>>,
7051    /// Used in `before` and `after` args
7052    pub cursor: Option<String>,
7053}
7054impl GraphQLFields for ProjectEdge {
7055    type FullType = Self;
7056    fn selection() -> String {
7057        "cursor".into()
7058    }
7059}
7060#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7061#[serde(rename_all = "camelCase", default)]
7062pub struct ProjectFilterSuggestionPayload {
7063    /// The json filter that is suggested.
7064    pub filter: Option<serde_json::Value>,
7065    /// The log id of the prompt, that created this filter.
7066    pub log_id: Option<String>,
7067}
7068impl GraphQLFields for ProjectFilterSuggestionPayload {
7069    type FullType = Self;
7070    fn selection() -> String {
7071        "filter logId".into()
7072    }
7073}
7074/// An history associated with a project.
7075#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7076#[serde(rename_all = "camelCase", default)]
7077pub struct ProjectHistory {
7078    /// The unique identifier of the entity.
7079    pub id: Option<String>,
7080    /// The time at which the entity was created.
7081    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7082    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7083    /// been updated after creation.
7084    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7085    /// The time at which the entity was archived. Null if the entity has not been archived.
7086    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7087    /// The events that happened while recording that history.
7088    pub entries: Option<serde_json::Value>,
7089    /// The project that the history is associated with.
7090    pub project: Option<Box<Project>>,
7091}
7092impl GraphQLFields for ProjectHistory {
7093    type FullType = Self;
7094    fn selection() -> String {
7095        "id createdAt updatedAt archivedAt entries".into()
7096    }
7097}
7098#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7099#[serde(rename_all = "camelCase", default)]
7100pub struct ProjectHistoryConnection {
7101    pub edges: Option<Box<Vec<ProjectHistoryEdge>>>,
7102    pub nodes: Option<Box<Vec<ProjectHistory>>>,
7103    pub page_info: Option<Box<PageInfo>>,
7104}
7105impl GraphQLFields for ProjectHistoryConnection {
7106    type FullType = Self;
7107    fn selection() -> String {
7108        "".into()
7109    }
7110}
7111#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7112#[serde(rename_all = "camelCase", default)]
7113pub struct ProjectHistoryEdge {
7114    pub node: Option<Box<ProjectHistory>>,
7115    /// Used in `before` and `after` args
7116    pub cursor: Option<String>,
7117}
7118impl GraphQLFields for ProjectHistoryEdge {
7119    type FullType = Self;
7120    fn selection() -> String {
7121        "cursor".into()
7122    }
7123}
7124/// Labels that can be associated with projects.
7125#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7126#[serde(rename_all = "camelCase", default)]
7127pub struct ProjectLabel {
7128    /// The unique identifier of the entity.
7129    pub id: Option<String>,
7130    /// The time at which the entity was created.
7131    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7132    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7133    /// been updated after creation.
7134    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7135    /// The time at which the entity was archived. Null if the entity has not been archived.
7136    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7137    /// The label's name.
7138    pub name: Option<String>,
7139    /// The label's description.
7140    pub description: Option<String>,
7141    /// The label's color as a HEX string.
7142    pub color: Option<String>,
7143    /// Whether the label is a group.
7144    pub is_group: Option<bool>,
7145    /// The date when the label was last applied to an issue or project.
7146    pub last_applied_at: Option<chrono::DateTime<chrono::Utc>>,
7147    /// `Internal` When the label was retired.
7148    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
7149    pub organization: Option<Box<Organization>>,
7150    /// The user who created the label.
7151    pub creator: Option<Box<User>>,
7152    /// The user who retired the label.
7153    pub retired_by: Option<Box<User>>,
7154    /// The parent label.
7155    pub parent: Option<Box<ProjectLabel>>,
7156    /// Projects associated with the label.
7157    pub projects: Option<Box<ProjectConnection>>,
7158    /// Children of the label.
7159    pub children: Option<Box<ProjectLabelConnection>>,
7160}
7161impl GraphQLFields for ProjectLabel {
7162    type FullType = Self;
7163    fn selection() -> String {
7164        "id createdAt updatedAt archivedAt name description color isGroup lastAppliedAt retiredAt"
7165            .into()
7166    }
7167}
7168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7169#[serde(rename_all = "camelCase", default)]
7170pub struct ProjectLabelConnection {
7171    pub edges: Option<Box<Vec<ProjectLabelEdge>>>,
7172    pub nodes: Option<Box<Vec<ProjectLabel>>>,
7173    pub page_info: Option<Box<PageInfo>>,
7174}
7175impl GraphQLFields for ProjectLabelConnection {
7176    type FullType = Self;
7177    fn selection() -> String {
7178        "".into()
7179    }
7180}
7181#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7182#[serde(rename_all = "camelCase", default)]
7183pub struct ProjectLabelEdge {
7184    pub node: Option<Box<ProjectLabel>>,
7185    /// Used in `before` and `after` args
7186    pub cursor: Option<String>,
7187}
7188impl GraphQLFields for ProjectLabelEdge {
7189    type FullType = Self;
7190    fn selection() -> String {
7191        "cursor".into()
7192    }
7193}
7194#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7195#[serde(rename_all = "camelCase", default)]
7196pub struct ProjectLabelPayload {
7197    /// The identifier of the last sync operation.
7198    pub last_sync_id: Option<f64>,
7199    /// The label that was created or updated.
7200    pub project_label: Option<Box<ProjectLabel>>,
7201    /// Whether the operation was successful.
7202    pub success: Option<bool>,
7203}
7204impl GraphQLFields for ProjectLabelPayload {
7205    type FullType = Self;
7206    fn selection() -> String {
7207        "lastSyncId success".into()
7208    }
7209}
7210/// A milestone for a project.
7211#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7212#[serde(rename_all = "camelCase", default)]
7213pub struct ProjectMilestone {
7214    /// The unique identifier of the entity.
7215    pub id: Option<String>,
7216    /// The time at which the entity was created.
7217    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7218    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7219    /// been updated after creation.
7220    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7221    /// The time at which the entity was archived. Null if the entity has not been archived.
7222    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7223    /// The name of the project milestone.
7224    pub name: Option<String>,
7225    /// The content of the project milestone description.
7226    pub document_content: Option<Box<DocumentContent>>,
7227    /// The planned completion date of the milestone.
7228    pub target_date: Option<chrono::NaiveDate>,
7229    /// The project of the milestone.
7230    pub project: Option<Box<Project>>,
7231    /// `Internal` The progress history of the project milestone.
7232    pub progress_history: Option<serde_json::Value>,
7233    /// `Internal` The current progress of the project milestone.
7234    pub current_progress: Option<serde_json::Value>,
7235    /// The order of the milestone in relation to other milestones within a project.
7236    pub sort_order: Option<f64>,
7237    /// The project milestone's description in markdown format.
7238    pub description: Option<String>,
7239    /// The status of the project milestone.
7240    pub status: Option<ProjectMilestoneStatus>,
7241    /// The progress % of the project milestone.
7242    pub progress: Option<f64>,
7243    /// `Internal` The project milestone's description as YJS state.
7244    pub description_state: Option<String>,
7245    /// Issues associated with the project milestone.
7246    pub issues: Option<Box<IssueConnection>>,
7247}
7248impl GraphQLFields for ProjectMilestone {
7249    type FullType = Self;
7250    fn selection() -> String {
7251        "id createdAt updatedAt archivedAt name targetDate progressHistory currentProgress sortOrder description status progress"
7252            .into()
7253    }
7254}
7255#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7256#[serde(rename_all = "camelCase", default)]
7257pub struct ProjectMilestoneConnection {
7258    pub edges: Option<Box<Vec<ProjectMilestoneEdge>>>,
7259    pub nodes: Option<Box<Vec<ProjectMilestone>>>,
7260    pub page_info: Option<Box<PageInfo>>,
7261}
7262impl GraphQLFields for ProjectMilestoneConnection {
7263    type FullType = Self;
7264    fn selection() -> String {
7265        "".into()
7266    }
7267}
7268#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7269#[serde(rename_all = "camelCase", default)]
7270pub struct ProjectMilestoneEdge {
7271    pub node: Option<Box<ProjectMilestone>>,
7272    /// Used in `before` and `after` args
7273    pub cursor: Option<String>,
7274}
7275impl GraphQLFields for ProjectMilestoneEdge {
7276    type FullType = Self;
7277    fn selection() -> String {
7278        "cursor".into()
7279    }
7280}
7281#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7282#[serde(rename_all = "camelCase", default)]
7283pub struct ProjectMilestoneMoveIssueToTeam {
7284    /// The issue id in this relationship, you can use * as wildcard if all issues are being moved to the same team
7285    pub issue_id: Option<String>,
7286    /// The team id in this relationship
7287    pub team_id: Option<String>,
7288}
7289impl GraphQLFields for ProjectMilestoneMoveIssueToTeam {
7290    type FullType = Self;
7291    fn selection() -> String {
7292        "issueId teamId".into()
7293    }
7294}
7295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7296#[serde(rename_all = "camelCase", default)]
7297pub struct ProjectMilestoneMovePayload {
7298    /// The identifier of the last sync operation.
7299    pub last_sync_id: Option<f64>,
7300    /// The project milestone that was created or updated.
7301    pub project_milestone: Option<Box<ProjectMilestone>>,
7302    /// Whether the operation was successful.
7303    pub success: Option<bool>,
7304    /// A snapshot of the issues that were moved to new teams, if the user selected to do it, containing an array of mappings between an issue and its previous team. Store on the client to use for undoing a previous milestone move.
7305    pub previous_issue_team_ids: Option<Box<Vec<ProjectMilestoneMoveIssueToTeam>>>,
7306    /// A snapshot of the project that had new teams added to it, if the user selected to do it, containing an array of mappings between a project and its previous teams. Store on the client to use for undoing a previous milestone move.
7307    pub previous_project_team_ids: Option<Box<ProjectMilestoneMoveProjectTeams>>,
7308}
7309impl GraphQLFields for ProjectMilestoneMovePayload {
7310    type FullType = Self;
7311    fn selection() -> String {
7312        "lastSyncId success".into()
7313    }
7314}
7315#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7316#[serde(rename_all = "camelCase", default)]
7317pub struct ProjectMilestoneMoveProjectTeams {
7318    /// The project id
7319    pub project_id: Option<String>,
7320    /// The team ids for the project
7321    pub team_ids: Option<Vec<String>>,
7322}
7323impl GraphQLFields for ProjectMilestoneMoveProjectTeams {
7324    type FullType = Self;
7325    fn selection() -> String {
7326        "projectId teamIds".into()
7327    }
7328}
7329#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7330#[serde(rename_all = "camelCase", default)]
7331pub struct ProjectMilestonePayload {
7332    /// The identifier of the last sync operation.
7333    pub last_sync_id: Option<f64>,
7334    /// The project milestone that was created or updated.
7335    pub project_milestone: Option<Box<ProjectMilestone>>,
7336    /// Whether the operation was successful.
7337    pub success: Option<bool>,
7338}
7339impl GraphQLFields for ProjectMilestonePayload {
7340    type FullType = Self;
7341    fn selection() -> String {
7342        "lastSyncId success".into()
7343    }
7344}
7345/// A project related notification.
7346#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7347#[serde(rename_all = "camelCase", default)]
7348pub struct ProjectNotification {
7349    /// Related comment ID. Null if the notification is not related to a comment.
7350    pub comment_id: Option<String>,
7351    /// Related parent comment ID. Null if the notification is not related to a comment.
7352    pub parent_comment_id: Option<String>,
7353    /// Name of the reaction emoji related to the notification.
7354    pub reaction_emoji: Option<String>,
7355    /// The unique identifier of the entity.
7356    pub id: Option<String>,
7357    /// The time at which the entity was created.
7358    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7359    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7360    /// been updated after creation.
7361    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7362    /// The time at which the entity was archived. Null if the entity has not been archived.
7363    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7364    /// Notification type.
7365    pub r#type: Option<String>,
7366    /// The user that caused the notification.
7367    pub actor: Option<Box<User>>,
7368    /// The external user that caused the notification.
7369    pub external_user_actor: Option<Box<ExternalUser>>,
7370    /// The user that received the notification.
7371    pub user: Option<Box<User>>,
7372    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
7373    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
7374    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
7375    /// reminder has been sent.
7376    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
7377    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
7378    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
7379    /// The time at which a notification was unsnoozed..
7380    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
7381    /// The category of the notification.
7382    pub category: Option<NotificationCategory>,
7383    /// `Internal` URL to the target of the notification.
7384    pub url: Option<String>,
7385    /// `Internal` Inbox URL for the notification.
7386    pub inbox_url: Option<String>,
7387    /// `Internal` Notification title.
7388    pub title: Option<String>,
7389    /// `Internal` Notification subtitle.
7390    pub subtitle: Option<String>,
7391    /// `Internal` If notification actor was Linear.
7392    pub is_linear_actor: Option<bool>,
7393    /// `Internal` Notification avatar URL.
7394    pub actor_avatar_url: Option<String>,
7395    /// `Internal` Notification actor initials if avatar is not available.
7396    pub actor_initials: Option<String>,
7397    /// `Internal` Notification actor initials if avatar is not available.
7398    pub actor_avatar_color: Option<String>,
7399    /// `Internal` Issue's status type for issue notifications.
7400    pub issue_status_type: Option<String>,
7401    /// `Internal` Project update health for new updates.
7402    pub project_update_health: Option<String>,
7403    /// `Internal` Initiative update health for new updates.
7404    pub initiative_update_health: Option<String>,
7405    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
7406    pub grouping_key: Option<String>,
7407    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
7408    pub grouping_priority: Option<f64>,
7409    /// The bot that caused the notification.
7410    pub bot_actor: Option<Box<ActorBot>>,
7411    /// Related project ID.
7412    pub project_id: Option<String>,
7413    /// Related project milestone ID.
7414    pub project_milestone_id: Option<String>,
7415    /// Related project update ID.
7416    pub project_update_id: Option<String>,
7417    /// The project related to the notification.
7418    pub project: Option<Box<Project>>,
7419    /// The document related to the notification.
7420    pub document: Option<Box<Document>>,
7421    /// The project update related to the notification.
7422    pub project_update: Option<Box<ProjectUpdate>>,
7423    /// The comment related to the notification.
7424    pub comment: Option<Box<Comment>>,
7425    /// The parent comment related to the notification, if a notification is a reply comment notification.
7426    pub parent_comment: Option<Box<Comment>>,
7427}
7428impl GraphQLFields for ProjectNotification {
7429    type FullType = Self;
7430    fn selection() -> String {
7431        "commentId parentCommentId reactionEmoji id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority projectId projectMilestoneId projectUpdateId"
7432            .into()
7433    }
7434}
7435/// A project notification subscription.
7436#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7437#[serde(rename_all = "camelCase", default)]
7438pub struct ProjectNotificationSubscription {
7439    /// The unique identifier of the entity.
7440    pub id: Option<String>,
7441    /// The time at which the entity was created.
7442    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7443    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7444    /// been updated after creation.
7445    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7446    /// The time at which the entity was archived. Null if the entity has not been archived.
7447    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7448    /// The user that subscribed to receive notifications.
7449    pub subscriber: Option<Box<User>>,
7450    /// The customer associated with the notification subscription.
7451    pub customer: Option<Box<Customer>>,
7452    /// The contextual custom view associated with the notification subscription.
7453    pub custom_view: Option<Box<CustomView>>,
7454    /// The contextual cycle view associated with the notification subscription.
7455    pub cycle: Option<Box<Cycle>>,
7456    /// The contextual label view associated with the notification subscription.
7457    pub label: Option<Box<IssueLabel>>,
7458    /// The project subscribed to.
7459    pub project: Option<Box<Project>>,
7460    /// The contextual initiative view associated with the notification subscription.
7461    pub initiative: Option<Box<Initiative>>,
7462    /// The team associated with the notification subscription.
7463    pub team: Option<Box<Team>>,
7464    /// The user view associated with the notification subscription.
7465    pub user: Option<Box<User>>,
7466    /// The type of view to which the notification subscription context is associated with.
7467    pub context_view_type: Option<ContextViewType>,
7468    /// The type of user view to which the notification subscription context is associated with.
7469    pub user_context_view_type: Option<UserContextViewType>,
7470    /// Whether the subscription is active or not.
7471    pub active: Option<bool>,
7472    /// The type of subscription.
7473    pub notification_subscription_types: Option<Vec<String>>,
7474}
7475impl GraphQLFields for ProjectNotificationSubscription {
7476    type FullType = Self;
7477    fn selection() -> String {
7478        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
7479            .into()
7480    }
7481}
7482#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7483#[serde(rename_all = "camelCase", default)]
7484pub struct ProjectPayload {
7485    /// The identifier of the last sync operation.
7486    pub last_sync_id: Option<f64>,
7487    /// The project that was created or updated.
7488    pub project: Option<Box<Project>>,
7489    /// Whether the operation was successful.
7490    pub success: Option<bool>,
7491}
7492impl GraphQLFields for ProjectPayload {
7493    type FullType = Self;
7494    fn selection() -> String {
7495        "lastSyncId success".into()
7496    }
7497}
7498/// A relation between two projects.
7499#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7500#[serde(rename_all = "camelCase", default)]
7501pub struct ProjectRelation {
7502    /// The unique identifier of the entity.
7503    pub id: Option<String>,
7504    /// The time at which the entity was created.
7505    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7506    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7507    /// been updated after creation.
7508    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7509    /// The time at which the entity was archived. Null if the entity has not been archived.
7510    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7511    /// The relationship of the project with the related project.
7512    pub r#type: Option<String>,
7513    /// The project whose relationship is being described.
7514    pub project: Option<Box<Project>>,
7515    /// The milestone within the project whose relationship is being described.
7516    pub project_milestone: Option<Box<ProjectMilestone>>,
7517    /// The type of anchor on the project end of the relation.
7518    pub anchor_type: Option<String>,
7519    /// The related project.
7520    pub related_project: Option<Box<Project>>,
7521    /// The milestone within the related project whose relationship is being described.
7522    pub related_project_milestone: Option<Box<ProjectMilestone>>,
7523    /// The type of anchor on the relatedProject end of the relation.
7524    pub related_anchor_type: Option<String>,
7525    /// The last user who created or modified the relation.
7526    pub user: Option<Box<User>>,
7527}
7528impl GraphQLFields for ProjectRelation {
7529    type FullType = Self;
7530    fn selection() -> String {
7531        "id createdAt updatedAt archivedAt type anchorType relatedAnchorType".into()
7532    }
7533}
7534#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7535#[serde(rename_all = "camelCase", default)]
7536pub struct ProjectRelationConnection {
7537    pub edges: Option<Box<Vec<ProjectRelationEdge>>>,
7538    pub nodes: Option<Box<Vec<ProjectRelation>>>,
7539    pub page_info: Option<Box<PageInfo>>,
7540}
7541impl GraphQLFields for ProjectRelationConnection {
7542    type FullType = Self;
7543    fn selection() -> String {
7544        "".into()
7545    }
7546}
7547#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7548#[serde(rename_all = "camelCase", default)]
7549pub struct ProjectRelationEdge {
7550    pub node: Option<Box<ProjectRelation>>,
7551    /// Used in `before` and `after` args
7552    pub cursor: Option<String>,
7553}
7554impl GraphQLFields for ProjectRelationEdge {
7555    type FullType = Self;
7556    fn selection() -> String {
7557        "cursor".into()
7558    }
7559}
7560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7561#[serde(rename_all = "camelCase", default)]
7562pub struct ProjectRelationPayload {
7563    /// The identifier of the last sync operation.
7564    pub last_sync_id: Option<f64>,
7565    /// The project relation that was created or updated.
7566    pub project_relation: Option<Box<ProjectRelation>>,
7567    /// Whether the operation was successful.
7568    pub success: Option<bool>,
7569}
7570impl GraphQLFields for ProjectRelationPayload {
7571    type FullType = Self;
7572    fn selection() -> String {
7573        "lastSyncId success".into()
7574    }
7575}
7576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7577#[serde(rename_all = "camelCase", default)]
7578pub struct ProjectSearchPayload {
7579    pub edges: Option<Box<Vec<ProjectSearchResultEdge>>>,
7580    pub nodes: Option<Box<Vec<ProjectSearchResult>>>,
7581    pub page_info: Option<Box<PageInfo>>,
7582    /// Archived entities matching the search term along with all their dependencies.
7583    pub archive_payload: Option<Box<ArchiveResponse>>,
7584    /// Total number of results for query without filters applied.
7585    pub total_count: Option<f64>,
7586}
7587impl GraphQLFields for ProjectSearchPayload {
7588    type FullType = Self;
7589    fn selection() -> String {
7590        "totalCount".into()
7591    }
7592}
7593#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7594#[serde(rename_all = "camelCase", default)]
7595pub struct ProjectSearchResult {
7596    /// The unique identifier of the entity.
7597    pub id: Option<String>,
7598    /// The time at which the entity was created.
7599    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7600    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7601    /// been updated after creation.
7602    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7603    /// The time at which the entity was archived. Null if the entity has not been archived.
7604    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7605    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
7606    pub update_reminder_frequency_in_weeks: Option<f64>,
7607    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
7608    pub update_reminder_frequency: Option<f64>,
7609    /// The resolution of the reminder frequency.
7610    pub frequency_resolution: Option<FrequencyResolutionType>,
7611    /// The day at which to prompt for updates.
7612    pub update_reminders_day: Option<Day>,
7613    /// The hour at which to prompt for updates.
7614    pub update_reminders_hour: Option<f64>,
7615    /// The project's name.
7616    pub name: Option<String>,
7617    /// The project's description.
7618    pub description: Option<String>,
7619    /// The project's unique URL slug.
7620    pub slug_id: Option<String>,
7621    /// The icon of the project.
7622    pub icon: Option<String>,
7623    /// The project's color.
7624    pub color: Option<String>,
7625    /// The status that the project is associated with.
7626    pub status: Option<Box<ProjectStatus>>,
7627    /// The user who created the project.
7628    pub creator: Option<Box<User>>,
7629    /// The project lead.
7630    pub lead: Option<Box<User>>,
7631    /// `Internal` Facets associated with the project.
7632    pub facets: Option<Box<Vec<Facet>>>,
7633    /// The time until which project update reminders are paused.
7634    pub project_update_reminders_paused_until_at: Option<chrono::DateTime<chrono::Utc>>,
7635    /// The estimated start date of the project.
7636    pub start_date: Option<chrono::NaiveDate>,
7637    /// The resolution of the project's start date.
7638    pub start_date_resolution: Option<DateResolutionType>,
7639    /// The estimated completion date of the project.
7640    pub target_date: Option<chrono::NaiveDate>,
7641    /// The resolution of the project's estimated completion date.
7642    pub target_date_resolution: Option<DateResolutionType>,
7643    /// The time at which the project was moved into started state.
7644    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
7645    /// The time at which the project was moved into completed state.
7646    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
7647    /// The time at which the project was moved into canceled state.
7648    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
7649    /// The time at which the project was automatically archived by the auto pruning process.
7650    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
7651    /// A flag that indicates whether the project is in the trash bin.
7652    pub trashed: Option<bool>,
7653    /// The sort order for the project within the organization.
7654    pub sort_order: Option<f64>,
7655    /// The sort order for the project within the organization, when ordered by priority.
7656    pub priority_sort_order: Option<f64>,
7657    /// The project was created based on this issue.
7658    pub converted_from_issue: Option<Box<Issue>>,
7659    /// The last template that was applied to this project.
7660    pub last_applied_template: Option<Box<Template>>,
7661    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
7662    pub priority: Option<i64>,
7663    /// The last project update posted for this project.
7664    pub last_update: Option<Box<ProjectUpdate>>,
7665    /// The health of the project.
7666    pub health: Option<ProjectUpdateHealthType>,
7667    /// The time at which the project health was updated.
7668    pub health_updated_at: Option<chrono::DateTime<chrono::Utc>>,
7669    /// The total number of issues in the project after each week.
7670    pub issue_count_history: Option<Vec<f64>>,
7671    /// The number of completed issues in the project after each week.
7672    pub completed_issue_count_history: Option<Vec<f64>>,
7673    /// The total number of estimation points after each week.
7674    pub scope_history: Option<Vec<f64>>,
7675    /// The number of completed estimation points after each week.
7676    pub completed_scope_history: Option<Vec<f64>>,
7677    /// The number of in progress estimation points after each week.
7678    pub in_progress_scope_history: Option<Vec<f64>>,
7679    /// `INTERNAL` The progress history of the project.
7680    pub progress_history: Option<serde_json::Value>,
7681    /// `INTERNAL` The current progress of the project.
7682    pub current_progress: Option<serde_json::Value>,
7683    /// Whether to send new issue notifications to Slack.
7684    pub slack_new_issue: Option<bool>,
7685    /// Whether to send new issue comment notifications to Slack.
7686    pub slack_issue_comments: Option<bool>,
7687    /// Whether to send new issue status updates to Slack.
7688    pub slack_issue_statuses: Option<bool>,
7689    /// Id of the labels associated with this project.
7690    pub label_ids: Option<Vec<String>>,
7691    /// The user's favorite associated with this project.
7692    pub favorite: Option<Box<Favorite>>,
7693    /// Project URL.
7694    pub url: Option<String>,
7695    /// Initiatives that this project belongs to.
7696    pub initiatives: Option<Box<InitiativeConnection>>,
7697    /// Associations of this project to parent initiatives.
7698    pub initiative_to_projects: Option<Box<InitiativeToProjectConnection>>,
7699    /// Teams associated with this project.
7700    pub teams: Option<Box<TeamConnection>>,
7701    /// Users that are members of the project.
7702    pub members: Option<Box<UserConnection>>,
7703    /// Project updates associated with the project.
7704    pub project_updates: Option<Box<ProjectUpdateConnection>>,
7705    /// Documents associated with the project.
7706    pub documents: Option<Box<DocumentConnection>>,
7707    /// Milestones associated with the project.
7708    pub project_milestones: Option<Box<ProjectMilestoneConnection>>,
7709    /// Issues associated with the project.
7710    pub issues: Option<Box<IssueConnection>>,
7711    /// External links associated with the project.
7712    pub external_links: Option<Box<EntityExternalLinkConnection>>,
7713    /// Attachments associated with the project.
7714    pub attachments: Option<Box<ProjectAttachmentConnection>>,
7715    /// History entries associated with the project.
7716    pub history: Option<Box<ProjectHistoryConnection>>,
7717    /// Labels associated with this project.
7718    pub labels: Option<Box<ProjectLabelConnection>>,
7719    /// The overall progress of the project. This is the (completed estimate points + 0.25 * in progress estimate points) / total estimate points.
7720    pub progress: Option<f64>,
7721    /// The overall scope (total estimate points) of the project.
7722    pub scope: Option<f64>,
7723    /// Settings for all integrations associated with that project.
7724    pub integrations_settings: Option<Box<IntegrationsSettings>>,
7725    /// The project's content in markdown format.
7726    pub content: Option<String>,
7727    /// `Internal` The project's content as YJS state.
7728    pub content_state: Option<String>,
7729    /// The content of the project description.
7730    pub document_content: Option<Box<DocumentContent>>,
7731    /// Comments associated with the project overview.
7732    pub comments: Option<Box<CommentConnection>>,
7733    /// Relations associated with this project.
7734    pub relations: Option<Box<ProjectRelationConnection>>,
7735    /// Inverse relations associated with this project.
7736    pub inverse_relations: Option<Box<ProjectRelationConnection>>,
7737    /// Customer needs associated with the project.
7738    pub needs: Option<Box<CustomerNeedConnection>>,
7739    /// `DEPRECATED` The type of the state.
7740    pub state: Option<String>,
7741    /// The priority of the project as a label.
7742    pub priority_label: Option<String>,
7743    /// Metadata related to search result.
7744    pub metadata: Option<serde_json::Value>,
7745}
7746impl GraphQLFields for ProjectSearchResult {
7747    type FullType = Self;
7748    fn selection() -> String {
7749        "id createdAt updatedAt archivedAt updateReminderFrequencyInWeeks updateReminderFrequency frequencyResolution updateRemindersDay updateRemindersHour name description slugId icon color projectUpdateRemindersPausedUntilAt startDate startDateResolution targetDate targetDateResolution startedAt completedAt canceledAt autoArchivedAt trashed sortOrder prioritySortOrder priority health healthUpdatedAt issueCountHistory completedIssueCountHistory scopeHistory completedScopeHistory inProgressScopeHistory progressHistory currentProgress slackNewIssue slackIssueComments slackIssueStatuses labelIds url progress scope content contentState state priorityLabel metadata"
7750            .into()
7751    }
7752}
7753#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7754#[serde(rename_all = "camelCase", default)]
7755pub struct ProjectSearchResultEdge {
7756    pub node: Option<Box<ProjectSearchResult>>,
7757    /// Used in `before` and `after` args
7758    pub cursor: Option<String>,
7759}
7760impl GraphQLFields for ProjectSearchResultEdge {
7761    type FullType = Self;
7762    fn selection() -> String {
7763        "cursor".into()
7764    }
7765}
7766/// A project status.
7767#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7768#[serde(rename_all = "camelCase", default)]
7769pub struct ProjectStatus {
7770    /// The unique identifier of the entity.
7771    pub id: Option<String>,
7772    /// The time at which the entity was created.
7773    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7774    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7775    /// been updated after creation.
7776    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7777    /// The time at which the entity was archived. Null if the entity has not been archived.
7778    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7779    /// The name of the status.
7780    pub name: Option<String>,
7781    /// The UI color of the status as a HEX string.
7782    pub color: Option<String>,
7783    /// Description of the status.
7784    pub description: Option<String>,
7785    /// The position of the status in the workspace's project flow.
7786    pub position: Option<f64>,
7787    /// The type of the project status.
7788    pub r#type: Option<ProjectStatusType>,
7789    /// Whether or not a project can be in this status indefinitely.
7790    pub indefinite: Option<bool>,
7791}
7792impl GraphQLFields for ProjectStatus {
7793    type FullType = Self;
7794    fn selection() -> String {
7795        "id createdAt updatedAt archivedAt name color description position type indefinite".into()
7796    }
7797}
7798/// A generic payload return from entity archive mutations.
7799#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7800#[serde(rename_all = "camelCase", default)]
7801pub struct ProjectStatusArchivePayload {
7802    /// The identifier of the last sync operation.
7803    pub last_sync_id: Option<f64>,
7804    /// Whether the operation was successful.
7805    pub success: Option<bool>,
7806    /// The archived/unarchived entity. Null if entity was deleted.
7807    pub entity: Option<Box<ProjectStatus>>,
7808}
7809impl GraphQLFields for ProjectStatusArchivePayload {
7810    type FullType = Self;
7811    fn selection() -> String {
7812        "lastSyncId success".into()
7813    }
7814}
7815#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7816#[serde(rename_all = "camelCase", default)]
7817pub struct ProjectStatusConnection {
7818    pub edges: Option<Box<Vec<ProjectStatusEdge>>>,
7819    pub nodes: Option<Box<Vec<ProjectStatus>>>,
7820    pub page_info: Option<Box<PageInfo>>,
7821}
7822impl GraphQLFields for ProjectStatusConnection {
7823    type FullType = Self;
7824    fn selection() -> String {
7825        "".into()
7826    }
7827}
7828#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7829#[serde(rename_all = "camelCase", default)]
7830pub struct ProjectStatusCountPayload {
7831    /// Total number of projects using this project status.
7832    pub count: Option<f64>,
7833    /// Total number of projects using this project status that are not visible to the user because they are in a private team.
7834    pub private_count: Option<f64>,
7835    /// Total number of projects using this project status that are not visible to the user because they are in an archived team.
7836    pub archived_team_count: Option<f64>,
7837}
7838impl GraphQLFields for ProjectStatusCountPayload {
7839    type FullType = Self;
7840    fn selection() -> String {
7841        "count privateCount archivedTeamCount".into()
7842    }
7843}
7844#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7845#[serde(rename_all = "camelCase", default)]
7846pub struct ProjectStatusEdge {
7847    pub node: Option<Box<ProjectStatus>>,
7848    /// Used in `before` and `after` args
7849    pub cursor: Option<String>,
7850}
7851impl GraphQLFields for ProjectStatusEdge {
7852    type FullType = Self;
7853    fn selection() -> String {
7854        "cursor".into()
7855    }
7856}
7857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7858#[serde(rename_all = "camelCase", default)]
7859pub struct ProjectStatusPayload {
7860    /// The identifier of the last sync operation.
7861    pub last_sync_id: Option<f64>,
7862    /// The project status that was created or updated.
7863    pub status: Option<Box<ProjectStatus>>,
7864    /// Whether the operation was successful.
7865    pub success: Option<bool>,
7866}
7867impl GraphQLFields for ProjectStatusPayload {
7868    type FullType = Self;
7869    fn selection() -> String {
7870        "lastSyncId success".into()
7871    }
7872}
7873/// An update associated with a project.
7874#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7875#[serde(rename_all = "camelCase", default)]
7876pub struct ProjectUpdate {
7877    /// The unique identifier of the entity.
7878    pub id: Option<String>,
7879    /// The time at which the entity was created.
7880    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7881    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7882    /// been updated after creation.
7883    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7884    /// The time at which the entity was archived. Null if the entity has not been archived.
7885    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7886    /// The update content in markdown format.
7887    pub body: Option<String>,
7888    /// The time the update was edited.
7889    pub edited_at: Option<chrono::DateTime<chrono::Utc>>,
7890    /// Emoji reaction summary, grouped by emoji type.
7891    pub reaction_data: Option<serde_json::Value>,
7892    /// `Internal` The content of the update as a Prosemirror document.
7893    pub body_data: Option<String>,
7894    /// The update's unique URL slug.
7895    pub slug_id: Option<String>,
7896    /// The project that the update is associated with.
7897    pub project: Option<Box<Project>>,
7898    /// The health of the project at the time of the update.
7899    pub health: Option<ProjectUpdateHealthType>,
7900    /// The user who wrote the update.
7901    pub user: Option<Box<User>>,
7902    /// `Internal` Serialized JSON representing current state of the project properties when posting the project update.
7903    pub info_snapshot: Option<serde_json::Value>,
7904    /// Whether project update diff should be hidden.
7905    pub is_diff_hidden: Option<bool>,
7906    /// The URL to the project update.
7907    pub url: Option<String>,
7908    /// Whether the project update is stale.
7909    pub is_stale: Option<bool>,
7910    /// The diff between the current update and the previous one.
7911    pub diff: Option<serde_json::Value>,
7912    /// The diff between the current update and the previous one, formatted as markdown.
7913    pub diff_markdown: Option<String>,
7914    /// Reactions associated with the project update.
7915    pub reactions: Option<Box<Vec<Reaction>>>,
7916    /// Comments associated with the project update.
7917    pub comments: Option<Box<CommentConnection>>,
7918    /// Number of comments associated with the project update.
7919    pub comment_count: Option<i64>,
7920}
7921impl GraphQLFields for ProjectUpdate {
7922    type FullType = Self;
7923    fn selection() -> String {
7924        "id createdAt updatedAt archivedAt body editedAt reactionData bodyData slugId health infoSnapshot isDiffHidden url isStale diff diffMarkdown commentCount"
7925            .into()
7926    }
7927}
7928/// A generic payload return from entity archive mutations.
7929#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7930#[serde(rename_all = "camelCase", default)]
7931pub struct ProjectUpdateArchivePayload {
7932    /// The identifier of the last sync operation.
7933    pub last_sync_id: Option<f64>,
7934    /// Whether the operation was successful.
7935    pub success: Option<bool>,
7936    /// The archived/unarchived entity. Null if entity was deleted.
7937    pub entity: Option<Box<ProjectUpdate>>,
7938}
7939impl GraphQLFields for ProjectUpdateArchivePayload {
7940    type FullType = Self;
7941    fn selection() -> String {
7942        "lastSyncId success".into()
7943    }
7944}
7945#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7946#[serde(rename_all = "camelCase", default)]
7947pub struct ProjectUpdateConnection {
7948    pub edges: Option<Box<Vec<ProjectUpdateEdge>>>,
7949    pub nodes: Option<Box<Vec<ProjectUpdate>>>,
7950    pub page_info: Option<Box<PageInfo>>,
7951}
7952impl GraphQLFields for ProjectUpdateConnection {
7953    type FullType = Self;
7954    fn selection() -> String {
7955        "".into()
7956    }
7957}
7958#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7959#[serde(rename_all = "camelCase", default)]
7960pub struct ProjectUpdateEdge {
7961    pub node: Option<Box<ProjectUpdate>>,
7962    /// Used in `before` and `after` args
7963    pub cursor: Option<String>,
7964}
7965impl GraphQLFields for ProjectUpdateEdge {
7966    type FullType = Self;
7967    fn selection() -> String {
7968        "cursor".into()
7969    }
7970}
7971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7972#[serde(rename_all = "camelCase", default)]
7973pub struct ProjectUpdatePayload {
7974    /// The identifier of the last sync operation.
7975    pub last_sync_id: Option<f64>,
7976    /// The project update that was created or updated.
7977    pub project_update: Option<Box<ProjectUpdate>>,
7978    /// Whether the operation was successful.
7979    pub success: Option<bool>,
7980}
7981impl GraphQLFields for ProjectUpdatePayload {
7982    type FullType = Self;
7983    fn selection() -> String {
7984        "lastSyncId success".into()
7985    }
7986}
7987#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7988#[serde(rename_all = "camelCase", default)]
7989pub struct ProjectUpdateReminderPayload {
7990    /// The identifier of the last sync operation.
7991    pub last_sync_id: Option<f64>,
7992    /// Whether the operation was successful.
7993    pub success: Option<bool>,
7994}
7995impl GraphQLFields for ProjectUpdateReminderPayload {
7996    type FullType = Self;
7997    fn selection() -> String {
7998        "lastSyncId success".into()
7999    }
8000}
8001/// `Internal` A pull request in a version control system.
8002#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8003#[serde(rename_all = "camelCase", default)]
8004pub struct PullRequest {
8005    /// The unique identifier of the entity.
8006    pub id: Option<String>,
8007    /// The time at which the entity was created.
8008    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8009    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8010    /// been updated after creation.
8011    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8012    /// The time at which the entity was archived. Null if the entity has not been archived.
8013    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8014    /// The pull request's unique URL slug.
8015    pub slug_id: Option<String>,
8016    /// The title of the pull request.
8017    pub title: Option<String>,
8018    /// The number of the pull request in the version control system.
8019    pub number: Option<f64>,
8020    /// The source branch of the pull request.
8021    pub source_branch: Option<String>,
8022    /// The target branch of the pull request.
8023    pub target_branch: Option<String>,
8024    /// The URL of the pull request in the version control system.
8025    pub url: Option<String>,
8026    /// The status of the pull request.
8027    pub status: Option<PullRequestStatus>,
8028    /// Merge settings for this pull request.
8029    pub merge_settings: Option<Box<PullRequestMergeSettings>>,
8030    /// The merge commit created when the PR was merged.
8031    pub merge_commit: Option<Box<PullRequestCommit>>,
8032    /// `Internal` The checks associated with the pull request.
8033    pub checks: Option<Box<Vec<PullRequestCheck>>>,
8034    /// `ALPHA` The commits associated with the pull request.
8035    pub commits: Option<Box<Vec<PullRequestCommit>>>,
8036    /// `Internal` The user who created the pull request.
8037    pub creator: Option<Box<User>>,
8038}
8039impl GraphQLFields for PullRequest {
8040    type FullType = Self;
8041    fn selection() -> String {
8042        "id createdAt updatedAt archivedAt slugId title number sourceBranch targetBranch url status"
8043            .into()
8044    }
8045}
8046/// `ALPHA` A pull request check.
8047#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8048#[serde(rename_all = "camelCase", default)]
8049pub struct PullRequestCheck {
8050    /// The name of the check.
8051    pub name: Option<String>,
8052    /// The name of the workflow that triggered the check.
8053    pub workflow_name: Option<String>,
8054    /// The status of the check.
8055    pub status: Option<String>,
8056    /// The URL of the check.
8057    pub url: Option<String>,
8058    /// Whether the check is required.
8059    pub is_required: Option<bool>,
8060    /// The date/time at which when the check was started.
8061    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
8062    /// The date/time at which when the check was completed.
8063    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
8064}
8065impl GraphQLFields for PullRequestCheck {
8066    type FullType = Self;
8067    fn selection() -> String {
8068        "name workflowName status url isRequired startedAt completedAt".into()
8069    }
8070}
8071/// `ALPHA` A pull request commit.
8072#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8073#[serde(rename_all = "camelCase", default)]
8074pub struct PullRequestCommit {
8075    /// The Git commit SHA.
8076    pub sha: Option<String>,
8077    /// The full commit message.
8078    pub message: Option<String>,
8079    /// The timestamp when the commit was committed (ISO 8601 string).
8080    pub committed_at: Option<String>,
8081    /// Number of additions in this commit.
8082    pub additions: Option<f64>,
8083    /// Number of deletions in this commit.
8084    pub deletions: Option<f64>,
8085    /// The number of changed files if available.
8086    pub changed_files: Option<f64>,
8087    /// Linear user IDs for commit authors (includes co-authors).
8088    pub author_user_ids: Option<Vec<String>>,
8089    /// External user IDs for commit authors (includes co-authors).
8090    pub author_external_user_ids: Option<Vec<String>>,
8091}
8092impl GraphQLFields for PullRequestCommit {
8093    type FullType = Self;
8094    fn selection() -> String {
8095        "sha message committedAt additions deletions changedFiles authorUserIds authorExternalUserIds"
8096            .into()
8097    }
8098}
8099/// `Internal` Merge settings for a pull request
8100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8101#[serde(rename_all = "camelCase", default)]
8102pub struct PullRequestMergeSettings {
8103    /// Whether merge queue is enabled for this repository.
8104    pub is_merge_queue_enabled: Option<bool>,
8105    /// Whether squash merge is allowed for this pull request's repository.
8106    pub squash_merge_allowed: Option<bool>,
8107    /// Whether auto-merge is allowed for the PR's repository.
8108    pub auto_merge_allowed: Option<bool>,
8109    /// Whether rebase merge is allowed for pull requests PR's repository.
8110    pub rebase_merge_allowed: Option<bool>,
8111    /// Whether merge commits are allowed for pull requests PR's repository.
8112    pub merge_commit_allowed: Option<bool>,
8113    /// Whether the branch will be deleted when the pull request is merged.
8114    pub delete_branch_on_merge: Option<bool>,
8115    /// The method used to merge a pull request.
8116    pub merge_queue_merge_method: Option<PullRequestMergeMethod>,
8117}
8118impl GraphQLFields for PullRequestMergeSettings {
8119    type FullType = Self;
8120    fn selection() -> String {
8121        "isMergeQueueEnabled squashMergeAllowed autoMergeAllowed rebaseMergeAllowed mergeCommitAllowed deleteBranchOnMerge mergeQueueMergeMethod"
8122            .into()
8123    }
8124}
8125/// A pull request related notification.
8126#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8127#[serde(rename_all = "camelCase", default)]
8128pub struct PullRequestNotification {
8129    /// The unique identifier of the entity.
8130    pub id: Option<String>,
8131    /// The time at which the entity was created.
8132    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8133    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8134    /// been updated after creation.
8135    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8136    /// The time at which the entity was archived. Null if the entity has not been archived.
8137    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8138    /// Notification type.
8139    pub r#type: Option<String>,
8140    /// The user that caused the notification.
8141    pub actor: Option<Box<User>>,
8142    /// The external user that caused the notification.
8143    pub external_user_actor: Option<Box<ExternalUser>>,
8144    /// The user that received the notification.
8145    pub user: Option<Box<User>>,
8146    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
8147    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
8148    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
8149    /// reminder has been sent.
8150    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
8151    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
8152    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
8153    /// The time at which a notification was unsnoozed..
8154    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
8155    /// The category of the notification.
8156    pub category: Option<NotificationCategory>,
8157    /// `Internal` URL to the target of the notification.
8158    pub url: Option<String>,
8159    /// `Internal` Inbox URL for the notification.
8160    pub inbox_url: Option<String>,
8161    /// `Internal` Notification title.
8162    pub title: Option<String>,
8163    /// `Internal` Notification subtitle.
8164    pub subtitle: Option<String>,
8165    /// `Internal` If notification actor was Linear.
8166    pub is_linear_actor: Option<bool>,
8167    /// `Internal` Notification avatar URL.
8168    pub actor_avatar_url: Option<String>,
8169    /// `Internal` Notification actor initials if avatar is not available.
8170    pub actor_initials: Option<String>,
8171    /// `Internal` Notification actor initials if avatar is not available.
8172    pub actor_avatar_color: Option<String>,
8173    /// `Internal` Issue's status type for issue notifications.
8174    pub issue_status_type: Option<String>,
8175    /// `Internal` Project update health for new updates.
8176    pub project_update_health: Option<String>,
8177    /// `Internal` Initiative update health for new updates.
8178    pub initiative_update_health: Option<String>,
8179    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
8180    pub grouping_key: Option<String>,
8181    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
8182    pub grouping_priority: Option<f64>,
8183    /// The bot that caused the notification.
8184    pub bot_actor: Option<Box<ActorBot>>,
8185    /// Related pull request.
8186    pub pull_request_id: Option<String>,
8187    /// Related pull request comment ID. Null if the notification is not related to a pull request comment.
8188    pub pull_request_comment_id: Option<String>,
8189    /// The pull request related to the notification.
8190    pub pull_request: Option<Box<PullRequest>>,
8191}
8192impl GraphQLFields for PullRequestNotification {
8193    type FullType = Self;
8194    fn selection() -> String {
8195        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority pullRequestId pullRequestCommentId"
8196            .into()
8197    }
8198}
8199/// A user's web or mobile push notification subscription.
8200#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8201#[serde(rename_all = "camelCase", default)]
8202pub struct PushSubscription {
8203    /// The unique identifier of the entity.
8204    pub id: Option<String>,
8205    /// The time at which the entity was created.
8206    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8207    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8208    /// been updated after creation.
8209    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8210    /// The time at which the entity was archived. Null if the entity has not been archived.
8211    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8212}
8213impl GraphQLFields for PushSubscription {
8214    type FullType = Self;
8215    fn selection() -> String {
8216        "id createdAt updatedAt archivedAt".into()
8217    }
8218}
8219#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8220#[serde(rename_all = "camelCase", default)]
8221pub struct PushSubscriptionPayload {
8222    /// The identifier of the last sync operation.
8223    pub last_sync_id: Option<f64>,
8224    /// The push subscription that was created or updated.
8225    pub entity: Option<Box<PushSubscription>>,
8226    /// Whether the operation was successful.
8227    pub success: Option<bool>,
8228}
8229impl GraphQLFields for PushSubscriptionPayload {
8230    type FullType = Self;
8231    fn selection() -> String {
8232        "lastSyncId success".into()
8233    }
8234}
8235#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8236#[serde(rename_all = "camelCase", default)]
8237pub struct PushSubscriptionTestPayload {
8238    /// Whether the operation was successful.
8239    pub success: Option<bool>,
8240}
8241impl GraphQLFields for PushSubscriptionTestPayload {
8242    type FullType = Self;
8243    fn selection() -> String {
8244        "success".into()
8245    }
8246}
8247#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8248#[serde(rename_all = "camelCase", default)]
8249pub struct RateLimitPayload {
8250    /// The identifier we rate limit on.
8251    pub identifier: Option<String>,
8252    /// The kind of rate limit selected for this request.
8253    pub kind: Option<String>,
8254    /// The state of the rate limit.
8255    pub limits: Option<Box<Vec<RateLimitResultPayload>>>,
8256}
8257impl GraphQLFields for RateLimitPayload {
8258    type FullType = Self;
8259    fn selection() -> String {
8260        "identifier kind".into()
8261    }
8262}
8263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8264#[serde(rename_all = "camelCase", default)]
8265pub struct RateLimitResultPayload {
8266    /// What is being rate limited.
8267    pub r#type: Option<String>,
8268    /// The requested quantity for this type of limit.
8269    pub requested_amount: Option<f64>,
8270    /// The total allowed quantity for this type of limit.
8271    pub allowed_amount: Option<f64>,
8272    /// The period in which the rate limit is fully replenished in ms.
8273    pub period: Option<f64>,
8274    /// The remaining quantity for this type of limit after this request.
8275    pub remaining_amount: Option<f64>,
8276    /// The timestamp after the rate limit is fully replenished as a UNIX timestamp.
8277    pub reset: Option<f64>,
8278}
8279impl GraphQLFields for RateLimitResultPayload {
8280    type FullType = Self;
8281    fn selection() -> String {
8282        "type requestedAmount allowedAmount period remainingAmount reset".into()
8283    }
8284}
8285/// A reaction associated with a comment or a project update.
8286#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8287#[serde(rename_all = "camelCase", default)]
8288pub struct Reaction {
8289    /// The unique identifier of the entity.
8290    pub id: Option<String>,
8291    /// The time at which the entity was created.
8292    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8293    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8294    /// been updated after creation.
8295    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8296    /// The time at which the entity was archived. Null if the entity has not been archived.
8297    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8298    /// Name of the reaction's emoji.
8299    pub emoji: Option<String>,
8300    /// The issue that the reaction is associated with.
8301    pub issue: Option<Box<Issue>>,
8302    /// The comment that the reaction is associated with.
8303    pub comment: Option<Box<Comment>>,
8304    /// The project update that the reaction is associated with.
8305    pub project_update: Option<Box<ProjectUpdate>>,
8306    /// The initiative update that the reaction is associated with.
8307    pub initiative_update: Option<Box<InitiativeUpdate>>,
8308    /// The post that the reaction is associated with.
8309    pub post: Option<Box<Post>>,
8310    /// The user that created the reaction.
8311    pub user: Option<Box<User>>,
8312    /// The external user that created the reaction.
8313    pub external_user: Option<Box<ExternalUser>>,
8314}
8315impl GraphQLFields for Reaction {
8316    type FullType = Self;
8317    fn selection() -> String {
8318        "id createdAt updatedAt archivedAt emoji".into()
8319    }
8320}
8321#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8322#[serde(rename_all = "camelCase", default)]
8323pub struct ReactionPayload {
8324    /// The identifier of the last sync operation.
8325    pub last_sync_id: Option<f64>,
8326    pub reaction: Option<Box<Reaction>>,
8327    pub success: Option<bool>,
8328}
8329impl GraphQLFields for ReactionPayload {
8330    type FullType = Self;
8331    fn selection() -> String {
8332        "lastSyncId success".into()
8333    }
8334}
8335/// `Internal` A release.
8336#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8337#[serde(rename_all = "camelCase", default)]
8338pub struct Release {
8339    /// The unique identifier of the entity.
8340    pub id: Option<String>,
8341    /// The time at which the entity was created.
8342    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8343    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8344    /// been updated after creation.
8345    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8346    /// The time at which the entity was archived. Null if the entity has not been archived.
8347    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8348    /// The name of the release.
8349    pub name: Option<String>,
8350    /// The release's description.
8351    pub description: Option<String>,
8352    /// The version of the release.
8353    pub version: Option<String>,
8354    /// The commit SHA associated with this release.
8355    pub commit_sha: Option<String>,
8356    /// The pipeline this release belongs to.
8357    pub pipeline: Option<Box<ReleasePipeline>>,
8358    /// The current stage of the release.
8359    pub stage: Option<Box<ReleaseStage>>,
8360    /// The release's unique URL slug.
8361    pub slug_id: Option<String>,
8362    /// The estimated start date of the release.
8363    pub start_date: Option<chrono::NaiveDate>,
8364    /// The estimated completion date of the release.
8365    pub target_date: Option<chrono::NaiveDate>,
8366    /// The time at which the release was started.
8367    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
8368    /// The time at which the release was completed.
8369    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
8370    /// The time at which the release was canceled.
8371    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
8372    /// Release URL.
8373    pub url: Option<String>,
8374    /// `Internal` Documents associated with the release.
8375    pub documents: Option<Box<DocumentConnection>>,
8376    /// `Internal` Links associated with the release.
8377    pub links: Option<Box<EntityExternalLinkConnection>>,
8378}
8379impl GraphQLFields for Release {
8380    type FullType = Self;
8381    fn selection() -> String {
8382        "id createdAt updatedAt archivedAt name description version commitSha slugId startDate targetDate startedAt completedAt canceledAt url"
8383            .into()
8384    }
8385}
8386/// A generic payload return from entity archive mutations.
8387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8388#[serde(rename_all = "camelCase", default)]
8389pub struct ReleaseArchivePayload {
8390    /// The identifier of the last sync operation.
8391    pub last_sync_id: Option<f64>,
8392    /// Whether the operation was successful.
8393    pub success: Option<bool>,
8394    /// The archived/unarchived entity. Null if entity was deleted.
8395    pub entity: Option<Box<Release>>,
8396}
8397impl GraphQLFields for ReleaseArchivePayload {
8398    type FullType = Self;
8399    fn selection() -> String {
8400        "lastSyncId success".into()
8401    }
8402}
8403#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8404#[serde(rename_all = "camelCase", default)]
8405pub struct ReleaseConnection {
8406    pub edges: Option<Box<Vec<ReleaseEdge>>>,
8407    pub nodes: Option<Box<Vec<Release>>>,
8408    pub page_info: Option<Box<PageInfo>>,
8409}
8410impl GraphQLFields for ReleaseConnection {
8411    type FullType = Self;
8412    fn selection() -> String {
8413        "".into()
8414    }
8415}
8416#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8417#[serde(rename_all = "camelCase", default)]
8418pub struct ReleaseEdge {
8419    pub node: Option<Box<Release>>,
8420    /// Used in `before` and `after` args
8421    pub cursor: Option<String>,
8422}
8423impl GraphQLFields for ReleaseEdge {
8424    type FullType = Self;
8425    fn selection() -> String {
8426        "cursor".into()
8427    }
8428}
8429#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8430#[serde(rename_all = "camelCase", default)]
8431pub struct ReleasePayload {
8432    /// The identifier of the last sync operation.
8433    pub last_sync_id: Option<f64>,
8434    /// The release that was created or updated.
8435    pub release: Option<Box<Release>>,
8436    /// Whether the operation was successful.
8437    pub success: Option<bool>,
8438}
8439impl GraphQLFields for ReleasePayload {
8440    type FullType = Self;
8441    fn selection() -> String {
8442        "lastSyncId success".into()
8443    }
8444}
8445/// `Internal` A release pipeline.
8446#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8447#[serde(rename_all = "camelCase", default)]
8448pub struct ReleasePipeline {
8449    /// The unique identifier of the entity.
8450    pub id: Option<String>,
8451    /// The time at which the entity was created.
8452    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8453    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8454    /// been updated after creation.
8455    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8456    /// The time at which the entity was archived. Null if the entity has not been archived.
8457    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8458    /// The name of the pipeline.
8459    pub name: Option<String>,
8460    /// The pipeline's unique slug identifier.
8461    pub slug_id: Option<String>,
8462    /// The type of the pipeline.
8463    pub r#type: Option<ReleasePipelineType>,
8464    /// Glob patterns to include commits affecting matching file paths.
8465    pub include_path_patterns: Option<Vec<String>>,
8466    /// `ALPHA` Stages associated with this pipeline.
8467    pub stages: Option<Box<ReleaseStageConnection>>,
8468    /// `ALPHA` Releases associated with this pipeline.
8469    pub releases: Option<Box<ReleaseConnection>>,
8470}
8471impl GraphQLFields for ReleasePipeline {
8472    type FullType = Self;
8473    fn selection() -> String {
8474        "id createdAt updatedAt archivedAt name slugId type includePathPatterns".into()
8475    }
8476}
8477/// A generic payload return from entity archive mutations.
8478#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8479#[serde(rename_all = "camelCase", default)]
8480pub struct ReleasePipelineArchivePayload {
8481    /// The identifier of the last sync operation.
8482    pub last_sync_id: Option<f64>,
8483    /// Whether the operation was successful.
8484    pub success: Option<bool>,
8485    /// The archived/unarchived entity. Null if entity was deleted.
8486    pub entity: Option<Box<ReleasePipeline>>,
8487}
8488impl GraphQLFields for ReleasePipelineArchivePayload {
8489    type FullType = Self;
8490    fn selection() -> String {
8491        "lastSyncId success".into()
8492    }
8493}
8494#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8495#[serde(rename_all = "camelCase", default)]
8496pub struct ReleasePipelineConnection {
8497    pub edges: Option<Box<Vec<ReleasePipelineEdge>>>,
8498    pub nodes: Option<Box<Vec<ReleasePipeline>>>,
8499    pub page_info: Option<Box<PageInfo>>,
8500}
8501impl GraphQLFields for ReleasePipelineConnection {
8502    type FullType = Self;
8503    fn selection() -> String {
8504        "".into()
8505    }
8506}
8507#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8508#[serde(rename_all = "camelCase", default)]
8509pub struct ReleasePipelineEdge {
8510    pub node: Option<Box<ReleasePipeline>>,
8511    /// Used in `before` and `after` args
8512    pub cursor: Option<String>,
8513}
8514impl GraphQLFields for ReleasePipelineEdge {
8515    type FullType = Self;
8516    fn selection() -> String {
8517        "cursor".into()
8518    }
8519}
8520#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8521#[serde(rename_all = "camelCase", default)]
8522pub struct ReleasePipelinePayload {
8523    /// The identifier of the last sync operation.
8524    pub last_sync_id: Option<f64>,
8525    /// The release pipeline that was created or updated.
8526    pub release_pipeline: Option<Box<ReleasePipeline>>,
8527    /// Whether the operation was successful.
8528    pub success: Option<bool>,
8529}
8530impl GraphQLFields for ReleasePipelinePayload {
8531    type FullType = Self;
8532    fn selection() -> String {
8533        "lastSyncId success".into()
8534    }
8535}
8536/// `Internal` A release stage.
8537#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8538#[serde(rename_all = "camelCase", default)]
8539pub struct ReleaseStage {
8540    /// The unique identifier of the entity.
8541    pub id: Option<String>,
8542    /// The time at which the entity was created.
8543    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8544    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8545    /// been updated after creation.
8546    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8547    /// The time at which the entity was archived. Null if the entity has not been archived.
8548    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8549    /// The name of the stage.
8550    pub name: Option<String>,
8551    /// The UI color of the stage as a HEX string.
8552    pub color: Option<String>,
8553    /// The type of the stage.
8554    pub r#type: Option<ReleaseStageType>,
8555    /// The position of the stage.
8556    pub position: Option<f64>,
8557    /// The pipeline this stage belongs to.
8558    pub pipeline: Option<Box<ReleasePipeline>>,
8559    /// `ALPHA` Releases associated with this stage.
8560    pub releases: Option<Box<ReleaseConnection>>,
8561}
8562impl GraphQLFields for ReleaseStage {
8563    type FullType = Self;
8564    fn selection() -> String {
8565        "id createdAt updatedAt archivedAt name color type position".into()
8566    }
8567}
8568/// A generic payload return from entity archive mutations.
8569#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8570#[serde(rename_all = "camelCase", default)]
8571pub struct ReleaseStageArchivePayload {
8572    /// The identifier of the last sync operation.
8573    pub last_sync_id: Option<f64>,
8574    /// Whether the operation was successful.
8575    pub success: Option<bool>,
8576    /// The archived/unarchived entity. Null if entity was deleted.
8577    pub entity: Option<Box<ReleaseStage>>,
8578}
8579impl GraphQLFields for ReleaseStageArchivePayload {
8580    type FullType = Self;
8581    fn selection() -> String {
8582        "lastSyncId success".into()
8583    }
8584}
8585#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8586#[serde(rename_all = "camelCase", default)]
8587pub struct ReleaseStageConnection {
8588    pub edges: Option<Box<Vec<ReleaseStageEdge>>>,
8589    pub nodes: Option<Box<Vec<ReleaseStage>>>,
8590    pub page_info: Option<Box<PageInfo>>,
8591}
8592impl GraphQLFields for ReleaseStageConnection {
8593    type FullType = Self;
8594    fn selection() -> String {
8595        "".into()
8596    }
8597}
8598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8599#[serde(rename_all = "camelCase", default)]
8600pub struct ReleaseStageEdge {
8601    pub node: Option<Box<ReleaseStage>>,
8602    /// Used in `before` and `after` args
8603    pub cursor: Option<String>,
8604}
8605impl GraphQLFields for ReleaseStageEdge {
8606    type FullType = Self;
8607    fn selection() -> String {
8608        "cursor".into()
8609    }
8610}
8611#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8612#[serde(rename_all = "camelCase", default)]
8613pub struct ReleaseStagePayload {
8614    /// The identifier of the last sync operation.
8615    pub last_sync_id: Option<f64>,
8616    /// The release stage that was created or updated.
8617    pub release_stage: Option<Box<ReleaseStage>>,
8618    /// Whether the operation was successful.
8619    pub success: Option<bool>,
8620}
8621impl GraphQLFields for ReleaseStagePayload {
8622    type FullType = Self;
8623    fn selection() -> String {
8624        "lastSyncId success".into()
8625    }
8626}
8627#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8628#[serde(rename_all = "camelCase", default)]
8629pub struct RepositorySuggestion {
8630    /// The full name of the repository in owner/name format (e.g., 'acme/backend').
8631    pub repository_full_name: Option<String>,
8632    /// Hostname of the Git service (e.g., 'github.com', 'github.company.com').
8633    pub hostname: Option<String>,
8634    /// Confidence score from 0.0 to 1.0.
8635    pub confidence: Option<f64>,
8636}
8637impl GraphQLFields for RepositorySuggestion {
8638    type FullType = Self;
8639    fn selection() -> String {
8640        "repositoryFullName hostname confidence".into()
8641    }
8642}
8643#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8644#[serde(rename_all = "camelCase", default)]
8645pub struct RepositorySuggestionsPayload {
8646    /// The suggested repositories.
8647    pub suggestions: Option<Box<Vec<RepositorySuggestion>>>,
8648}
8649impl GraphQLFields for RepositorySuggestionsPayload {
8650    type FullType = Self;
8651    fn selection() -> String {
8652        "".into()
8653    }
8654}
8655/// `Deprecated` A roadmap for projects.
8656#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8657#[serde(rename_all = "camelCase", default)]
8658pub struct Roadmap {
8659    /// The unique identifier of the entity.
8660    pub id: Option<String>,
8661    /// The time at which the entity was created.
8662    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8663    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8664    /// been updated after creation.
8665    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8666    /// The time at which the entity was archived. Null if the entity has not been archived.
8667    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8668    /// The name of the roadmap.
8669    pub name: Option<String>,
8670    /// The description of the roadmap.
8671    pub description: Option<String>,
8672    /// The organization of the roadmap.
8673    pub organization: Option<Box<Organization>>,
8674    /// The user who created the roadmap.
8675    pub creator: Option<Box<User>>,
8676    /// The user who owns the roadmap.
8677    pub owner: Option<Box<User>>,
8678    /// The roadmap's unique URL slug.
8679    pub slug_id: Option<String>,
8680    /// The sort order of the roadmap within the organization.
8681    pub sort_order: Option<f64>,
8682    /// The roadmap's color.
8683    pub color: Option<String>,
8684    /// Projects associated with the roadmap.
8685    pub projects: Option<Box<ProjectConnection>>,
8686    /// The canonical url for the roadmap.
8687    pub url: Option<String>,
8688}
8689impl GraphQLFields for Roadmap {
8690    type FullType = Self;
8691    fn selection() -> String {
8692        "id createdAt updatedAt archivedAt name description slugId sortOrder color url".into()
8693    }
8694}
8695/// A generic payload return from entity archive mutations.
8696#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8697#[serde(rename_all = "camelCase", default)]
8698pub struct RoadmapArchivePayload {
8699    /// The identifier of the last sync operation.
8700    pub last_sync_id: Option<f64>,
8701    /// Whether the operation was successful.
8702    pub success: Option<bool>,
8703    /// The archived/unarchived entity. Null if entity was deleted.
8704    pub entity: Option<Box<Roadmap>>,
8705}
8706impl GraphQLFields for RoadmapArchivePayload {
8707    type FullType = Self;
8708    fn selection() -> String {
8709        "lastSyncId success".into()
8710    }
8711}
8712#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8713#[serde(rename_all = "camelCase", default)]
8714pub struct RoadmapConnection {
8715    pub edges: Option<Box<Vec<RoadmapEdge>>>,
8716    pub nodes: Option<Box<Vec<Roadmap>>>,
8717    pub page_info: Option<Box<PageInfo>>,
8718}
8719impl GraphQLFields for RoadmapConnection {
8720    type FullType = Self;
8721    fn selection() -> String {
8722        "".into()
8723    }
8724}
8725#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8726#[serde(rename_all = "camelCase", default)]
8727pub struct RoadmapEdge {
8728    pub node: Option<Box<Roadmap>>,
8729    /// Used in `before` and `after` args
8730    pub cursor: Option<String>,
8731}
8732impl GraphQLFields for RoadmapEdge {
8733    type FullType = Self;
8734    fn selection() -> String {
8735        "cursor".into()
8736    }
8737}
8738#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8739#[serde(rename_all = "camelCase", default)]
8740pub struct RoadmapPayload {
8741    /// The identifier of the last sync operation.
8742    pub last_sync_id: Option<f64>,
8743    /// The roadmap that was created or updated.
8744    pub roadmap: Option<Box<Roadmap>>,
8745    /// Whether the operation was successful.
8746    pub success: Option<bool>,
8747}
8748impl GraphQLFields for RoadmapPayload {
8749    type FullType = Self;
8750    fn selection() -> String {
8751        "lastSyncId success".into()
8752    }
8753}
8754/// `Deprecated` Join table between projects and roadmaps.
8755#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8756#[serde(rename_all = "camelCase", default)]
8757pub struct RoadmapToProject {
8758    /// The unique identifier of the entity.
8759    pub id: Option<String>,
8760    /// The time at which the entity was created.
8761    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8762    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8763    /// been updated after creation.
8764    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8765    /// The time at which the entity was archived. Null if the entity has not been archived.
8766    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8767    /// The project that the roadmap is associated with.
8768    pub project: Option<Box<Project>>,
8769    /// The roadmap that the project is associated with.
8770    pub roadmap: Option<Box<Roadmap>>,
8771    /// The sort order of the project within the roadmap.
8772    pub sort_order: Option<String>,
8773}
8774impl GraphQLFields for RoadmapToProject {
8775    type FullType = Self;
8776    fn selection() -> String {
8777        "id createdAt updatedAt archivedAt sortOrder".into()
8778    }
8779}
8780#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8781#[serde(rename_all = "camelCase", default)]
8782pub struct RoadmapToProjectConnection {
8783    pub edges: Option<Box<Vec<RoadmapToProjectEdge>>>,
8784    pub nodes: Option<Box<Vec<RoadmapToProject>>>,
8785    pub page_info: Option<Box<PageInfo>>,
8786}
8787impl GraphQLFields for RoadmapToProjectConnection {
8788    type FullType = Self;
8789    fn selection() -> String {
8790        "".into()
8791    }
8792}
8793#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8794#[serde(rename_all = "camelCase", default)]
8795pub struct RoadmapToProjectEdge {
8796    pub node: Option<Box<RoadmapToProject>>,
8797    /// Used in `before` and `after` args
8798    pub cursor: Option<String>,
8799}
8800impl GraphQLFields for RoadmapToProjectEdge {
8801    type FullType = Self;
8802    fn selection() -> String {
8803        "cursor".into()
8804    }
8805}
8806#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8807#[serde(rename_all = "camelCase", default)]
8808pub struct RoadmapToProjectPayload {
8809    /// The identifier of the last sync operation.
8810    pub last_sync_id: Option<f64>,
8811    /// The roadmapToProject that was created or updated.
8812    pub roadmap_to_project: Option<Box<RoadmapToProject>>,
8813    /// Whether the operation was successful.
8814    pub success: Option<bool>,
8815}
8816impl GraphQLFields for RoadmapToProjectPayload {
8817    type FullType = Self;
8818    fn selection() -> String {
8819        "lastSyncId success".into()
8820    }
8821}
8822/// Payload returned by semantic search.
8823#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8824#[serde(rename_all = "camelCase", default)]
8825pub struct SemanticSearchPayload {
8826    /// Whether the semantic search is enabled.
8827    pub enabled: Option<bool>,
8828    pub results: Option<Box<Vec<SemanticSearchResult>>>,
8829}
8830impl GraphQLFields for SemanticSearchPayload {
8831    type FullType = Self;
8832    fn selection() -> String {
8833        "enabled".into()
8834    }
8835}
8836/// A semantic search result reference.
8837#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8838#[serde(rename_all = "camelCase", default)]
8839pub struct SemanticSearchResult {
8840    /// The unique identifier of the entity.
8841    pub id: Option<String>,
8842    /// The type of the semantic search result.
8843    pub r#type: Option<SemanticSearchResultType>,
8844    /// The issue related to the semantic search result.
8845    pub issue: Option<Box<Issue>>,
8846    /// The project related to the semantic search result.
8847    pub project: Option<Box<Project>>,
8848    /// The initiative related to the semantic search result.
8849    pub initiative: Option<Box<Initiative>>,
8850    /// The document related to the semantic search result.
8851    pub document: Option<Box<Document>>,
8852}
8853impl GraphQLFields for SemanticSearchResult {
8854    type FullType = Self;
8855    fn selection() -> String {
8856        "id type".into()
8857    }
8858}
8859/// SES domain identity used for sending emails from a custom domain.
8860#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8861#[serde(rename_all = "camelCase", default)]
8862pub struct SesDomainIdentity {
8863    /// The unique identifier of the entity.
8864    pub id: Option<String>,
8865    /// The time at which the entity was created.
8866    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8867    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8868    /// been updated after creation.
8869    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8870    /// The time at which the entity was archived. Null if the entity has not been archived.
8871    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8872    /// The domain of the SES domain identity.
8873    pub domain: Option<String>,
8874    /// The AWS region of the SES domain identity.
8875    pub region: Option<String>,
8876    /// The organization of the SES domain identity.
8877    pub organization: Option<Box<Organization>>,
8878    /// The user who created the SES domain identity.
8879    pub creator: Option<Box<User>>,
8880    /// Whether the domain is fully verified and can be used for sending emails.
8881    pub can_send_from_custom_domain: Option<bool>,
8882    /// The DNS records for the SES domain identity.
8883    pub dns_records: Option<Box<Vec<SesDomainIdentityDnsRecord>>>,
8884}
8885impl GraphQLFields for SesDomainIdentity {
8886    type FullType = Self;
8887    fn selection() -> String {
8888        "id createdAt updatedAt archivedAt domain region canSendFromCustomDomain".into()
8889    }
8890}
8891/// A DNS record for a SES domain identity.
8892#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8893#[serde(rename_all = "camelCase", default)]
8894pub struct SesDomainIdentityDnsRecord {
8895    /// The type of the DNS record.
8896    pub r#type: Option<String>,
8897    /// The name of the DNS record.
8898    pub name: Option<String>,
8899    /// The content of the DNS record.
8900    pub content: Option<String>,
8901    /// Whether the DNS record is verified in the domain's DNS configuration.
8902    pub is_verified: Option<bool>,
8903}
8904impl GraphQLFields for SesDomainIdentityDnsRecord {
8905    type FullType = Self;
8906    fn selection() -> String {
8907        "type name content isVerified".into()
8908    }
8909}
8910/// Tuple for mapping Slack channel IDs to names.
8911#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8912#[serde(rename_all = "camelCase", default)]
8913pub struct SlackAsksTeamSettings {
8914    /// The Linear team ID.
8915    pub id: Option<String>,
8916    /// Whether the default Asks template is enabled in the given channel for this team.
8917    pub has_default_ask: Option<bool>,
8918}
8919impl GraphQLFields for SlackAsksTeamSettings {
8920    type FullType = Self;
8921    fn selection() -> String {
8922        "id hasDefaultAsk".into()
8923    }
8924}
8925#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8926#[serde(rename_all = "camelCase", default)]
8927pub struct SlackChannelConnectPayload {
8928    /// The identifier of the last sync operation.
8929    pub last_sync_id: Option<f64>,
8930    /// The integration that was created or updated.
8931    pub integration: Option<Box<Integration>>,
8932    /// Whether the operation was successful.
8933    pub success: Option<bool>,
8934    /// Whether the bot needs to be manually added to the channel.
8935    pub add_bot: Option<bool>,
8936    /// Whether it's recommended to connect main Slack integration.
8937    pub nudge_to_connect_main_slack_integration: Option<bool>,
8938    /// Whether it's recommended to update main Slack integration.
8939    pub nudge_to_update_main_slack_integration: Option<bool>,
8940}
8941impl GraphQLFields for SlackChannelConnectPayload {
8942    type FullType = Self;
8943    fn selection() -> String {
8944        "lastSyncId success addBot nudgeToConnectMainSlackIntegration nudgeToUpdateMainSlackIntegration"
8945            .into()
8946    }
8947}
8948/// Object for mapping Slack channel IDs to names and other settings.
8949#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8950#[serde(rename_all = "camelCase", default)]
8951pub struct SlackChannelNameMapping {
8952    /// The Slack channel ID.
8953    pub id: Option<String>,
8954    /// The Slack channel name.
8955    pub name: Option<String>,
8956    /// Whether or not the Slack channel is private.
8957    pub is_private: Option<bool>,
8958    /// Whether or not the Slack channel is shared with an external org.
8959    pub is_shared: Option<bool>,
8960    /// Whether or not the Linear Asks bot has been added to this Slack channel.
8961    pub bot_added: Option<bool>,
8962    /// Which teams are connected to the channel and settings for those teams.
8963    pub teams: Option<Box<Vec<SlackAsksTeamSettings>>>,
8964    /// Whether or not top-level messages in this channel should automatically create Asks.
8965    pub auto_create_on_message: Option<bool>,
8966    /// Whether or not using the :ticket: emoji in this channel should automatically create Asks.
8967    pub auto_create_on_emoji: Option<bool>,
8968    /// Whether or not @-mentioning the bot should automatically create an Ask with the message.
8969    pub auto_create_on_bot_mention: Option<bool>,
8970    /// The optional template ID to use for Asks auto-created in this channel. If not set, auto-created Asks won't use any template.
8971    pub auto_create_template_id: Option<String>,
8972    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is canceled.
8973    pub post_cancellation_updates: Option<bool>,
8974    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is completed.
8975    pub post_completion_updates: Option<bool>,
8976    /// Whether or not synced Slack threads should be updated with a message when their Ask is accepted from triage.
8977    pub post_accepted_from_triage_updates: Option<bool>,
8978    /// Whether or not to use AI to generate titles for Asks created in this channel.
8979    pub ai_titles: Option<bool>,
8980}
8981impl GraphQLFields for SlackChannelNameMapping {
8982    type FullType = Self;
8983    fn selection() -> String {
8984        "id name isPrivate isShared botAdded autoCreateOnMessage autoCreateOnEmoji autoCreateOnBotMention autoCreateTemplateId postCancellationUpdates postCompletionUpdates postAcceptedFromTriageUpdates aiTitles"
8985            .into()
8986    }
8987}
8988#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8989#[serde(rename_all = "camelCase", default)]
8990pub struct SsoUrlFromEmailResponse {
8991    /// Whether the operation was successful.
8992    pub success: Option<bool>,
8993    /// SAML SSO sign-in URL.
8994    pub saml_sso_url: Option<String>,
8995}
8996impl GraphQLFields for SsoUrlFromEmailResponse {
8997    type FullType = Self;
8998    fn selection() -> String {
8999        "success samlSsoUrl".into()
9000    }
9001}
9002#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9003#[serde(rename_all = "camelCase", default)]
9004pub struct SuccessPayload {
9005    /// The identifier of the last sync operation.
9006    pub last_sync_id: Option<f64>,
9007    /// Whether the operation was successful.
9008    pub success: Option<bool>,
9009}
9010impl GraphQLFields for SuccessPayload {
9011    type FullType = Self;
9012    fn selection() -> String {
9013        "lastSyncId success".into()
9014    }
9015}
9016/// An AI-generated summary.
9017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9018#[serde(rename_all = "camelCase", default)]
9019pub struct Summary {
9020    /// The unique identifier of the entity.
9021    pub id: Option<String>,
9022    /// The time at which the entity was created.
9023    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9024    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9025    /// been updated after creation.
9026    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9027    /// The time at which the entity was archived. Null if the entity has not been archived.
9028    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9029    /// The issue this summary belongs to.
9030    pub issue: Option<Box<Issue>>,
9031    /// The summary content as a Prosemirror document.
9032    pub content: Option<serde_json::Value>,
9033    /// The evaluation log id for this summary generation.
9034    pub eval_log_id: Option<String>,
9035    /// The generation status of the summary.
9036    pub generation_status: Option<SummaryGenerationStatus>,
9037    /// The time at which the summary was generated.
9038    pub generated_at: Option<chrono::DateTime<chrono::Utc>>,
9039}
9040impl GraphQLFields for Summary {
9041    type FullType = Self;
9042    fn selection() -> String {
9043        "id createdAt updatedAt archivedAt content evalLogId generationStatus generatedAt".into()
9044    }
9045}
9046/// A comment thread that is synced with an external source.
9047#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9048#[serde(rename_all = "camelCase", default)]
9049pub struct SyncedExternalThread {
9050    pub id: Option<String>,
9051    /// The type of the external source.
9052    pub r#type: Option<String>,
9053    /// The sub type of the external source.
9054    pub sub_type: Option<String>,
9055    /// The display name of the source.
9056    pub name: Option<String>,
9057    /// The display name of the thread.
9058    pub display_name: Option<String>,
9059    /// The external url of the thread.
9060    pub url: Option<String>,
9061    /// Whether this thread is syncing with the external service.
9062    pub is_connected: Option<bool>,
9063    /// Whether the current user has the corresponding personal integration connected for the external service.
9064    pub is_personal_integration_connected: Option<bool>,
9065    /// Whether a connected personal integration is required to comment in this thread.
9066    pub is_personal_integration_required: Option<bool>,
9067}
9068impl GraphQLFields for SyncedExternalThread {
9069    type FullType = Self;
9070    fn selection() -> String {
9071        "id type subType name displayName url isConnected isPersonalIntegrationConnected isPersonalIntegrationRequired"
9072            .into()
9073    }
9074}
9075/// An organizational unit that contains issues.
9076#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9077#[serde(rename_all = "camelCase", default)]
9078pub struct Team {
9079    /// The unique identifier of the entity.
9080    pub id: Option<String>,
9081    /// The time at which the entity was created.
9082    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9083    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9084    /// been updated after creation.
9085    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9086    /// The time at which the entity was archived. Null if the entity has not been archived.
9087    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9088    /// The team's name.
9089    pub name: Option<String>,
9090    /// The team's unique key. The key is used in URLs.
9091    pub key: Option<String>,
9092    /// The team's description.
9093    pub description: Option<String>,
9094    /// The icon of the team.
9095    pub icon: Option<String>,
9096    /// The team's color.
9097    pub color: Option<String>,
9098    /// The time at which the team was retired. Null if the team has not been retired.
9099    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
9100    /// The organization that the team is associated with.
9101    pub organization: Option<Box<Organization>>,
9102    /// `Internal` The team's parent team.
9103    pub parent: Option<Box<Team>>,
9104    /// `Internal` The team's sub-teams.
9105    pub children: Option<Box<Vec<Team>>>,
9106    /// Whether the team uses cycles.
9107    pub cycles_enabled: Option<bool>,
9108    /// The day of the week that a new cycle starts.
9109    pub cycle_start_day: Option<f64>,
9110    /// The duration of a cycle in weeks.
9111    pub cycle_duration: Option<f64>,
9112    /// The cooldown time after each cycle in weeks.
9113    pub cycle_cooldown_time: Option<f64>,
9114    /// Auto assign started issues to current cycle.
9115    pub cycle_issue_auto_assign_started: Option<bool>,
9116    /// Auto assign completed issues to current cycle.
9117    pub cycle_issue_auto_assign_completed: Option<bool>,
9118    /// Auto assign issues to current cycle if in active status.
9119    pub cycle_lock_to_active: Option<bool>,
9120    /// How many upcoming cycles to create.
9121    pub upcoming_cycle_count: Option<f64>,
9122    /// The timezone of the team. Defaults to "America/Los_Angeles"
9123    pub timezone: Option<String>,
9124    /// Whether the team should inherit its workflow statuses from its parent. Only applies to sub-teams.
9125    pub inherit_workflow_statuses: Option<bool>,
9126    /// Whether the team should inherit its estimation settings from its parent. Only applies to sub-teams.
9127    pub inherit_issue_estimation: Option<bool>,
9128    /// The issue estimation type to use. Must be one of "notUsed", "exponential", "fibonacci", "linear", "tShirt".
9129    pub issue_estimation_type: Option<String>,
9130    /// `DEPRECATED` Whether issues without priority should be sorted first.
9131    pub issue_ordering_no_priority_first: Option<bool>,
9132    /// Whether to allow zeros in issues estimates.
9133    pub issue_estimation_allow_zero: Option<bool>,
9134    /// Where to move issues when changing state.
9135    pub set_issue_sort_order_on_state_change: Option<String>,
9136    /// Whether to add additional points to the estimate scale.
9137    pub issue_estimation_extended: Option<bool>,
9138    /// What to use as a default estimate for unestimated issues.
9139    pub default_issue_estimate: Option<f64>,
9140    /// Whether triage mode is enabled for the team or not.
9141    pub triage_enabled: Option<bool>,
9142    /// Whether an issue needs to have a priority set before leaving triage.
9143    pub require_priority_to_leave_triage: Option<bool>,
9144    /// The default workflow state into which issues are set when they are opened by team members.
9145    pub default_issue_state: Option<Box<WorkflowState>>,
9146    /// The default template to use for new issues created by members of the team.
9147    pub default_template_for_members: Option<Box<Template>>,
9148    /// The id of the default template to use for new issues created by members of the team.
9149    pub default_template_for_members_id: Option<String>,
9150    /// The default template to use for new issues created by non-members of the team.
9151    pub default_template_for_non_members: Option<Box<Template>>,
9152    /// The id of the default template to use for new issues created by non-members of the team.
9153    pub default_template_for_non_members_id: Option<String>,
9154    /// The default template to use for new projects created for the team.
9155    pub default_project_template: Option<Box<Template>>,
9156    /// The workflow state into which issues are set when they are opened by non-team members or integrations if triage is enabled.
9157    pub triage_issue_state: Option<Box<WorkflowState>>,
9158    /// Whether the team is private or not.
9159    pub private: Option<bool>,
9160    /// Whether all members in the workspace can join the team. Only used for public teams.
9161    pub all_members_can_join: Option<bool>,
9162    /// Security settings for the team.
9163    pub security_settings: Option<serde_json::Value>,
9164    /// `Internal` Facets associated with the team.
9165    pub facets: Option<Box<Vec<Facet>>>,
9166    /// `Internal` Posts associated with the team.
9167    pub posts: Option<Box<Vec<Post>>>,
9168    /// Whether the team is managed by SCIM integration.
9169    pub scim_managed: Option<bool>,
9170    /// The SCIM group name for the team.
9171    pub scim_group_name: Option<String>,
9172    /// `Internal` The progress history of the team.
9173    pub progress_history: Option<serde_json::Value>,
9174    /// `Internal` The current progress of the team.
9175    pub current_progress: Option<serde_json::Value>,
9176    /// The workflow state into which issues are moved when a PR has been opened as draft.
9177    pub draft_workflow_state: Option<Box<WorkflowState>>,
9178    /// The workflow state into which issues are moved when a PR has been opened.
9179    pub start_workflow_state: Option<Box<WorkflowState>>,
9180    /// The workflow state into which issues are moved when a review has been requested for the PR.
9181    pub review_workflow_state: Option<Box<WorkflowState>>,
9182    /// The workflow state into which issues are moved when a PR is ready to be merged.
9183    pub mergeable_workflow_state: Option<Box<WorkflowState>>,
9184    /// The workflow state into which issues are moved when a PR has been merged.
9185    pub merge_workflow_state: Option<Box<WorkflowState>>,
9186    /// Whether to group recent issue history entries.
9187    pub group_issue_history: Option<bool>,
9188    /// Whether to enable resolved thread AI summaries.
9189    pub ai_thread_summaries_enabled: Option<bool>,
9190    /// Whether to enable AI discussion summaries for issues in this team.
9191    pub ai_discussion_summaries_enabled: Option<bool>,
9192    /// Whether to send new issue notifications to Slack.
9193    pub slack_new_issue: Option<bool>,
9194    /// Whether to send new issue comment notifications to Slack.
9195    pub slack_issue_comments: Option<bool>,
9196    /// Whether to send new issue status updates to Slack.
9197    pub slack_issue_statuses: Option<bool>,
9198    /// Period after which issues are automatically closed in months. Null/undefined means disabled.
9199    pub auto_close_period: Option<f64>,
9200    /// The canceled workflow state which auto closed issues will be set to. Defaults to the first canceled state.
9201    pub auto_close_state_id: Option<String>,
9202    /// Period after which automatically closed and completed issues are automatically archived in months.
9203    pub auto_archive_period: Option<f64>,
9204    /// Whether parent issues should automatically close when all child issues are closed
9205    pub auto_close_parent_issues: Option<bool>,
9206    /// Whether child issues should automatically close when their parent issue is closed
9207    pub auto_close_child_issues: Option<bool>,
9208    /// The workflow state into which issues are moved when they are marked as a duplicate of another issue. Defaults to the first canceled state.
9209    pub marked_as_duplicate_workflow_state: Option<Box<WorkflowState>>,
9210    /// `Internal` Whether new users should join this team by default.
9211    pub join_by_default: Option<bool>,
9212    /// Calendar feed URL (iCal) for cycles.
9213    pub cycle_calender_url: Option<String>,
9214    /// The name of the team including its parent team name if it has one.
9215    pub display_name: Option<String>,
9216    /// Issues associated with the team.
9217    pub issues: Option<Box<IssueConnection>>,
9218    /// Number of issues in the team.
9219    pub issue_count: Option<i64>,
9220    /// Cycles associated with the team.
9221    pub cycles: Option<Box<CycleConnection>>,
9222    /// Team's currently active cycle.
9223    pub active_cycle: Option<Box<Cycle>>,
9224    /// Team's triage responsibility.
9225    pub triage_responsibility: Option<Box<TriageResponsibility>>,
9226    /// Users who are members of this team.
9227    pub members: Option<Box<UserConnection>>,
9228    /// `ALPHA` The membership of the given user in the team.
9229    pub membership: Option<Box<TeamMembership>>,
9230    /// Memberships associated with the team. For easier access of the same data, use `members` query.
9231    pub memberships: Option<Box<TeamMembershipConnection>>,
9232    /// Projects associated with the team.
9233    pub projects: Option<Box<ProjectConnection>>,
9234    /// The states that define the workflow associated with the team.
9235    pub states: Option<Box<WorkflowStateConnection>>,
9236    /// The Git automation states for the team.
9237    pub git_automation_states: Option<Box<GitAutomationStateConnection>>,
9238    /// Templates associated with the team.
9239    pub templates: Option<Box<TemplateConnection>>,
9240    /// Labels associated with the team.
9241    pub labels: Option<Box<IssueLabelConnection>>,
9242    /// Webhooks associated with the team.
9243    pub webhooks: Option<Box<WebhookConnection>>,
9244    /// Settings for all integrations associated with that team.
9245    pub integrations_settings: Option<Box<IntegrationsSettings>>,
9246    /// `DEPRECATED` Whether to move issues to bottom of the column when changing state.
9247    pub issue_sort_order_default_to_bottom: Option<bool>,
9248    /// `DEPRECATED` Unique hash for the team to be used in invite URLs.
9249    pub invite_hash: Option<String>,
9250}
9251impl GraphQLFields for Team {
9252    type FullType = Self;
9253    fn selection() -> String {
9254        "id createdAt updatedAt archivedAt name key description icon color retiredAt cyclesEnabled cycleStartDay cycleDuration cycleCooldownTime cycleIssueAutoAssignStarted cycleIssueAutoAssignCompleted cycleLockToActive upcomingCycleCount timezone inheritWorkflowStatuses inheritIssueEstimation issueEstimationType issueOrderingNoPriorityFirst issueEstimationAllowZero setIssueSortOrderOnStateChange issueEstimationExtended defaultIssueEstimate triageEnabled requirePriorityToLeaveTriage defaultTemplateForMembersId defaultTemplateForNonMembersId private allMembersCanJoin securitySettings scimManaged scimGroupName progressHistory currentProgress groupIssueHistory aiThreadSummariesEnabled aiDiscussionSummariesEnabled slackNewIssue slackIssueComments slackIssueStatuses autoClosePeriod autoCloseStateId autoArchivePeriod autoCloseParentIssues autoCloseChildIssues joinByDefault cycleCalenderUrl displayName issueCount issueSortOrderDefaultToBottom inviteHash"
9255            .into()
9256    }
9257}
9258/// A generic payload return from entity archive mutations.
9259#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9260#[serde(rename_all = "camelCase", default)]
9261pub struct TeamArchivePayload {
9262    /// The identifier of the last sync operation.
9263    pub last_sync_id: Option<f64>,
9264    /// Whether the operation was successful.
9265    pub success: Option<bool>,
9266    /// The archived/unarchived entity. Null if entity was deleted.
9267    pub entity: Option<Box<Team>>,
9268}
9269impl GraphQLFields for TeamArchivePayload {
9270    type FullType = Self;
9271    fn selection() -> String {
9272        "lastSyncId success".into()
9273    }
9274}
9275#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9276#[serde(rename_all = "camelCase", default)]
9277pub struct TeamConnection {
9278    pub edges: Option<Box<Vec<TeamEdge>>>,
9279    pub nodes: Option<Box<Vec<Team>>>,
9280    pub page_info: Option<Box<PageInfo>>,
9281}
9282impl GraphQLFields for TeamConnection {
9283    type FullType = Self;
9284    fn selection() -> String {
9285        "".into()
9286    }
9287}
9288#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9289#[serde(rename_all = "camelCase", default)]
9290pub struct TeamEdge {
9291    pub node: Option<Box<Team>>,
9292    /// Used in `before` and `after` args
9293    pub cursor: Option<String>,
9294}
9295impl GraphQLFields for TeamEdge {
9296    type FullType = Self;
9297    fn selection() -> String {
9298        "cursor".into()
9299    }
9300}
9301/// Defines the membership of a user to a team.
9302#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9303#[serde(rename_all = "camelCase", default)]
9304pub struct TeamMembership {
9305    /// The unique identifier of the entity.
9306    pub id: Option<String>,
9307    /// The time at which the entity was created.
9308    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9309    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9310    /// been updated after creation.
9311    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9312    /// The time at which the entity was archived. Null if the entity has not been archived.
9313    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9314    /// The user that the membership is associated with.
9315    pub user: Option<Box<User>>,
9316    /// The team that the membership is associated with.
9317    pub team: Option<Box<Team>>,
9318    /// Whether the user is an owner of the team.
9319    pub owner: Option<bool>,
9320    /// The order of the item in the users team list.
9321    pub sort_order: Option<f64>,
9322}
9323impl GraphQLFields for TeamMembership {
9324    type FullType = Self;
9325    fn selection() -> String {
9326        "id createdAt updatedAt archivedAt owner sortOrder".into()
9327    }
9328}
9329#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9330#[serde(rename_all = "camelCase", default)]
9331pub struct TeamMembershipConnection {
9332    pub edges: Option<Box<Vec<TeamMembershipEdge>>>,
9333    pub nodes: Option<Box<Vec<TeamMembership>>>,
9334    pub page_info: Option<Box<PageInfo>>,
9335}
9336impl GraphQLFields for TeamMembershipConnection {
9337    type FullType = Self;
9338    fn selection() -> String {
9339        "".into()
9340    }
9341}
9342#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9343#[serde(rename_all = "camelCase", default)]
9344pub struct TeamMembershipEdge {
9345    pub node: Option<Box<TeamMembership>>,
9346    /// Used in `before` and `after` args
9347    pub cursor: Option<String>,
9348}
9349impl GraphQLFields for TeamMembershipEdge {
9350    type FullType = Self;
9351    fn selection() -> String {
9352        "cursor".into()
9353    }
9354}
9355#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9356#[serde(rename_all = "camelCase", default)]
9357pub struct TeamMembershipPayload {
9358    /// The identifier of the last sync operation.
9359    pub last_sync_id: Option<f64>,
9360    /// The team membership that was created or updated.
9361    pub team_membership: Option<Box<TeamMembership>>,
9362    /// Whether the operation was successful.
9363    pub success: Option<bool>,
9364}
9365impl GraphQLFields for TeamMembershipPayload {
9366    type FullType = Self;
9367    fn selection() -> String {
9368        "lastSyncId success".into()
9369    }
9370}
9371/// A team notification subscription.
9372#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9373#[serde(rename_all = "camelCase", default)]
9374pub struct TeamNotificationSubscription {
9375    /// The unique identifier of the entity.
9376    pub id: Option<String>,
9377    /// The time at which the entity was created.
9378    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9379    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9380    /// been updated after creation.
9381    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9382    /// The time at which the entity was archived. Null if the entity has not been archived.
9383    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9384    /// The user that subscribed to receive notifications.
9385    pub subscriber: Option<Box<User>>,
9386    /// The customer associated with the notification subscription.
9387    pub customer: Option<Box<Customer>>,
9388    /// The contextual custom view associated with the notification subscription.
9389    pub custom_view: Option<Box<CustomView>>,
9390    /// The contextual cycle view associated with the notification subscription.
9391    pub cycle: Option<Box<Cycle>>,
9392    /// The contextual label view associated with the notification subscription.
9393    pub label: Option<Box<IssueLabel>>,
9394    /// The contextual project view associated with the notification subscription.
9395    pub project: Option<Box<Project>>,
9396    /// The contextual initiative view associated with the notification subscription.
9397    pub initiative: Option<Box<Initiative>>,
9398    /// The team subscribed to.
9399    pub team: Option<Box<Team>>,
9400    /// The user view associated with the notification subscription.
9401    pub user: Option<Box<User>>,
9402    /// The type of view to which the notification subscription context is associated with.
9403    pub context_view_type: Option<ContextViewType>,
9404    /// The type of user view to which the notification subscription context is associated with.
9405    pub user_context_view_type: Option<UserContextViewType>,
9406    /// Whether the subscription is active or not.
9407    pub active: Option<bool>,
9408    /// The type of subscription.
9409    pub notification_subscription_types: Option<Vec<String>>,
9410}
9411impl GraphQLFields for TeamNotificationSubscription {
9412    type FullType = Self;
9413    fn selection() -> String {
9414        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
9415            .into()
9416    }
9417}
9418#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9419#[serde(rename_all = "camelCase", default)]
9420pub struct TeamPayload {
9421    /// The identifier of the last sync operation.
9422    pub last_sync_id: Option<f64>,
9423    /// The team that was created or updated.
9424    pub team: Option<Box<Team>>,
9425    /// Whether the operation was successful.
9426    pub success: Option<bool>,
9427}
9428impl GraphQLFields for TeamPayload {
9429    type FullType = Self;
9430    fn selection() -> String {
9431        "lastSyncId success".into()
9432    }
9433}
9434/// A template object used for creating entities faster.
9435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9436#[serde(rename_all = "camelCase", default)]
9437pub struct Template {
9438    /// The unique identifier of the entity.
9439    pub id: Option<String>,
9440    /// The time at which the entity was created.
9441    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9442    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9443    /// been updated after creation.
9444    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9445    /// The time at which the entity was archived. Null if the entity has not been archived.
9446    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9447    /// The entity type this template is for.
9448    pub r#type: Option<String>,
9449    /// The name of the template.
9450    pub name: Option<String>,
9451    /// Template description.
9452    pub description: Option<String>,
9453    /// Template data.
9454    pub template_data: Option<serde_json::Value>,
9455    /// The sort order of the template.
9456    pub sort_order: Option<f64>,
9457    /// The date when the template was last applied.
9458    pub last_applied_at: Option<chrono::DateTime<chrono::Utc>>,
9459    /// The organization that the template is associated with. If null, the template is associated with a particular team.
9460    pub organization: Option<Box<Organization>>,
9461    /// The team that the template is associated with. If null, the template is global to the workspace.
9462    pub team: Option<Box<Team>>,
9463    /// The user who created the template.
9464    pub creator: Option<Box<User>>,
9465    /// The user who last updated the template.
9466    pub last_updated_by: Option<Box<User>>,
9467    /// The original template inherited from.
9468    pub inherited_from: Option<Box<Template>>,
9469    /// `Internal` Whether the template has form fields
9470    pub has_form_fields: Option<bool>,
9471}
9472impl GraphQLFields for Template {
9473    type FullType = Self;
9474    fn selection() -> String {
9475        "id createdAt updatedAt archivedAt type name description templateData sortOrder lastAppliedAt hasFormFields"
9476            .into()
9477    }
9478}
9479#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9480#[serde(rename_all = "camelCase", default)]
9481pub struct TemplateConnection {
9482    pub edges: Option<Box<Vec<TemplateEdge>>>,
9483    pub nodes: Option<Box<Vec<Template>>>,
9484    pub page_info: Option<Box<PageInfo>>,
9485}
9486impl GraphQLFields for TemplateConnection {
9487    type FullType = Self;
9488    fn selection() -> String {
9489        "".into()
9490    }
9491}
9492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9493#[serde(rename_all = "camelCase", default)]
9494pub struct TemplateEdge {
9495    pub node: Option<Box<Template>>,
9496    /// Used in `before` and `after` args
9497    pub cursor: Option<String>,
9498}
9499impl GraphQLFields for TemplateEdge {
9500    type FullType = Self;
9501    fn selection() -> String {
9502        "cursor".into()
9503    }
9504}
9505#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9506#[serde(rename_all = "camelCase", default)]
9507pub struct TemplatePayload {
9508    /// The identifier of the last sync operation.
9509    pub last_sync_id: Option<f64>,
9510    /// The template that was created or updated.
9511    pub template: Option<Box<Template>>,
9512    /// Whether the operation was successful.
9513    pub success: Option<bool>,
9514}
9515impl GraphQLFields for TemplatePayload {
9516    type FullType = Self;
9517    fn selection() -> String {
9518        "lastSyncId success".into()
9519    }
9520}
9521/// A time schedule.
9522#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9523#[serde(rename_all = "camelCase", default)]
9524pub struct TimeSchedule {
9525    /// The unique identifier of the entity.
9526    pub id: Option<String>,
9527    /// The time at which the entity was created.
9528    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9529    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9530    /// been updated after creation.
9531    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9532    /// The time at which the entity was archived. Null if the entity has not been archived.
9533    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9534    /// The name of the schedule.
9535    pub name: Option<String>,
9536    /// The schedule entries.
9537    pub entries: Option<Box<Vec<TimeScheduleEntry>>>,
9538    /// The identifier of the external schedule.
9539    pub external_id: Option<String>,
9540    /// The URL to the external schedule.
9541    pub external_url: Option<String>,
9542    /// The organization of the schedule.
9543    pub organization: Option<Box<Organization>>,
9544    /// The identifier of the Linear integration populating the schedule.
9545    pub integration: Option<Box<Integration>>,
9546}
9547impl GraphQLFields for TimeSchedule {
9548    type FullType = Self;
9549    fn selection() -> String {
9550        "id createdAt updatedAt archivedAt name externalId externalUrl".into()
9551    }
9552}
9553#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9554#[serde(rename_all = "camelCase", default)]
9555pub struct TimeScheduleConnection {
9556    pub edges: Option<Box<Vec<TimeScheduleEdge>>>,
9557    pub nodes: Option<Box<Vec<TimeSchedule>>>,
9558    pub page_info: Option<Box<PageInfo>>,
9559}
9560impl GraphQLFields for TimeScheduleConnection {
9561    type FullType = Self;
9562    fn selection() -> String {
9563        "".into()
9564    }
9565}
9566#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9567#[serde(rename_all = "camelCase", default)]
9568pub struct TimeScheduleEdge {
9569    pub node: Option<Box<TimeSchedule>>,
9570    /// Used in `before` and `after` args
9571    pub cursor: Option<String>,
9572}
9573impl GraphQLFields for TimeScheduleEdge {
9574    type FullType = Self;
9575    fn selection() -> String {
9576        "cursor".into()
9577    }
9578}
9579#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9580#[serde(rename_all = "camelCase", default)]
9581pub struct TimeScheduleEntry {
9582    /// The start date of the schedule in ISO 8601 date-time format.
9583    pub starts_at: Option<chrono::DateTime<chrono::Utc>>,
9584    /// The end date of the schedule in ISO 8601 date-time format.
9585    pub ends_at: Option<chrono::DateTime<chrono::Utc>>,
9586    /// 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.
9587    pub user_id: Option<String>,
9588    /// 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.
9589    pub user_email: Option<String>,
9590}
9591impl GraphQLFields for TimeScheduleEntry {
9592    type FullType = Self;
9593    fn selection() -> String {
9594        "startsAt endsAt userId userEmail".into()
9595    }
9596}
9597#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9598#[serde(rename_all = "camelCase", default)]
9599pub struct TimeSchedulePayload {
9600    /// The identifier of the last sync operation.
9601    pub last_sync_id: Option<f64>,
9602    pub time_schedule: Option<Box<TimeSchedule>>,
9603    /// Whether the operation was successful.
9604    pub success: Option<bool>,
9605}
9606impl GraphQLFields for TimeSchedulePayload {
9607    type FullType = Self;
9608    fn selection() -> String {
9609        "lastSyncId success".into()
9610    }
9611}
9612/// A team's triage responsibility.
9613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9614#[serde(rename_all = "camelCase", default)]
9615pub struct TriageResponsibility {
9616    /// The unique identifier of the entity.
9617    pub id: Option<String>,
9618    /// The time at which the entity was created.
9619    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9620    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9621    /// been updated after creation.
9622    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9623    /// The time at which the entity was archived. Null if the entity has not been archived.
9624    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9625    /// The action to take when an issue is added to triage.
9626    pub action: Option<TriageResponsibilityAction>,
9627    /// Set of users used for triage responsibility.
9628    pub manual_selection: Option<Box<TriageResponsibilityManualSelection>>,
9629    /// The team to which the triage responsibility belongs to.
9630    pub team: Option<Box<Team>>,
9631    /// The time schedule used for scheduling.
9632    pub time_schedule: Option<Box<TimeSchedule>>,
9633    /// The user currently responsible for triage.
9634    pub current_user: Option<Box<User>>,
9635}
9636impl GraphQLFields for TriageResponsibility {
9637    type FullType = Self;
9638    fn selection() -> String {
9639        "id createdAt updatedAt archivedAt action".into()
9640    }
9641}
9642#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9643#[serde(rename_all = "camelCase", default)]
9644pub struct TriageResponsibilityConnection {
9645    pub edges: Option<Box<Vec<TriageResponsibilityEdge>>>,
9646    pub nodes: Option<Box<Vec<TriageResponsibility>>>,
9647    pub page_info: Option<Box<PageInfo>>,
9648}
9649impl GraphQLFields for TriageResponsibilityConnection {
9650    type FullType = Self;
9651    fn selection() -> String {
9652        "".into()
9653    }
9654}
9655#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9656#[serde(rename_all = "camelCase", default)]
9657pub struct TriageResponsibilityEdge {
9658    pub node: Option<Box<TriageResponsibility>>,
9659    /// Used in `before` and `after` args
9660    pub cursor: Option<String>,
9661}
9662impl GraphQLFields for TriageResponsibilityEdge {
9663    type FullType = Self;
9664    fn selection() -> String {
9665        "cursor".into()
9666    }
9667}
9668#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9669#[serde(rename_all = "camelCase", default)]
9670pub struct TriageResponsibilityManualSelection {
9671    /// The set of users responsible for triage.
9672    pub user_ids: Option<Vec<String>>,
9673    /// `Internal` The index of the current userId used for the assign action when having more than one user.
9674    pub assignment_index: Option<i64>,
9675}
9676impl GraphQLFields for TriageResponsibilityManualSelection {
9677    type FullType = Self;
9678    fn selection() -> String {
9679        "userIds assignmentIndex".into()
9680    }
9681}
9682#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9683#[serde(rename_all = "camelCase", default)]
9684pub struct TriageResponsibilityPayload {
9685    /// The identifier of the last sync operation.
9686    pub last_sync_id: Option<f64>,
9687    pub triage_responsibility: Option<Box<TriageResponsibility>>,
9688    /// Whether the operation was successful.
9689    pub success: Option<bool>,
9690}
9691impl GraphQLFields for TriageResponsibilityPayload {
9692    type FullType = Self;
9693    fn selection() -> String {
9694        "lastSyncId success".into()
9695    }
9696}
9697/// Object representing Google Cloud upload policy, plus additional data.
9698#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9699#[serde(rename_all = "camelCase", default)]
9700pub struct UploadFile {
9701    /// The filename.
9702    pub filename: Option<String>,
9703    /// The content type.
9704    pub content_type: Option<String>,
9705    /// The size of the uploaded file.
9706    pub size: Option<i64>,
9707    /// The signed URL the for the uploaded file. (assigned automatically).
9708    pub upload_url: Option<String>,
9709    /// The asset URL for the uploaded file. (assigned automatically).
9710    pub asset_url: Option<String>,
9711    pub meta_data: Option<serde_json::Value>,
9712    pub headers: Option<Box<Vec<UploadFileHeader>>>,
9713}
9714impl GraphQLFields for UploadFile {
9715    type FullType = Self;
9716    fn selection() -> String {
9717        "filename contentType size uploadUrl assetUrl metaData".into()
9718    }
9719}
9720#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9721#[serde(rename_all = "camelCase", default)]
9722pub struct UploadFileHeader {
9723    /// Upload file header key.
9724    pub key: Option<String>,
9725    /// Upload file header value.
9726    pub value: Option<String>,
9727}
9728impl GraphQLFields for UploadFileHeader {
9729    type FullType = Self;
9730    fn selection() -> String {
9731        "key value".into()
9732    }
9733}
9734#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9735#[serde(rename_all = "camelCase", default)]
9736pub struct UploadPayload {
9737    /// The identifier of the last sync operation.
9738    pub last_sync_id: Option<f64>,
9739    /// Object describing the file to be uploaded.
9740    pub upload_file: Option<Box<UploadFile>>,
9741    /// Whether the operation was successful.
9742    pub success: Option<bool>,
9743}
9744impl GraphQLFields for UploadPayload {
9745    type FullType = Self;
9746    fn selection() -> String {
9747        "lastSyncId success".into()
9748    }
9749}
9750/// A user that has access to the the resources of an organization.
9751#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9752#[serde(rename_all = "camelCase", default)]
9753pub struct User {
9754    /// The unique identifier of the entity.
9755    pub id: Option<String>,
9756    /// The time at which the entity was created.
9757    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9758    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9759    /// been updated after creation.
9760    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9761    /// The time at which the entity was archived. Null if the entity has not been archived.
9762    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9763    /// The user's full name.
9764    pub name: Option<String>,
9765    /// The user's display (nick) name. Unique within each organization.
9766    pub display_name: Option<String>,
9767    /// The user's email address.
9768    pub email: Option<String>,
9769    /// An URL to the user's avatar image.
9770    pub avatar_url: Option<String>,
9771    /// Reason why is the account disabled.
9772    pub disable_reason: Option<String>,
9773    /// `DEPRECATED` Hash for the user to be used in calendar URLs.
9774    pub calendar_hash: Option<String>,
9775    /// A short description of the user, either its title or bio.
9776    pub description: Option<String>,
9777    /// The emoji to represent the user current status.
9778    pub status_emoji: Option<String>,
9779    /// The label of the user current status.
9780    pub status_label: Option<String>,
9781    /// A date at which the user current status should be cleared.
9782    pub status_until_at: Option<chrono::DateTime<chrono::Utc>>,
9783    /// The local timezone of the user.
9784    pub timezone: Option<String>,
9785    /// Organization the user belongs to.
9786    pub organization: Option<Box<Organization>>,
9787    /// The last time the user was seen online.
9788    pub last_seen: Option<chrono::DateTime<chrono::Utc>>,
9789    /// `INTERNAL` Identity provider the user is managed by.
9790    pub identity_provider: Option<Box<IdentityProvider>>,
9791    /// The initials of the user.
9792    pub initials: Option<String>,
9793    /// The background color of the avatar for users without set avatar.
9794    pub avatar_background_color: Option<String>,
9795    /// Whether the user is a guest in the workspace and limited to accessing a subset of teams.
9796    pub guest: Option<bool>,
9797    /// Whether the user is an app.
9798    pub app: Option<bool>,
9799    /// Whether the user is mentionable.
9800    pub is_mentionable: Option<bool>,
9801    /// Whether the user is assignable.
9802    pub is_assignable: Option<bool>,
9803    /// Whether the user account is active or disabled (suspended).
9804    pub active: Option<bool>,
9805    /// The user's issue drafts
9806    pub issue_drafts: Option<Box<IssueDraftConnection>>,
9807    /// The user's drafts
9808    pub drafts: Option<Box<DraftConnection>>,
9809    /// User's profile URL.
9810    pub url: Option<String>,
9811    /// Issues assigned to the user.
9812    pub assigned_issues: Option<Box<IssueConnection>>,
9813    /// Issues delegated to this user.
9814    pub delegated_issues: Option<Box<IssueConnection>>,
9815    /// Issues created by the user.
9816    pub created_issues: Option<Box<IssueConnection>>,
9817    /// Number of issues created.
9818    pub created_issue_count: Option<i64>,
9819    /// Teams the user is part of.
9820    pub teams: Option<Box<TeamConnection>>,
9821    /// Memberships associated with the user. For easier access of the same data, use `teams` query.
9822    pub team_memberships: Option<Box<TeamMembershipConnection>>,
9823    /// `INTERNAL` The user's pinned feeds.
9824    pub feed_facets: Option<Box<FacetConnection>>,
9825    /// Whether this user can access any public team in the organization.
9826    pub can_access_any_public_team: Option<bool>,
9827    /// Whether the user is the currently authenticated user.
9828    pub is_me: Option<bool>,
9829    /// Whether the user is an organization administrator.
9830    pub admin: Option<bool>,
9831    /// Whether the user is an organization owner.
9832    pub owner: Option<bool>,
9833    /// Whether this agent user supports agent sessions.
9834    pub supports_agent_sessions: Option<bool>,
9835    /// `DEPRECATED` Unique hash for the user to be used in invite URLs.
9836    pub invite_hash: Option<String>,
9837    /// The user's GitHub user ID.
9838    pub git_hub_user_id: Option<String>,
9839}
9840impl GraphQLFields for User {
9841    type FullType = Self;
9842    fn selection() -> String {
9843        "id createdAt updatedAt archivedAt name displayName email avatarUrl disableReason calendarHash description statusEmoji statusLabel statusUntilAt timezone lastSeen initials avatarBackgroundColor guest app isMentionable isAssignable active url createdIssueCount canAccessAnyPublicTeam isMe admin owner supportsAgentSessions inviteHash gitHubUserId"
9844            .into()
9845    }
9846}
9847#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9848#[serde(rename_all = "camelCase", default)]
9849pub struct UserAdminPayload {
9850    /// Whether the operation was successful.
9851    pub success: Option<bool>,
9852}
9853impl GraphQLFields for UserAdminPayload {
9854    type FullType = Self;
9855    fn selection() -> String {
9856        "success".into()
9857    }
9858}
9859#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9860#[serde(rename_all = "camelCase", default)]
9861pub struct UserConnection {
9862    pub edges: Option<Box<Vec<UserEdge>>>,
9863    pub nodes: Option<Box<Vec<User>>>,
9864    pub page_info: Option<Box<PageInfo>>,
9865}
9866impl GraphQLFields for UserConnection {
9867    type FullType = Self;
9868    fn selection() -> String {
9869        "".into()
9870    }
9871}
9872#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9873#[serde(rename_all = "camelCase", default)]
9874pub struct UserEdge {
9875    pub node: Option<Box<User>>,
9876    /// Used in `before` and `after` args
9877    pub cursor: Option<String>,
9878}
9879impl GraphQLFields for UserEdge {
9880    type FullType = Self;
9881    fn selection() -> String {
9882        "cursor".into()
9883    }
9884}
9885/// A user notification subscription.
9886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9887#[serde(rename_all = "camelCase", default)]
9888pub struct UserNotificationSubscription {
9889    /// The unique identifier of the entity.
9890    pub id: Option<String>,
9891    /// The time at which the entity was created.
9892    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9893    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9894    /// been updated after creation.
9895    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9896    /// The time at which the entity was archived. Null if the entity has not been archived.
9897    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9898    /// The user that subscribed to receive notifications.
9899    pub subscriber: Option<Box<User>>,
9900    /// The customer associated with the notification subscription.
9901    pub customer: Option<Box<Customer>>,
9902    /// The contextual custom view associated with the notification subscription.
9903    pub custom_view: Option<Box<CustomView>>,
9904    /// The contextual cycle view associated with the notification subscription.
9905    pub cycle: Option<Box<Cycle>>,
9906    /// The contextual label view associated with the notification subscription.
9907    pub label: Option<Box<IssueLabel>>,
9908    /// The contextual project view associated with the notification subscription.
9909    pub project: Option<Box<Project>>,
9910    /// The contextual initiative view associated with the notification subscription.
9911    pub initiative: Option<Box<Initiative>>,
9912    /// The team associated with the notification subscription.
9913    pub team: Option<Box<Team>>,
9914    /// The user subscribed to.
9915    pub user: Option<Box<User>>,
9916    /// The type of view to which the notification subscription context is associated with.
9917    pub context_view_type: Option<ContextViewType>,
9918    /// The type of user view to which the notification subscription context is associated with.
9919    pub user_context_view_type: Option<UserContextViewType>,
9920    /// Whether the subscription is active or not.
9921    pub active: Option<bool>,
9922    /// The type of subscription.
9923    pub notification_subscription_types: Option<Vec<String>>,
9924}
9925impl GraphQLFields for UserNotificationSubscription {
9926    type FullType = Self;
9927    fn selection() -> String {
9928        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
9929            .into()
9930    }
9931}
9932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9933#[serde(rename_all = "camelCase", default)]
9934pub struct UserPayload {
9935    /// The identifier of the last sync operation.
9936    pub last_sync_id: Option<f64>,
9937    /// The user that was created or updated.
9938    pub user: Option<Box<User>>,
9939    /// Whether the operation was successful.
9940    pub success: Option<bool>,
9941}
9942impl GraphQLFields for UserPayload {
9943    type FullType = Self;
9944    fn selection() -> String {
9945        "lastSyncId success".into()
9946    }
9947}
9948/// The settings of a user as a JSON object.
9949#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9950#[serde(rename_all = "camelCase", default)]
9951pub struct UserSettings {
9952    /// The unique identifier of the entity.
9953    pub id: Option<String>,
9954    /// The time at which the entity was created.
9955    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9956    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9957    /// been updated after creation.
9958    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9959    /// The time at which the entity was archived. Null if the entity has not been archived.
9960    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9961    /// The notification delivery preferences for the user. Note: notificationDisabled field is deprecated in favor of notificationChannelPreferences.
9962    pub notification_delivery_preferences: Option<Box<NotificationDeliveryPreferences>>,
9963    /// The email types the user has unsubscribed from.
9964    pub unsubscribed_from: Option<Vec<String>>,
9965    /// The user associated with these settings.
9966    pub user: Option<Box<User>>,
9967    /// Hash for the user to be used in calendar URLs.
9968    pub calendar_hash: Option<String>,
9969    /// Whether this user is subscribed to changelog email or not.
9970    pub subscribed_to_changelog: Option<bool>,
9971    /// Whether this user is subscribed to DPA emails or not.
9972    pub subscribed_to_dpa: Option<bool>,
9973    /// Whether this user is subscribed to invite accepted emails or not.
9974    pub subscribed_to_invite_accepted: Option<bool>,
9975    /// Whether this user is subscribed to privacy and legal update emails or not.
9976    pub subscribed_to_privacy_legal_updates: Option<bool>,
9977    /// The user's feed summary schedule preference.
9978    pub feed_summary_schedule: Option<FeedSummarySchedule>,
9979    /// Whether to show full user names instead of display names.
9980    pub show_full_user_names: Option<bool>,
9981    /// The user's last seen time for the pulse feed.
9982    pub feed_last_seen_time: Option<chrono::DateTime<chrono::Utc>>,
9983    /// Whether to auto-assign newly created issues to the current user by default.
9984    pub auto_assign_to_self: Option<bool>,
9985    /// The user's notification category preferences.
9986    pub notification_category_preferences: Option<Box<NotificationCategoryPreferences>>,
9987    /// The user's notification channel preferences.
9988    pub notification_channel_preferences: Option<Box<NotificationChannelPreferences>>,
9989    /// The user's theme for a given mode and device type.
9990    pub theme: Option<Box<UserSettingsTheme>>,
9991}
9992impl GraphQLFields for UserSettings {
9993    type FullType = Self;
9994    fn selection() -> String {
9995        "id createdAt updatedAt archivedAt unsubscribedFrom calendarHash subscribedToChangelog subscribedToDPA subscribedToInviteAccepted subscribedToPrivacyLegalUpdates feedSummarySchedule showFullUserNames feedLastSeenTime autoAssignToSelf"
9996            .into()
9997    }
9998}
9999#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10000#[serde(rename_all = "camelCase", default)]
10001pub struct UserSettingsCustomSidebarTheme {
10002    /// The accent color in LCH format.
10003    pub accent: Option<Vec<f64>>,
10004    /// The base color in LCH format.
10005    pub base: Option<Vec<f64>>,
10006    /// The contrast value.
10007    pub contrast: Option<i64>,
10008}
10009impl GraphQLFields for UserSettingsCustomSidebarTheme {
10010    type FullType = Self;
10011    fn selection() -> String {
10012        "accent base contrast".into()
10013    }
10014}
10015#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10016#[serde(rename_all = "camelCase", default)]
10017pub struct UserSettingsCustomTheme {
10018    /// The accent color in LCH format.
10019    pub accent: Option<Vec<f64>>,
10020    /// The base color in LCH format.
10021    pub base: Option<Vec<f64>>,
10022    /// The contrast value.
10023    pub contrast: Option<i64>,
10024    /// Optional sidebar theme colors.
10025    pub sidebar: Option<Box<UserSettingsCustomSidebarTheme>>,
10026}
10027impl GraphQLFields for UserSettingsCustomTheme {
10028    type FullType = Self;
10029    fn selection() -> String {
10030        "accent base contrast".into()
10031    }
10032}
10033#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10034#[serde(rename_all = "camelCase", default)]
10035pub struct UserSettingsFlagPayload {
10036    /// The identifier of the last sync operation.
10037    pub last_sync_id: Option<f64>,
10038    /// The flag key which was updated.
10039    pub flag: Option<String>,
10040    /// The flag value after update.
10041    pub value: Option<i64>,
10042    /// Whether the operation was successful.
10043    pub success: Option<bool>,
10044}
10045impl GraphQLFields for UserSettingsFlagPayload {
10046    type FullType = Self;
10047    fn selection() -> String {
10048        "lastSyncId flag value success".into()
10049    }
10050}
10051#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10052#[serde(rename_all = "camelCase", default)]
10053pub struct UserSettingsFlagsResetPayload {
10054    /// The identifier of the last sync operation.
10055    pub last_sync_id: Option<f64>,
10056    /// Whether the operation was successful.
10057    pub success: Option<bool>,
10058}
10059impl GraphQLFields for UserSettingsFlagsResetPayload {
10060    type FullType = Self;
10061    fn selection() -> String {
10062        "lastSyncId success".into()
10063    }
10064}
10065#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10066#[serde(rename_all = "camelCase", default)]
10067pub struct UserSettingsPayload {
10068    /// The identifier of the last sync operation.
10069    pub last_sync_id: Option<f64>,
10070    /// The user's settings.
10071    pub user_settings: Option<Box<UserSettings>>,
10072    /// Whether the operation was successful.
10073    pub success: Option<bool>,
10074}
10075impl GraphQLFields for UserSettingsPayload {
10076    type FullType = Self;
10077    fn selection() -> String {
10078        "lastSyncId success".into()
10079    }
10080}
10081#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10082#[serde(rename_all = "camelCase", default)]
10083pub struct UserSettingsTheme {
10084    /// The theme preset.
10085    pub preset: Option<UserSettingsThemePreset>,
10086    /// The custom theme definition, only present when preset is 'custom'.
10087    pub custom: Option<Box<UserSettingsCustomTheme>>,
10088}
10089impl GraphQLFields for UserSettingsTheme {
10090    type FullType = Self;
10091    fn selection() -> String {
10092        "preset".into()
10093    }
10094}
10095/// View preferences.
10096#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10097#[serde(rename_all = "camelCase", default)]
10098pub struct ViewPreferences {
10099    /// The unique identifier of the entity.
10100    pub id: Option<String>,
10101    /// The time at which the entity was created.
10102    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10103    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10104    /// been updated after creation.
10105    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10106    /// The time at which the entity was archived. Null if the entity has not been archived.
10107    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10108    /// The view preference type.
10109    pub r#type: Option<String>,
10110    /// The view type.
10111    pub view_type: Option<String>,
10112    /// The view preferences
10113    pub preferences: Option<Box<ViewPreferencesValues>>,
10114}
10115impl GraphQLFields for ViewPreferences {
10116    type FullType = Self;
10117    fn selection() -> String {
10118        "id createdAt updatedAt archivedAt type viewType".into()
10119    }
10120}
10121#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10122#[serde(rename_all = "camelCase", default)]
10123pub struct ViewPreferencesPayload {
10124    /// The identifier of the last sync operation.
10125    pub last_sync_id: Option<f64>,
10126    /// The view preferences entity being mutated.
10127    pub view_preferences: Option<Box<ViewPreferences>>,
10128    /// Whether the operation was successful.
10129    pub success: Option<bool>,
10130}
10131impl GraphQLFields for ViewPreferencesPayload {
10132    type FullType = Self;
10133    fn selection() -> String {
10134        "lastSyncId success".into()
10135    }
10136}
10137#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10138#[serde(rename_all = "camelCase", default)]
10139pub struct ViewPreferencesValues {
10140    /// The issue ordering.
10141    pub view_ordering: Option<String>,
10142    /// The issue grouping.
10143    pub issue_grouping: Option<String>,
10144    /// The issue sub grouping.
10145    pub issue_sub_grouping: Option<String>,
10146    /// Whether to show completed issues.
10147    pub show_completed_issues: Option<String>,
10148}
10149impl GraphQLFields for ViewPreferencesValues {
10150    type FullType = Self;
10151    fn selection() -> String {
10152        "viewOrdering issueGrouping issueSubGrouping showCompletedIssues".into()
10153    }
10154}
10155/// A webhook used to send HTTP notifications over data updates.
10156#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10157#[serde(rename_all = "camelCase", default)]
10158pub struct Webhook {
10159    /// The unique identifier of the entity.
10160    pub id: Option<String>,
10161    /// The time at which the entity was created.
10162    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10163    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10164    /// been updated after creation.
10165    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10166    /// The time at which the entity was archived. Null if the entity has not been archived.
10167    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10168    /// Webhook label.
10169    pub label: Option<String>,
10170    /// Webhook URL.
10171    pub url: Option<String>,
10172    /// Whether the Webhook is enabled.
10173    pub enabled: Option<bool>,
10174    /// The team that the webhook is associated with. If null, the webhook is associated with all public teams of the organization or multiple teams.
10175    pub team: Option<Box<Team>>,
10176    /// `INTERNAL` The teams that the webhook is associated with. Used to represent a webhook that targets multiple teams, potentially in addition to all public teams of the organization.
10177    pub team_ids: Option<Vec<String>>,
10178    /// Whether the Webhook is enabled for all public teams, including teams created after the webhook was created.
10179    pub all_public_teams: Option<bool>,
10180    /// The user who created the webhook.
10181    pub creator: Option<Box<User>>,
10182    /// Secret token for verifying the origin on the recipient side.
10183    pub secret: Option<String>,
10184    /// The resource types this webhook is subscribed to.
10185    pub resource_types: Option<Vec<String>>,
10186    /// `INTERNAL` Webhook failure events associated with the webhook (last 50).
10187    pub failures: Option<Box<Vec<WebhookFailureEvent>>>,
10188}
10189impl GraphQLFields for Webhook {
10190    type FullType = Self;
10191    fn selection() -> String {
10192        "id createdAt updatedAt archivedAt label url enabled teamIds allPublicTeams secret resourceTypes"
10193            .into()
10194    }
10195}
10196#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10197#[serde(rename_all = "camelCase", default)]
10198pub struct WebhookConnection {
10199    pub edges: Option<Box<Vec<WebhookEdge>>>,
10200    pub nodes: Option<Box<Vec<Webhook>>>,
10201    pub page_info: Option<Box<PageInfo>>,
10202}
10203impl GraphQLFields for WebhookConnection {
10204    type FullType = Self;
10205    fn selection() -> String {
10206        "".into()
10207    }
10208}
10209#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10210#[serde(rename_all = "camelCase", default)]
10211pub struct WebhookEdge {
10212    pub node: Option<Box<Webhook>>,
10213    /// Used in `before` and `after` args
10214    pub cursor: Option<String>,
10215}
10216impl GraphQLFields for WebhookEdge {
10217    type FullType = Self;
10218    fn selection() -> String {
10219        "cursor".into()
10220    }
10221}
10222/// Entity representing a webhook execution failure.
10223#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10224#[serde(rename_all = "camelCase", default)]
10225pub struct WebhookFailureEvent {
10226    /// The unique identifier of the entity.
10227    pub id: Option<String>,
10228    /// The time at which the entity was created.
10229    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10230    /// The webhook that this failure event is associated with.
10231    pub webhook: Option<Box<Webhook>>,
10232    /// The URL that the webhook was trying to push to.
10233    pub url: Option<String>,
10234    /// The HTTP status code returned by the recipient.
10235    pub http_status: Option<f64>,
10236    /// The HTTP response body returned by the recipient or error occured.
10237    pub response_or_error: Option<String>,
10238    /// The unique execution ID of the webhook push. This is retained between retries of the same push.
10239    pub execution_id: Option<String>,
10240}
10241impl GraphQLFields for WebhookFailureEvent {
10242    type FullType = Self;
10243    fn selection() -> String {
10244        "id createdAt url httpStatus responseOrError executionId".into()
10245    }
10246}
10247#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10248#[serde(rename_all = "camelCase", default)]
10249pub struct WebhookPayload {
10250    /// The identifier of the last sync operation.
10251    pub last_sync_id: Option<f64>,
10252    /// The webhook entity being mutated.
10253    pub webhook: Option<Box<Webhook>>,
10254    /// Whether the operation was successful.
10255    pub success: Option<bool>,
10256}
10257impl GraphQLFields for WebhookPayload {
10258    type FullType = Self;
10259    fn selection() -> String {
10260        "lastSyncId success".into()
10261    }
10262}
10263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10264#[serde(rename_all = "camelCase", default)]
10265pub struct WebhookRotateSecretPayload {
10266    /// The identifier of the last sync operation.
10267    pub last_sync_id: Option<f64>,
10268    /// Whether the operation was successful.
10269    pub success: Option<bool>,
10270    /// The new webhook signing secret.
10271    pub secret: Option<String>,
10272}
10273impl GraphQLFields for WebhookRotateSecretPayload {
10274    type FullType = Self;
10275    fn selection() -> String {
10276        "lastSyncId success secret".into()
10277    }
10278}
10279/// A welcome message for new users joining the workspace.
10280#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10281#[serde(rename_all = "camelCase", default)]
10282pub struct WelcomeMessage {
10283    /// The unique identifier of the entity.
10284    pub id: Option<String>,
10285    /// The time at which the entity was created.
10286    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10287    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10288    /// been updated after creation.
10289    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10290    /// The time at which the entity was archived. Null if the entity has not been archived.
10291    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10292    /// The title of the welcome message notification.
10293    pub title: Option<String>,
10294    /// Whether the welcome message is enabled.
10295    pub enabled: Option<bool>,
10296    /// The user who last updated the welcome message.
10297    pub updated_by: Option<Box<User>>,
10298}
10299impl GraphQLFields for WelcomeMessage {
10300    type FullType = Self;
10301    fn selection() -> String {
10302        "id createdAt updatedAt archivedAt title enabled".into()
10303    }
10304}
10305/// A welcome message related notification.
10306#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10307#[serde(rename_all = "camelCase", default)]
10308pub struct WelcomeMessageNotification {
10309    /// The unique identifier of the entity.
10310    pub id: Option<String>,
10311    /// The time at which the entity was created.
10312    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10313    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10314    /// been updated after creation.
10315    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10316    /// The time at which the entity was archived. Null if the entity has not been archived.
10317    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10318    /// Notification type.
10319    pub r#type: Option<String>,
10320    /// The user that caused the notification.
10321    pub actor: Option<Box<User>>,
10322    /// The external user that caused the notification.
10323    pub external_user_actor: Option<Box<ExternalUser>>,
10324    /// The user that received the notification.
10325    pub user: Option<Box<User>>,
10326    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
10327    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
10328    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
10329    /// reminder has been sent.
10330    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
10331    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
10332    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
10333    /// The time at which a notification was unsnoozed..
10334    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
10335    /// The category of the notification.
10336    pub category: Option<NotificationCategory>,
10337    /// `Internal` URL to the target of the notification.
10338    pub url: Option<String>,
10339    /// `Internal` Inbox URL for the notification.
10340    pub inbox_url: Option<String>,
10341    /// `Internal` Notification title.
10342    pub title: Option<String>,
10343    /// `Internal` Notification subtitle.
10344    pub subtitle: Option<String>,
10345    /// `Internal` If notification actor was Linear.
10346    pub is_linear_actor: Option<bool>,
10347    /// `Internal` Notification avatar URL.
10348    pub actor_avatar_url: Option<String>,
10349    /// `Internal` Notification actor initials if avatar is not available.
10350    pub actor_initials: Option<String>,
10351    /// `Internal` Notification actor initials if avatar is not available.
10352    pub actor_avatar_color: Option<String>,
10353    /// `Internal` Issue's status type for issue notifications.
10354    pub issue_status_type: Option<String>,
10355    /// `Internal` Project update health for new updates.
10356    pub project_update_health: Option<String>,
10357    /// `Internal` Initiative update health for new updates.
10358    pub initiative_update_health: Option<String>,
10359    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
10360    pub grouping_key: Option<String>,
10361    /// `Internal` Priority of the notification with the same grouping key. Higher number means higher priority. If priority is the same, notifications should be sorted by `createdAt`.
10362    pub grouping_priority: Option<f64>,
10363    /// The bot that caused the notification.
10364    pub bot_actor: Option<Box<ActorBot>>,
10365    /// Related welcome message.
10366    pub welcome_message_id: Option<String>,
10367}
10368impl GraphQLFields for WelcomeMessageNotification {
10369    type FullType = Self;
10370    fn selection() -> String {
10371        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority welcomeMessageId"
10372            .into()
10373    }
10374}
10375#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10376#[serde(rename_all = "camelCase", default)]
10377pub struct WorkflowDefinition {
10378    /// The unique identifier of the entity.
10379    pub id: Option<String>,
10380    /// The time at which the entity was created.
10381    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10382    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10383    /// been updated after creation.
10384    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10385    /// The time at which the entity was archived. Null if the entity has not been archived.
10386    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10387    /// The name of the workflow.
10388    pub name: Option<String>,
10389    /// The name of the group that the workflow belongs to.
10390    pub group_name: Option<String>,
10391    /// The description of the workflow.
10392    pub description: Option<String>,
10393    /// The type of the workflow.
10394    pub r#type: Option<WorkflowType>,
10395    /// The type of the event that triggers off the workflow.
10396    pub trigger: Option<WorkflowTrigger>,
10397    /// The object type (e.g. Issue) that triggers this workflow.
10398    pub trigger_type: Option<WorkflowTriggerType>,
10399    /// The conditions that need to be match for the workflow to be triggered.
10400    pub conditions: Option<serde_json::Value>,
10401    pub enabled: Option<bool>,
10402    /// The team associated with the workflow. If not set, the workflow is associated with the entire organization.
10403    pub team: Option<Box<Team>>,
10404    /// The user who created the workflow.
10405    pub creator: Option<Box<User>>,
10406    /// An array of activities that will be executed as part of the workflow.
10407    pub activities: Option<serde_json::Value>,
10408    /// The sort order of the workflow definition within its siblings.
10409    pub sort_order: Option<String>,
10410    /// The date when the workflow was last executed.
10411    pub last_executed_at: Option<chrono::DateTime<chrono::Utc>>,
10412    /// The user who last updated the workflow.
10413    pub last_updated_by: Option<Box<User>>,
10414    /// The contextual label view associated with the workflow.
10415    pub label: Option<Box<IssueLabel>>,
10416    /// The contextual cycle view associated with the workflow.
10417    pub cycle: Option<Box<Cycle>>,
10418    /// The contextual user view associated with the workflow.
10419    pub user: Option<Box<User>>,
10420    /// The contextual project view associated with the workflow.
10421    pub project: Option<Box<Project>>,
10422    /// The contextual initiative view associated with the workflow.
10423    pub initiative: Option<Box<Initiative>>,
10424    /// The context custom view associated with the workflow.
10425    pub custom_view: Option<Box<CustomView>>,
10426    /// The type of view to which this workflow's context is associated with.
10427    pub context_view_type: Option<ContextViewType>,
10428    /// The type of user view to which this workflow's context is associated with.
10429    pub user_context_view_type: Option<UserContextViewType>,
10430}
10431impl GraphQLFields for WorkflowDefinition {
10432    type FullType = Self;
10433    fn selection() -> String {
10434        "id createdAt updatedAt archivedAt name groupName description type trigger triggerType conditions enabled activities sortOrder lastExecutedAt contextViewType userContextViewType"
10435            .into()
10436    }
10437}
10438/// A state in a team workflow.
10439#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10440#[serde(rename_all = "camelCase", default)]
10441pub struct WorkflowState {
10442    /// The unique identifier of the entity.
10443    pub id: Option<String>,
10444    /// The time at which the entity was created.
10445    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10446    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10447    /// been updated after creation.
10448    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10449    /// The time at which the entity was archived. Null if the entity has not been archived.
10450    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10451    /// The state's name.
10452    pub name: Option<String>,
10453    /// The state's UI color as a HEX string.
10454    pub color: Option<String>,
10455    /// Description of the state.
10456    pub description: Option<String>,
10457    /// The position of the state in the team flow.
10458    pub position: Option<f64>,
10459    /// The type of the state. One of "triage", "backlog", "unstarted", "started", "completed", "canceled".
10460    pub r#type: Option<String>,
10461    /// The team to which this state belongs to.
10462    pub team: Option<Box<Team>>,
10463    /// The state inherited from
10464    pub inherited_from: Option<Box<WorkflowState>>,
10465    /// Issues belonging in this state.
10466    pub issues: Option<Box<IssueConnection>>,
10467}
10468impl GraphQLFields for WorkflowState {
10469    type FullType = Self;
10470    fn selection() -> String {
10471        "id createdAt updatedAt archivedAt name color description position type".into()
10472    }
10473}
10474/// A generic payload return from entity archive mutations.
10475#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10476#[serde(rename_all = "camelCase", default)]
10477pub struct WorkflowStateArchivePayload {
10478    /// The identifier of the last sync operation.
10479    pub last_sync_id: Option<f64>,
10480    /// Whether the operation was successful.
10481    pub success: Option<bool>,
10482    /// The archived/unarchived entity. Null if entity was deleted.
10483    pub entity: Option<Box<WorkflowState>>,
10484}
10485impl GraphQLFields for WorkflowStateArchivePayload {
10486    type FullType = Self;
10487    fn selection() -> String {
10488        "lastSyncId success".into()
10489    }
10490}
10491#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10492#[serde(rename_all = "camelCase", default)]
10493pub struct WorkflowStateConnection {
10494    pub edges: Option<Box<Vec<WorkflowStateEdge>>>,
10495    pub nodes: Option<Box<Vec<WorkflowState>>>,
10496    pub page_info: Option<Box<PageInfo>>,
10497}
10498impl GraphQLFields for WorkflowStateConnection {
10499    type FullType = Self;
10500    fn selection() -> String {
10501        "".into()
10502    }
10503}
10504#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10505#[serde(rename_all = "camelCase", default)]
10506pub struct WorkflowStateEdge {
10507    pub node: Option<Box<WorkflowState>>,
10508    /// Used in `before` and `after` args
10509    pub cursor: Option<String>,
10510}
10511impl GraphQLFields for WorkflowStateEdge {
10512    type FullType = Self;
10513    fn selection() -> String {
10514        "cursor".into()
10515    }
10516}
10517#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10518#[serde(rename_all = "camelCase", default)]
10519pub struct WorkflowStatePayload {
10520    /// The identifier of the last sync operation.
10521    pub last_sync_id: Option<f64>,
10522    /// The state that was created or updated.
10523    pub workflow_state: Option<Box<WorkflowState>>,
10524    /// Whether the operation was successful.
10525    pub success: Option<bool>,
10526}
10527impl GraphQLFields for WorkflowStatePayload {
10528    type FullType = Self;
10529    fn selection() -> String {
10530        "lastSyncId success".into()
10531    }
10532}