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/// `Internal` An access key for CI/CD integrations.
8#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase", default)]
10pub struct AccessKey {
11    /// The unique identifier of the entity.
12    pub id: Option<String>,
13    /// The time at which the entity was created.
14    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
15    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
16    /// been updated after creation.
17    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
18    /// The time at which the entity was archived. Null if the entity has not been archived.
19    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
20    /// Organization the API key belongs to.
21    pub organization: Option<Box<Organization>>,
22    /// The user who created the access key.
23    pub creator: Option<Box<User>>,
24    /// When the access key was last used.
25    pub last_used_at: Option<chrono::DateTime<chrono::Utc>>,
26    /// When the access key was revoked.
27    pub revoked_at: Option<chrono::DateTime<chrono::Utc>>,
28}
29impl GraphQLFields for AccessKey {
30    type FullType = Self;
31    fn selection() -> String {
32        "id createdAt updatedAt archivedAt lastUsedAt revokedAt".into()
33    }
34}
35/// A bot actor is an actor that is not a user, but an application or integration.
36#[derive(Debug, Clone, Default, Serialize, Deserialize)]
37#[serde(rename_all = "camelCase", default)]
38pub struct ActorBot {
39    pub id: Option<String>,
40    /// The type of bot.
41    pub r#type: Option<String>,
42    /// The sub type of the bot.
43    pub sub_type: Option<String>,
44    /// The display name of the bot.
45    pub name: Option<String>,
46    /// The display name of the external user on behalf of which the bot acted.
47    pub user_display_name: Option<String>,
48    /// A url pointing to the avatar representing this bot.
49    pub avatar_url: Option<String>,
50}
51impl GraphQLFields for ActorBot {
52    type FullType = Self;
53    fn selection() -> String {
54        "id type subType name userDisplayName avatarUrl".into()
55    }
56}
57/// An activity within an agent context.
58#[derive(Debug, Clone, Default, Serialize, Deserialize)]
59#[serde(rename_all = "camelCase", default)]
60pub struct AgentActivity {
61    /// The unique identifier of the entity.
62    pub id: Option<String>,
63    /// The time at which the entity was created.
64    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
65    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
66    /// been updated after creation.
67    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
68    /// The time at which the entity was archived. Null if the entity has not been archived.
69    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
70    /// The agent session this activity belongs to.
71    pub agent_session: Option<Box<AgentSession>>,
72    /// The comment this activity is linked to.
73    pub source_comment: Option<Box<Comment>>,
74    /// The user who created this agent activity.
75    pub user: Option<Box<User>>,
76    /// Metadata about the external source that created this agent activity.
77    pub source_metadata: Option<serde_json::Value>,
78    /// An optional modifier that provides additional instructions on how the activity should be interpreted.
79    pub signal: Option<AgentActivitySignal>,
80    /// Metadata about this agent activity's signal.
81    pub signal_metadata: Option<serde_json::Value>,
82    /// Whether the activity is ephemeral, and should disappear after the next agent activity.
83    pub ephemeral: Option<bool>,
84    /// `Internal` Metadata about user-provided contextual information for this agent activity.
85    pub contextual_metadata: Option<serde_json::Value>,
86}
87impl GraphQLFields for AgentActivity {
88    type FullType = Self;
89    fn selection() -> String {
90        "id createdAt updatedAt archivedAt sourceMetadata signal signalMetadata ephemeral contextualMetadata"
91            .into()
92    }
93}
94/// Content for an action activity (tool call or action).
95#[derive(Debug, Clone, Default, Serialize, Deserialize)]
96#[serde(rename_all = "camelCase", default)]
97pub struct AgentActivityActionContent {
98    /// The type of activity.
99    pub r#type: Option<AgentActivityType>,
100    /// The action being performed.
101    pub action: Option<String>,
102    /// The parameters for the action, e.g. a file path, a keyword, etc.
103    pub parameter: Option<String>,
104    /// The result of the action in Markdown format.
105    pub result: Option<String>,
106    /// `Internal` The result content as ProseMirror document.
107    pub result_data: Option<serde_json::Value>,
108}
109impl GraphQLFields for AgentActivityActionContent {
110    type FullType = Self;
111    fn selection() -> String {
112        "type action parameter result resultData".into()
113    }
114}
115#[derive(Debug, Clone, Default, Serialize, Deserialize)]
116#[serde(rename_all = "camelCase", default)]
117pub struct AgentActivityConnection {
118    pub edges: Option<Box<Vec<AgentActivityEdge>>>,
119    pub nodes: Option<Box<Vec<AgentActivity>>>,
120    pub page_info: Option<Box<PageInfo>>,
121}
122impl GraphQLFields for AgentActivityConnection {
123    type FullType = Self;
124    fn selection() -> String {
125        "".into()
126    }
127}
128#[derive(Debug, Clone, Default, Serialize, Deserialize)]
129#[serde(rename_all = "camelCase", default)]
130pub struct AgentActivityEdge {
131    pub node: Option<Box<AgentActivity>>,
132    /// Used in `before` and `after` args
133    pub cursor: Option<String>,
134}
135impl GraphQLFields for AgentActivityEdge {
136    type FullType = Self;
137    fn selection() -> String {
138        "cursor".into()
139    }
140}
141/// Content for an elicitation activity.
142#[derive(Debug, Clone, Default, Serialize, Deserialize)]
143#[serde(rename_all = "camelCase", default)]
144pub struct AgentActivityElicitationContent {
145    /// The type of activity.
146    pub r#type: Option<AgentActivityType>,
147    /// The elicitation message in Markdown format.
148    pub body: Option<String>,
149    /// `Internal` The elicitation content as ProseMirror document.
150    pub body_data: Option<serde_json::Value>,
151}
152impl GraphQLFields for AgentActivityElicitationContent {
153    type FullType = Self;
154    fn selection() -> String {
155        "type body bodyData".into()
156    }
157}
158/// Content for an error activity.
159#[derive(Debug, Clone, Default, Serialize, Deserialize)]
160#[serde(rename_all = "camelCase", default)]
161pub struct AgentActivityErrorContent {
162    /// The type of activity.
163    pub r#type: Option<AgentActivityType>,
164    /// The error message in Markdown format.
165    pub body: Option<String>,
166    /// `Internal` The error content as ProseMirror document.
167    pub body_data: Option<serde_json::Value>,
168}
169impl GraphQLFields for AgentActivityErrorContent {
170    type FullType = Self;
171    fn selection() -> String {
172        "type body bodyData".into()
173    }
174}
175#[derive(Debug, Clone, Default, Serialize, Deserialize)]
176#[serde(rename_all = "camelCase", default)]
177pub struct AgentActivityPayload {
178    /// The identifier of the last sync operation.
179    pub last_sync_id: Option<f64>,
180    /// The agent activity that was created or updated.
181    pub agent_activity: Option<Box<AgentActivity>>,
182    /// Whether the operation was successful.
183    pub success: Option<bool>,
184}
185impl GraphQLFields for AgentActivityPayload {
186    type FullType = Self;
187    fn selection() -> String {
188        "lastSyncId success".into()
189    }
190}
191/// Content for a prompt activity.
192#[derive(Debug, Clone, Default, Serialize, Deserialize)]
193#[serde(rename_all = "camelCase", default)]
194pub struct AgentActivityPromptContent {
195    /// The type of activity.
196    pub r#type: Option<AgentActivityType>,
197    /// A message requesting additional information or action from user.
198    pub body: Option<String>,
199    /// `Internal` The prompt content as ProseMirror document.
200    pub body_data: Option<serde_json::Value>,
201}
202impl GraphQLFields for AgentActivityPromptContent {
203    type FullType = Self;
204    fn selection() -> String {
205        "type body bodyData".into()
206    }
207}
208/// Content for a response activity.
209#[derive(Debug, Clone, Default, Serialize, Deserialize)]
210#[serde(rename_all = "camelCase", default)]
211pub struct AgentActivityResponseContent {
212    /// The type of activity.
213    pub r#type: Option<AgentActivityType>,
214    /// The response content in Markdown format.
215    pub body: Option<String>,
216    /// `Internal` The response content as ProseMirror document.
217    pub body_data: Option<serde_json::Value>,
218}
219impl GraphQLFields for AgentActivityResponseContent {
220    type FullType = Self;
221    fn selection() -> String {
222        "type body bodyData".into()
223    }
224}
225/// Content for a thought activity.
226#[derive(Debug, Clone, Default, Serialize, Deserialize)]
227#[serde(rename_all = "camelCase", default)]
228pub struct AgentActivityThoughtContent {
229    /// The type of activity.
230    pub r#type: Option<AgentActivityType>,
231    /// The thought content in Markdown format.
232    pub body: Option<String>,
233    /// `Internal` The thought content as ProseMirror document.
234    pub body_data: Option<serde_json::Value>,
235}
236impl GraphQLFields for AgentActivityThoughtContent {
237    type FullType = Self;
238    fn selection() -> String {
239        "type body bodyData".into()
240    }
241}
242/// A session for agent activities and state management.
243#[derive(Debug, Clone, Default, Serialize, Deserialize)]
244#[serde(rename_all = "camelCase", default)]
245pub struct AgentSession {
246    /// The unique identifier of the entity.
247    pub id: Option<String>,
248    /// The time at which the entity was created.
249    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
250    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
251    /// been updated after creation.
252    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
253    /// The time at which the entity was archived. Null if the entity has not been archived.
254    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
255    /// 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.
256    pub creator: Option<Box<User>>,
257    /// The agent user that is associated with this agent session.
258    pub app_user: Option<Box<User>>,
259    /// The comment this agent session is associated with.
260    pub comment: Option<Box<Comment>>,
261    /// The comment that this agent session was spawned from, if from a different thread.
262    pub source_comment: Option<Box<Comment>>,
263    /// The issue this agent session is associated with.
264    pub issue: Option<Box<Issue>>,
265    /// The current status of the agent session.
266    pub status: Option<AgentSessionStatus>,
267    /// The time the agent session started.
268    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
269    /// The time the agent session ended.
270    pub ended_at: Option<chrono::DateTime<chrono::Utc>>,
271    /// The time the agent session was dismissed.
272    pub dismissed_at: Option<chrono::DateTime<chrono::Utc>>,
273    /// The user who dismissed the agent session.
274    pub dismissed_by: Option<Box<User>>,
275    /// Activities associated with this agent session.
276    pub activities: Option<Box<AgentActivityConnection>>,
277    /// The URL of an external agent-hosted page associated with this session.
278    pub external_link: Option<String>,
279    /// A summary of the activities in this session.
280    pub summary: Option<String>,
281    /// Metadata about the external source that created this agent session.
282    pub source_metadata: Option<serde_json::Value>,
283    /// A dynamically updated list of the agent's execution strategy.
284    pub plan: Option<serde_json::Value>,
285    /// Serialized JSON representing the contexts this session is related to, for direct chat sessions.
286    pub context: Option<serde_json::Value>,
287    /// `DEPRECATED` The type of the agent session.
288    pub r#type: Option<AgentSessionType>,
289    /// Agent session URL.
290    pub url: Option<String>,
291    /// `Internal` Pull requests associated with this agent session.
292    pub pull_requests: Option<Box<AgentSessionToPullRequestConnection>>,
293    /// External links associated with this session.
294    pub external_links: Option<Box<Vec<AgentSessionExternalLink>>>,
295    /// URLs of external resources associated with this session.
296    pub external_urls: Option<serde_json::Value>,
297}
298impl GraphQLFields for AgentSession {
299    type FullType = Self;
300    fn selection() -> String {
301        "id createdAt updatedAt archivedAt status startedAt endedAt dismissedAt externalLink summary sourceMetadata plan context type url externalUrls"
302            .into()
303    }
304}
305#[derive(Debug, Clone, Default, Serialize, Deserialize)]
306#[serde(rename_all = "camelCase", default)]
307pub struct AgentSessionConnection {
308    pub edges: Option<Box<Vec<AgentSessionEdge>>>,
309    pub nodes: Option<Box<Vec<AgentSession>>>,
310    pub page_info: Option<Box<PageInfo>>,
311}
312impl GraphQLFields for AgentSessionConnection {
313    type FullType = Self;
314    fn selection() -> String {
315        "".into()
316    }
317}
318#[derive(Debug, Clone, Default, Serialize, Deserialize)]
319#[serde(rename_all = "camelCase", default)]
320pub struct AgentSessionEdge {
321    pub node: Option<Box<AgentSession>>,
322    /// Used in `before` and `after` args
323    pub cursor: Option<String>,
324}
325impl GraphQLFields for AgentSessionEdge {
326    type FullType = Self;
327    fn selection() -> String {
328        "cursor".into()
329    }
330}
331/// An external link associated with an agent session.
332#[derive(Debug, Clone, Default, Serialize, Deserialize)]
333#[serde(rename_all = "camelCase", default)]
334pub struct AgentSessionExternalLink {
335    /// The URL of the external resource.
336    pub url: Option<String>,
337    /// Label for the link.
338    pub label: Option<String>,
339}
340impl GraphQLFields for AgentSessionExternalLink {
341    type FullType = Self;
342    fn selection() -> String {
343        "url label".into()
344    }
345}
346#[derive(Debug, Clone, Default, Serialize, Deserialize)]
347#[serde(rename_all = "camelCase", default)]
348pub struct AgentSessionPayload {
349    /// The identifier of the last sync operation.
350    pub last_sync_id: Option<f64>,
351    /// Whether the operation was successful.
352    pub success: Option<bool>,
353    /// The agent session that was created or updated.
354    pub agent_session: Option<Box<AgentSession>>,
355}
356impl GraphQLFields for AgentSessionPayload {
357    type FullType = Self;
358    fn selection() -> String {
359        "lastSyncId success".into()
360    }
361}
362/// Join table between agent sessions and pull requests.
363#[derive(Debug, Clone, Default, Serialize, Deserialize)]
364#[serde(rename_all = "camelCase", default)]
365pub struct AgentSessionToPullRequest {
366    /// The unique identifier of the entity.
367    pub id: Option<String>,
368    /// The time at which the entity was created.
369    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
370    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
371    /// been updated after creation.
372    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
373    /// The time at which the entity was archived. Null if the entity has not been archived.
374    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
375    /// The pull request that the agent session is associated with.
376    pub pull_request: Option<Box<PullRequest>>,
377    /// The agent session that the pull request is associated with.
378    pub agent_session: Option<Box<AgentSession>>,
379}
380impl GraphQLFields for AgentSessionToPullRequest {
381    type FullType = Self;
382    fn selection() -> String {
383        "id createdAt updatedAt archivedAt".into()
384    }
385}
386#[derive(Debug, Clone, Default, Serialize, Deserialize)]
387#[serde(rename_all = "camelCase", default)]
388pub struct AgentSessionToPullRequestConnection {
389    pub edges: Option<Box<Vec<AgentSessionToPullRequestEdge>>>,
390    pub nodes: Option<Box<Vec<AgentSessionToPullRequest>>>,
391    pub page_info: Option<Box<PageInfo>>,
392}
393impl GraphQLFields for AgentSessionToPullRequestConnection {
394    type FullType = Self;
395    fn selection() -> String {
396        "".into()
397    }
398}
399#[derive(Debug, Clone, Default, Serialize, Deserialize)]
400#[serde(rename_all = "camelCase", default)]
401pub struct AgentSessionToPullRequestEdge {
402    pub node: Option<Box<AgentSessionToPullRequest>>,
403    /// Used in `before` and `after` args
404    pub cursor: Option<String>,
405}
406impl GraphQLFields for AgentSessionToPullRequestEdge {
407    type FullType = Self;
408    fn selection() -> String {
409        "cursor".into()
410    }
411}
412/// AI prompt rules for a team.
413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
414#[serde(rename_all = "camelCase", default)]
415pub struct AiPromptRules {
416    /// The unique identifier of the entity.
417    pub id: Option<String>,
418    /// The time at which the entity was created.
419    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
420    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
421    /// been updated after creation.
422    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
423    /// The time at which the entity was archived. Null if the entity has not been archived.
424    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
425    /// The user who last updated the AI prompt rules.
426    pub updated_by: Option<Box<User>>,
427}
428impl GraphQLFields for AiPromptRules {
429    type FullType = Self;
430    fn selection() -> String {
431        "id createdAt updatedAt archivedAt".into()
432    }
433}
434/// Public information of the OAuth application.
435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
436#[serde(rename_all = "camelCase", default)]
437pub struct Application {
438    /// OAuth application's ID.
439    pub id: Option<String>,
440    /// OAuth application's client ID.
441    pub client_id: Option<String>,
442    /// Application name.
443    pub name: Option<String>,
444    /// Information about the application.
445    pub description: Option<String>,
446    /// Name of the developer.
447    pub developer: Option<String>,
448    /// Url of the developer (homepage or docs).
449    pub developer_url: Option<String>,
450    /// Image of the application.
451    pub image_url: Option<String>,
452}
453impl GraphQLFields for Application {
454    type FullType = Self;
455    fn selection() -> String {
456        "id clientId name description developer developerUrl imageUrl".into()
457    }
458}
459/// Contains requested archived model objects.
460#[derive(Debug, Clone, Default, Serialize, Deserialize)]
461#[serde(rename_all = "camelCase", default)]
462pub struct ArchiveResponse {
463    /// A JSON serialized collection of model objects loaded from the archive
464    pub archive: Option<String>,
465    /// The total number of entities in the archive.
466    pub total_count: Option<f64>,
467    /// The version of the remote database. Incremented by 1 for each migration run on the database.
468    pub database_version: Option<f64>,
469    /// Whether the dependencies for the model objects are included in the archive.
470    pub includes_dependencies: Option<Vec<String>>,
471}
472impl GraphQLFields for ArchiveResponse {
473    type FullType = Self;
474    fn selection() -> String {
475        "archive totalCount databaseVersion includesDependencies".into()
476    }
477}
478#[derive(Debug, Clone, Default, Serialize, Deserialize)]
479#[serde(rename_all = "camelCase", default)]
480pub struct AsksChannelConnectPayload {
481    /// The identifier of the last sync operation.
482    pub last_sync_id: Option<f64>,
483    /// The integration that was created or updated.
484    pub integration: Option<Box<Integration>>,
485    /// Whether the operation was successful.
486    pub success: Option<bool>,
487    /// The new Asks Slack channel mapping for the connected channel.
488    pub mapping: Option<Box<SlackChannelNameMapping>>,
489    /// Whether the bot needs to be manually added to the channel.
490    pub add_bot: Option<bool>,
491}
492impl GraphQLFields for AsksChannelConnectPayload {
493    type FullType = Self;
494    fn selection() -> String {
495        "lastSyncId success addBot".into()
496    }
497}
498/// A web page for an Asks web form.
499#[derive(Debug, Clone, Default, Serialize, Deserialize)]
500#[serde(rename_all = "camelCase", default)]
501pub struct AsksWebPage {
502    /// The unique identifier of the entity.
503    pub id: Option<String>,
504    /// The time at which the entity was created.
505    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
506    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
507    /// been updated after creation.
508    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
509    /// The time at which the entity was archived. Null if the entity has not been archived.
510    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
511    /// The organization that the Asks web page belongs to.
512    pub organization: Option<Box<Organization>>,
513    /// The Asks web settings this page belongs to.
514    pub asks_web_settings: Option<Box<AsksWebSettings>>,
515    /// The user who created the Asks web page.
516    pub creator: Option<Box<User>>,
517    /// The title of the page.
518    pub title: Option<String>,
519    /// The description of the page.
520    pub description: Option<String>,
521    /// The page's unique URL slug.
522    pub slug_id: Option<String>,
523    /// The auto-reply message for issue created. If not set, the default reply will be used.
524    pub issue_created_auto_reply: Option<String>,
525    /// Whether the auto-reply for issue created is enabled.
526    pub issue_created_auto_reply_enabled: Option<bool>,
527    /// The auto-reply message for issue completed. If not set, the default reply will be used.
528    pub issue_completed_auto_reply: Option<String>,
529    /// Whether the auto-reply for issue completed is enabled.
530    pub issue_completed_auto_reply_enabled: Option<bool>,
531    /// The auto-reply message for issue canceled. If not set, the default reply will be used.
532    pub issue_canceled_auto_reply: Option<String>,
533    /// Whether the auto-reply for issue canceled is enabled.
534    pub issue_canceled_auto_reply_enabled: Option<bool>,
535}
536impl GraphQLFields for AsksWebPage {
537    type FullType = Self;
538    fn selection() -> String {
539        "id createdAt updatedAt archivedAt title description slugId issueCreatedAutoReply issueCreatedAutoReplyEnabled issueCompletedAutoReply issueCompletedAutoReplyEnabled issueCanceledAutoReply issueCanceledAutoReplyEnabled"
540            .into()
541    }
542}
543#[derive(Debug, Clone, Default, Serialize, Deserialize)]
544#[serde(rename_all = "camelCase", default)]
545pub struct AsksWebPagePayload {
546    /// The identifier of the last sync operation.
547    pub last_sync_id: Option<f64>,
548    /// The Asks web page that was created or updated.
549    pub asks_web_page: Option<Box<AsksWebPage>>,
550    /// Whether the operation was successful.
551    pub success: Option<bool>,
552}
553impl GraphQLFields for AsksWebPagePayload {
554    type FullType = Self;
555    fn selection() -> String {
556        "lastSyncId success".into()
557    }
558}
559/// Settings for an Asks web form.
560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
561#[serde(rename_all = "camelCase", default)]
562pub struct AsksWebSettings {
563    /// The unique identifier of the entity.
564    pub id: Option<String>,
565    /// The time at which the entity was created.
566    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
567    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
568    /// been updated after creation.
569    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
570    /// The time at which the entity was archived. Null if the entity has not been archived.
571    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
572    /// The organization that the Asks web settings are associated with.
573    pub organization: Option<Box<Organization>>,
574    /// The user who created the Asks web settings.
575    pub creator: Option<Box<User>>,
576    /// The custom domain for the Asks web form. If null, the default Linear-hosted domain will be used.
577    pub domain: Option<String>,
578    /// The email intake address associated with these Asks web settings.
579    pub email_intake_address: Option<Box<EmailIntakeAddress>>,
580    /// The identity provider for SAML authentication on this Asks web form.
581    pub identity_provider: Option<Box<IdentityProvider>>,
582}
583impl GraphQLFields for AsksWebSettings {
584    type FullType = Self;
585    fn selection() -> String {
586        "id createdAt updatedAt archivedAt domain".into()
587    }
588}
589#[derive(Debug, Clone, Default, Serialize, Deserialize)]
590#[serde(rename_all = "camelCase", default)]
591pub struct AsksWebSettingsPayload {
592    /// The identifier of the last sync operation.
593    pub last_sync_id: Option<f64>,
594    /// The Asks web settings that were created or updated.
595    pub asks_web_settings: Option<Box<AsksWebSettings>>,
596    /// Whether the operation was successful.
597    pub success: Option<bool>,
598}
599impl GraphQLFields for AsksWebSettingsPayload {
600    type FullType = Self;
601    fn selection() -> String {
602        "lastSyncId success".into()
603    }
604}
605/// Issue attachment (e.g. support ticket, pull request).
606#[derive(Debug, Clone, Default, Serialize, Deserialize)]
607#[serde(rename_all = "camelCase", default)]
608pub struct Attachment {
609    /// The unique identifier of the entity.
610    pub id: Option<String>,
611    /// The time at which the entity was created.
612    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
613    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
614    /// been updated after creation.
615    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
616    /// The time at which the entity was archived. Null if the entity has not been archived.
617    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
618    /// Content for the title line in the Linear attachment widget.
619    pub title: Option<String>,
620    /// Content for the subtitle line in the Linear attachment widget.
621    pub subtitle: Option<String>,
622    /// Location of the attachment which is also used as an identifier.
623    pub url: Option<String>,
624    /// The creator of the attachment.
625    pub creator: Option<Box<User>>,
626    /// The non-Linear user who created the attachment.
627    pub external_user_creator: Option<Box<ExternalUser>>,
628    /// Custom metadata related to the attachment.
629    pub metadata: Option<serde_json::Value>,
630    /// Information about the source which created the attachment.
631    pub source: Option<serde_json::Value>,
632    /// An accessor helper to source.type, defines the source type of the attachment.
633    pub source_type: Option<String>,
634    /// Indicates if attachments for the same source application should be grouped in the Linear UI.
635    pub group_by_source: Option<bool>,
636    /// The issue this attachment was originally created on. Will be undefined if the attachment hasn't been moved.
637    pub original_issue: Option<Box<Issue>>,
638    /// The issue this attachment belongs to.
639    pub issue: Option<Box<Issue>>,
640    /// The body data of the attachment, if any.
641    pub body_data: Option<String>,
642}
643impl GraphQLFields for Attachment {
644    type FullType = Self;
645    fn selection() -> String {
646        "id createdAt updatedAt archivedAt title subtitle url metadata source sourceType groupBySource bodyData"
647            .into()
648    }
649}
650#[derive(Debug, Clone, Default, Serialize, Deserialize)]
651#[serde(rename_all = "camelCase", default)]
652pub struct AttachmentConnection {
653    pub edges: Option<Box<Vec<AttachmentEdge>>>,
654    pub nodes: Option<Box<Vec<Attachment>>>,
655    pub page_info: Option<Box<PageInfo>>,
656}
657impl GraphQLFields for AttachmentConnection {
658    type FullType = Self;
659    fn selection() -> String {
660        "".into()
661    }
662}
663#[derive(Debug, Clone, Default, Serialize, Deserialize)]
664#[serde(rename_all = "camelCase", default)]
665pub struct AttachmentEdge {
666    pub node: Option<Box<Attachment>>,
667    /// Used in `before` and `after` args
668    pub cursor: Option<String>,
669}
670impl GraphQLFields for AttachmentEdge {
671    type FullType = Self;
672    fn selection() -> String {
673        "cursor".into()
674    }
675}
676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
677#[serde(rename_all = "camelCase", default)]
678pub struct AttachmentPayload {
679    /// The identifier of the last sync operation.
680    pub last_sync_id: Option<f64>,
681    /// The issue attachment that was created.
682    pub attachment: Option<Box<Attachment>>,
683    /// Whether the operation was successful.
684    pub success: Option<bool>,
685}
686impl GraphQLFields for AttachmentPayload {
687    type FullType = Self;
688    fn selection() -> String {
689        "lastSyncId success".into()
690    }
691}
692#[derive(Debug, Clone, Default, Serialize, Deserialize)]
693#[serde(rename_all = "camelCase", default)]
694pub struct AttachmentSourcesPayload {
695    /// A unique list of all source types used in this workspace.
696    pub sources: Option<serde_json::Value>,
697}
698impl GraphQLFields for AttachmentSourcesPayload {
699    type FullType = Self;
700    fn selection() -> String {
701        "sources".into()
702    }
703}
704/// Workspace audit log entry object.
705#[derive(Debug, Clone, Default, Serialize, Deserialize)]
706#[serde(rename_all = "camelCase", default)]
707pub struct AuditEntry {
708    /// The unique identifier of the entity.
709    pub id: Option<String>,
710    /// The time at which the entity was created.
711    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
712    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
713    /// been updated after creation.
714    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
715    /// The time at which the entity was archived. Null if the entity has not been archived.
716    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
717    pub r#type: Option<String>,
718    /// The organization the audit log belongs to.
719    pub organization: Option<Box<Organization>>,
720    /// The user that caused the audit entry to be created.
721    pub actor: Option<Box<User>>,
722    /// The ID of the user that caused the audit entry to be created.
723    pub actor_id: Option<String>,
724    /// IP from actor when entry was recorded.
725    pub ip: Option<String>,
726    /// Country code of request resulting to audit entry.
727    pub country_code: Option<String>,
728    /// Additional metadata related to the audit entry.
729    pub metadata: Option<serde_json::Value>,
730    /// Additional information related to the request which performed the action.
731    pub request_information: Option<serde_json::Value>,
732}
733impl GraphQLFields for AuditEntry {
734    type FullType = Self;
735    fn selection() -> String {
736        "id createdAt updatedAt archivedAt type actorId ip countryCode metadata requestInformation"
737            .into()
738    }
739}
740#[derive(Debug, Clone, Default, Serialize, Deserialize)]
741#[serde(rename_all = "camelCase", default)]
742pub struct AuditEntryConnection {
743    pub edges: Option<Box<Vec<AuditEntryEdge>>>,
744    pub nodes: Option<Box<Vec<AuditEntry>>>,
745    pub page_info: Option<Box<PageInfo>>,
746}
747impl GraphQLFields for AuditEntryConnection {
748    type FullType = Self;
749    fn selection() -> String {
750        "".into()
751    }
752}
753#[derive(Debug, Clone, Default, Serialize, Deserialize)]
754#[serde(rename_all = "camelCase", default)]
755pub struct AuditEntryEdge {
756    pub node: Option<Box<AuditEntry>>,
757    /// Used in `before` and `after` args
758    pub cursor: Option<String>,
759}
760impl GraphQLFields for AuditEntryEdge {
761    type FullType = Self;
762    fn selection() -> String {
763        "cursor".into()
764    }
765}
766#[derive(Debug, Clone, Default, Serialize, Deserialize)]
767#[serde(rename_all = "camelCase", default)]
768pub struct AuditEntryType {
769    /// The audit entry type.
770    pub r#type: Option<String>,
771    /// Description of the audit entry type.
772    pub description: Option<String>,
773}
774impl GraphQLFields for AuditEntryType {
775    type FullType = Self;
776    fn selection() -> String {
777        "type description".into()
778    }
779}
780/// An identity provider.
781#[derive(Debug, Clone, Default, Serialize, Deserialize)]
782#[serde(rename_all = "camelCase", default)]
783pub struct AuthIdentityProvider {
784    /// The time at which the entity was created.
785    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
786    /// The unique identifier of the entity.
787    pub id: Option<String>,
788    /// Whether the identity provider is the default identity provider migrated from organization level settings.
789    pub default_migrated: Option<bool>,
790    /// The type of identity provider.
791    pub r#type: Option<IdentityProviderType>,
792    /// Whether SAML authentication is enabled for organization.
793    pub saml_enabled: Option<bool>,
794    /// Sign in endpoint URL for the identity provider.
795    pub sso_endpoint: Option<String>,
796    /// Binding method for authentication call. Can be either `post` (default) or `redirect`.
797    pub sso_binding: Option<String>,
798    /// The algorithm of the Signing Certificate. Can be one of `sha1`, `sha256` (default), or `sha512`.
799    pub sso_sign_algo: Option<String>,
800    /// The issuer's custom entity ID.
801    pub issuer_entity_id: Option<String>,
802    /// The service provider (Linear) custom entity ID. Defaults to <https://auth.linear.app/sso>
803    pub sp_entity_id: Option<String>,
804    /// X.509 Signing Certificate in string form.
805    pub sso_signing_cert: Option<String>,
806    /// 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.
807    pub priority: Option<f64>,
808    /// Whether SCIM provisioning is enabled for organization.
809    pub scim_enabled: Option<bool>,
810}
811impl GraphQLFields for AuthIdentityProvider {
812    type FullType = Self;
813    fn selection() -> String {
814        "createdAt id defaultMigrated type samlEnabled ssoEndpoint ssoBinding ssoSignAlgo issuerEntityId spEntityId ssoSigningCert priority scimEnabled"
815            .into()
816    }
817}
818/// An organization. Organizations are root-level objects that contain users and teams.
819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
820#[serde(rename_all = "camelCase", default)]
821pub struct AuthOrganization {
822    /// The time at which the entity was created.
823    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
824    /// The unique identifier of the entity.
825    pub id: Option<String>,
826    /// The organization's name.
827    pub name: Option<String>,
828    /// Whether the organization is enabled. Used as a superuser tool to lock down the org.
829    pub enabled: Option<bool>,
830    /// The organization's unique URL key.
831    pub url_key: Option<String>,
832    /// Previously used URL keys for the organization (last 3 are kept and redirected).
833    pub previous_url_keys: Option<Vec<String>>,
834    /// The organization's logo URL.
835    pub logo_url: Option<String>,
836    /// The time at which deletion of the organization was requested.
837    pub deletion_requested_at: Option<chrono::DateTime<chrono::Utc>>,
838    /// The feature release channel the organization belongs to.
839    pub release_channel: Option<ReleaseChannel>,
840    /// Whether SAML authentication is enabled for organization.
841    pub saml_enabled: Option<bool>,
842    /// `INTERNAL` SAML settings
843    pub saml_settings: Option<serde_json::Value>,
844    /// Allowed authentication providers, empty array means all are allowed
845    pub allowed_auth_services: Option<Vec<String>>,
846    /// Whether SCIM provisioning is enabled for organization.
847    pub scim_enabled: Option<bool>,
848    /// The email domain or URL key for the organization.
849    pub service_id: Option<String>,
850    /// The region the organization is hosted in.
851    pub region: Option<String>,
852    /// Whether to hide other organizations for new users signing up with email domains claimed by this organization.
853    pub hide_non_primary_organizations: Option<bool>,
854    pub user_count: Option<f64>,
855}
856impl GraphQLFields for AuthOrganization {
857    type FullType = Self;
858    fn selection() -> String {
859        "createdAt id name enabled urlKey previousUrlKeys logoUrl deletionRequestedAt releaseChannel samlEnabled samlSettings allowedAuthServices scimEnabled serviceId region hideNonPrimaryOrganizations userCount"
860            .into()
861    }
862}
863#[derive(Debug, Clone, Default, Serialize, Deserialize)]
864#[serde(rename_all = "camelCase", default)]
865pub struct AuthResolverResponse {
866    /// User account ID.
867    pub id: Option<String>,
868    /// Email for the authenticated account.
869    pub email: Option<String>,
870    /// Should the signup flow allow access for the domain.
871    pub allow_domain_access: Option<bool>,
872    /// List of active users that belong to the user account.
873    pub users: Option<Box<Vec<AuthUser>>>,
874    /// List of locked users that are locked by login restrictions
875    pub locked_users: Option<Box<Vec<AuthUser>>>,
876    /// List of organizations allowing this user account to join automatically.
877    pub available_organizations: Option<Box<Vec<AuthOrganization>>>,
878    /// List of organization available to this user account but locked due to the current auth method.
879    pub locked_organizations: Option<Box<Vec<AuthOrganization>>>,
880    /// ID of the organization last accessed by the user.
881    pub last_used_organization_id: Option<String>,
882    /// The authentication service used for the current session (e.g., google, email, saml).
883    pub service: Option<String>,
884    /// Application token.
885    pub token: Option<String>,
886}
887impl GraphQLFields for AuthResolverResponse {
888    type FullType = Self;
889    fn selection() -> String {
890        "id email allowDomainAccess lastUsedOrganizationId service token".into()
891    }
892}
893/// A user that has access to the the resources of an organization.
894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
895#[serde(rename_all = "camelCase", default)]
896pub struct AuthUser {
897    /// The time at which the entity was created.
898    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
899    pub id: Option<String>,
900    /// The user's full name.
901    pub name: Option<String>,
902    /// The user's display (nick) name. Unique within each organization.
903    pub display_name: Option<String>,
904    /// The user's email address.
905    pub email: Option<String>,
906    /// An URL to the user's avatar image.
907    pub avatar_url: Option<String>,
908    /// Whether the user is an organization admin or guest on a database level.
909    pub role: Option<UserRoleType>,
910    /// Whether the user is active.
911    pub active: Option<bool>,
912    /// User account ID the user belongs to.
913    pub user_account_id: Option<String>,
914    /// Organization the user belongs to.
915    pub organization: Option<Box<AuthOrganization>>,
916    /// `INTERNAL` Identity provider the user is managed by.
917    pub identity_provider: Option<Box<AuthIdentityProvider>>,
918}
919impl GraphQLFields for AuthUser {
920    type FullType = Self;
921    fn selection() -> String {
922        "createdAt id name displayName email avatarUrl role active userAccountId".into()
923    }
924}
925/// Authentication session information.
926#[derive(Debug, Clone, Default, Serialize, Deserialize)]
927#[serde(rename_all = "camelCase", default)]
928pub struct AuthenticationSessionResponse {
929    /// The time at which the entity was created.
930    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
931    pub id: Option<String>,
932    /// Type of application used to authenticate.
933    pub r#type: Option<AuthenticationSessionType>,
934    /// IP address.
935    pub ip: Option<String>,
936    /// Location country name.
937    pub location_country: Option<String>,
938    /// Location country code.
939    pub location_country_code: Option<String>,
940    /// Country codes of all seen locations.
941    pub country_codes: Option<Vec<String>>,
942    /// Location region code.
943    pub location_region_code: Option<String>,
944    /// Location city name.
945    pub location_city: Option<String>,
946    /// Session's user-agent.
947    pub user_agent: Option<String>,
948    /// Used web browser.
949    pub browser_type: Option<String>,
950    /// Service used for logging in.
951    pub service: Option<String>,
952    /// When was the session last seen
953    pub last_active_at: Option<chrono::DateTime<chrono::Utc>>,
954    /// Date when the session was last updated.
955    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
956    /// Human readable location
957    pub location: Option<String>,
958    /// Operating system used for the session
959    pub operating_system: Option<String>,
960    /// Client used for the session
961    pub client: Option<String>,
962    /// Name of the session, derived from the client and operating system
963    pub name: Option<String>,
964    /// Identifies the session used to make the request.
965    pub is_current_session: Option<bool>,
966}
967impl GraphQLFields for AuthenticationSessionResponse {
968    type FullType = Self;
969    fn selection() -> String {
970        "createdAt id type ip locationCountry locationCountryCode countryCodes locationRegionCode locationCity userAgent browserType service lastActiveAt updatedAt location operatingSystem client name isCurrentSession"
971            .into()
972    }
973}
974/// A comment associated with an issue.
975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
976#[serde(rename_all = "camelCase", default)]
977pub struct Comment {
978    /// The unique identifier of the entity.
979    pub id: Option<String>,
980    /// The time at which the entity was created.
981    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
982    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
983    /// been updated after creation.
984    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
985    /// The time at which the entity was archived. Null if the entity has not been archived.
986    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
987    /// The comment content in markdown format.
988    pub body: Option<String>,
989    /// The issue that the comment is associated with.
990    pub issue: Option<Box<Issue>>,
991    /// The ID of the issue that the comment is associated with.
992    pub issue_id: Option<String>,
993    /// The document content that the comment is associated with.
994    pub document_content: Option<Box<DocumentContent>>,
995    /// The ID of the document content that the comment is associated with.
996    pub document_content_id: Option<String>,
997    /// The project update that the comment is associated with.
998    pub project_update: Option<Box<ProjectUpdate>>,
999    /// The ID of the project update that the comment is associated with.
1000    pub project_update_id: Option<String>,
1001    /// The initiative update that the comment is associated with.
1002    pub initiative_update: Option<Box<InitiativeUpdate>>,
1003    /// The ID of the initiative update that the comment is associated with.
1004    pub initiative_update_id: Option<String>,
1005    /// The post that the comment is associated with.
1006    pub post: Option<Box<Post>>,
1007    /// The parent comment under which the current comment is nested.
1008    pub parent: Option<Box<Comment>>,
1009    /// The ID of the parent comment under which the current comment is nested.
1010    pub parent_id: Option<String>,
1011    /// The user that resolved the thread.
1012    pub resolving_user: Option<Box<User>>,
1013    /// The time the resolvingUser resolved the thread.
1014    pub resolved_at: Option<chrono::DateTime<chrono::Utc>>,
1015    /// The comment that resolved the thread.
1016    pub resolving_comment: Option<Box<Comment>>,
1017    /// The ID of the comment that resolved the thread.
1018    pub resolving_comment_id: Option<String>,
1019    /// The user who wrote the comment.
1020    pub user: Option<Box<User>>,
1021    /// The external user who wrote the comment.
1022    pub external_user: Option<Box<ExternalUser>>,
1023    /// The time user edited the comment.
1024    pub edited_at: Option<chrono::DateTime<chrono::Utc>>,
1025    /// `Internal` The comment content as a Prosemirror document.
1026    pub body_data: Option<String>,
1027    /// The text that this comment references. Only defined for inline comments.
1028    pub quoted_text: Option<String>,
1029    /// Emoji reaction summary, grouped by emoji type.
1030    pub reaction_data: Option<serde_json::Value>,
1031    /// `Internal` A generated summary of the comment thread.
1032    pub thread_summary: Option<serde_json::Value>,
1033    /// `Internal` Whether the comment is an artificial placeholder for an agent session thread created without a comment mention.
1034    pub is_artificial_agent_session_root: Option<bool>,
1035    /// Comment's URL.
1036    pub url: Option<String>,
1037    /// The children of the comment.
1038    pub children: Option<Box<CommentConnection>>,
1039    /// Agent session associated with this comment.
1040    pub agent_session: Option<Box<AgentSession>>,
1041    /// `Internal` Agent sessions associated with this comment.
1042    pub agent_sessions: Option<Box<AgentSessionConnection>>,
1043    /// Issues created from this comment.
1044    pub created_issues: Option<Box<IssueConnection>>,
1045    /// The bot that created the comment.
1046    pub bot_actor: Option<Box<ActorBot>>,
1047    /// `Internal` The user on whose behalf the comment was created, e.g. when the Linear assistant creates a comment for a user.
1048    pub on_behalf_of: Option<Box<User>>,
1049    /// The external thread that the comment is synced with.
1050    pub external_thread: Option<Box<SyncedExternalThread>>,
1051    /// `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).
1052    pub hide_in_linear: Option<bool>,
1053    /// Reactions associated with the comment.
1054    pub reactions: Option<Box<Vec<Reaction>>>,
1055    /// The external services the comment is synced with.
1056    pub synced_with: Option<Box<Vec<ExternalEntityInfo>>>,
1057}
1058impl GraphQLFields for Comment {
1059    type FullType = Self;
1060    fn selection() -> String {
1061        "id createdAt updatedAt archivedAt body issueId documentContentId projectUpdateId initiativeUpdateId parentId resolvedAt resolvingCommentId editedAt bodyData quotedText reactionData threadSummary isArtificialAgentSessionRoot url hideInLinear"
1062            .into()
1063    }
1064}
1065#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1066#[serde(rename_all = "camelCase", default)]
1067pub struct CommentConnection {
1068    pub edges: Option<Box<Vec<CommentEdge>>>,
1069    pub nodes: Option<Box<Vec<Comment>>>,
1070    pub page_info: Option<Box<PageInfo>>,
1071}
1072impl GraphQLFields for CommentConnection {
1073    type FullType = Self;
1074    fn selection() -> String {
1075        "".into()
1076    }
1077}
1078#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1079#[serde(rename_all = "camelCase", default)]
1080pub struct CommentEdge {
1081    pub node: Option<Box<Comment>>,
1082    /// Used in `before` and `after` args
1083    pub cursor: Option<String>,
1084}
1085impl GraphQLFields for CommentEdge {
1086    type FullType = Self;
1087    fn selection() -> String {
1088        "cursor".into()
1089    }
1090}
1091#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1092#[serde(rename_all = "camelCase", default)]
1093pub struct CommentPayload {
1094    /// The identifier of the last sync operation.
1095    pub last_sync_id: Option<f64>,
1096    /// The comment that was created or updated.
1097    pub comment: Option<Box<Comment>>,
1098    /// Whether the operation was successful.
1099    pub success: Option<bool>,
1100}
1101impl GraphQLFields for CommentPayload {
1102    type FullType = Self;
1103    fn selection() -> String {
1104        "lastSyncId success".into()
1105    }
1106}
1107#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1108#[serde(rename_all = "camelCase", default)]
1109pub struct ContactPayload {
1110    /// Whether the operation was successful.
1111    pub success: Option<bool>,
1112}
1113impl GraphQLFields for ContactPayload {
1114    type FullType = Self;
1115    fn selection() -> String {
1116        "success".into()
1117    }
1118}
1119#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1120#[serde(rename_all = "camelCase", default)]
1121pub struct CreateCsvExportReportPayload {
1122    /// Whether the operation was successful.
1123    pub success: Option<bool>,
1124}
1125impl GraphQLFields for CreateCsvExportReportPayload {
1126    type FullType = Self;
1127    fn selection() -> String {
1128        "success".into()
1129    }
1130}
1131#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1132#[serde(rename_all = "camelCase", default)]
1133pub struct CreateOrJoinOrganizationResponse {
1134    pub organization: Option<Box<AuthOrganization>>,
1135    pub user: Option<Box<AuthUser>>,
1136}
1137impl GraphQLFields for CreateOrJoinOrganizationResponse {
1138    type FullType = Self;
1139    fn selection() -> String {
1140        "".into()
1141    }
1142}
1143/// A custom view that has been saved by a user.
1144#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1145#[serde(rename_all = "camelCase", default)]
1146pub struct CustomView {
1147    /// The unique identifier of the entity.
1148    pub id: Option<String>,
1149    /// The time at which the entity was created.
1150    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1151    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1152    /// been updated after creation.
1153    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1154    /// The time at which the entity was archived. Null if the entity has not been archived.
1155    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1156    /// The name of the custom view.
1157    pub name: Option<String>,
1158    /// The description of the custom view.
1159    pub description: Option<String>,
1160    /// The icon of the custom view.
1161    pub icon: Option<String>,
1162    /// The color of the icon of the custom view.
1163    pub color: Option<String>,
1164    /// The organization of the custom view.
1165    pub organization: Option<Box<Organization>>,
1166    /// The user who created the custom view.
1167    pub creator: Option<Box<User>>,
1168    /// The user who owns the custom view.
1169    pub owner: Option<Box<User>>,
1170    /// The user who last updated the custom view.
1171    pub updated_by: Option<Box<User>>,
1172    /// The filters applied to issues in the custom view.
1173    pub filters: Option<serde_json::Value>,
1174    /// The filter applied to issues in the custom view.
1175    pub filter_data: Option<serde_json::Value>,
1176    /// The filter applied to projects in the custom view.
1177    pub project_filter_data: Option<serde_json::Value>,
1178    /// The filter applied to initiatives in the custom view.
1179    pub initiative_filter_data: Option<serde_json::Value>,
1180    /// The filter applied to feed items in the custom view.
1181    pub feed_item_filter_data: Option<serde_json::Value>,
1182    /// Whether the custom view is shared with everyone in the organization.
1183    pub shared: Option<bool>,
1184    /// The custom view's unique URL slug.
1185    pub slug_id: Option<String>,
1186    /// The model name of the custom view.
1187    pub model_name: Option<String>,
1188    /// `INTERNAL` The facet associated with the custom view.
1189    pub facet: Option<Box<Facet>>,
1190    /// The team associated with the custom view.
1191    pub team: Option<Box<Team>>,
1192    /// Projects associated with the custom view.
1193    pub projects: Option<Box<ProjectConnection>>,
1194    /// Issues associated with the custom view.
1195    pub issues: Option<Box<IssueConnection>>,
1196    /// Feed items associated with the custom view.
1197    pub updates: Option<Box<FeedItemConnection>>,
1198    /// The current users view preferences for this custom view.
1199    pub user_view_preferences: Option<Box<ViewPreferences>>,
1200    /// The organizations default view preferences for this custom view.
1201    pub organization_view_preferences: Option<Box<ViewPreferences>>,
1202    /// The calculated view preferences values for this custom view.
1203    pub view_preferences_values: Option<Box<ViewPreferencesValues>>,
1204    /// Initiatives associated with the custom view.
1205    pub initiatives: Option<Box<InitiativeConnection>>,
1206}
1207impl GraphQLFields for CustomView {
1208    type FullType = Self;
1209    fn selection() -> String {
1210        "id createdAt updatedAt archivedAt name description icon color filters filterData projectFilterData initiativeFilterData feedItemFilterData shared slugId modelName"
1211            .into()
1212    }
1213}
1214#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1215#[serde(rename_all = "camelCase", default)]
1216pub struct CustomViewConnection {
1217    pub edges: Option<Box<Vec<CustomViewEdge>>>,
1218    pub nodes: Option<Box<Vec<CustomView>>>,
1219    pub page_info: Option<Box<PageInfo>>,
1220}
1221impl GraphQLFields for CustomViewConnection {
1222    type FullType = Self;
1223    fn selection() -> String {
1224        "".into()
1225    }
1226}
1227#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1228#[serde(rename_all = "camelCase", default)]
1229pub struct CustomViewEdge {
1230    pub node: Option<Box<CustomView>>,
1231    /// Used in `before` and `after` args
1232    pub cursor: Option<String>,
1233}
1234impl GraphQLFields for CustomViewEdge {
1235    type FullType = Self;
1236    fn selection() -> String {
1237        "cursor".into()
1238    }
1239}
1240#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1241#[serde(rename_all = "camelCase", default)]
1242pub struct CustomViewHasSubscribersPayload {
1243    /// Whether the custom view has subscribers.
1244    pub has_subscribers: Option<bool>,
1245}
1246impl GraphQLFields for CustomViewHasSubscribersPayload {
1247    type FullType = Self;
1248    fn selection() -> String {
1249        "hasSubscribers".into()
1250    }
1251}
1252/// A custom view notification subscription.
1253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1254#[serde(rename_all = "camelCase", default)]
1255pub struct CustomViewNotificationSubscription {
1256    /// The unique identifier of the entity.
1257    pub id: Option<String>,
1258    /// The time at which the entity was created.
1259    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1260    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1261    /// been updated after creation.
1262    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1263    /// The time at which the entity was archived. Null if the entity has not been archived.
1264    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1265    /// The user that subscribed to receive notifications.
1266    pub subscriber: Option<Box<User>>,
1267    /// The customer associated with the notification subscription.
1268    pub customer: Option<Box<Customer>>,
1269    /// The custom view subscribed to.
1270    pub custom_view: Option<Box<CustomView>>,
1271    /// The contextual cycle view associated with the notification subscription.
1272    pub cycle: Option<Box<Cycle>>,
1273    /// The contextual label view associated with the notification subscription.
1274    pub label: Option<Box<IssueLabel>>,
1275    /// The contextual project view associated with the notification subscription.
1276    pub project: Option<Box<Project>>,
1277    /// The contextual initiative view associated with the notification subscription.
1278    pub initiative: Option<Box<Initiative>>,
1279    /// The team associated with the notification subscription.
1280    pub team: Option<Box<Team>>,
1281    /// The user view associated with the notification subscription.
1282    pub user: Option<Box<User>>,
1283    /// The type of view to which the notification subscription context is associated with.
1284    pub context_view_type: Option<ContextViewType>,
1285    /// The type of user view to which the notification subscription context is associated with.
1286    pub user_context_view_type: Option<UserContextViewType>,
1287    /// Whether the subscription is active or not.
1288    pub active: Option<bool>,
1289    /// The type of subscription.
1290    pub notification_subscription_types: Option<Vec<String>>,
1291}
1292impl GraphQLFields for CustomViewNotificationSubscription {
1293    type FullType = Self;
1294    fn selection() -> String {
1295        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
1296            .into()
1297    }
1298}
1299#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1300#[serde(rename_all = "camelCase", default)]
1301pub struct CustomViewPayload {
1302    /// The identifier of the last sync operation.
1303    pub last_sync_id: Option<f64>,
1304    /// The custom view that was created or updated.
1305    pub custom_view: Option<Box<CustomView>>,
1306    /// Whether the operation was successful.
1307    pub success: Option<bool>,
1308}
1309impl GraphQLFields for CustomViewPayload {
1310    type FullType = Self;
1311    fn selection() -> String {
1312        "lastSyncId success".into()
1313    }
1314}
1315#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1316#[serde(rename_all = "camelCase", default)]
1317pub struct CustomViewSuggestionPayload {
1318    /// The suggested view name.
1319    pub name: Option<String>,
1320    /// The suggested view description.
1321    pub description: Option<String>,
1322    /// The suggested view icon.
1323    pub icon: Option<String>,
1324}
1325impl GraphQLFields for CustomViewSuggestionPayload {
1326    type FullType = Self;
1327    fn selection() -> String {
1328        "name description icon".into()
1329    }
1330}
1331/// A customer whose needs will be tied to issues or projects.
1332#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1333#[serde(rename_all = "camelCase", default)]
1334pub struct Customer {
1335    /// The unique identifier of the entity.
1336    pub id: Option<String>,
1337    /// The time at which the entity was created.
1338    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1339    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1340    /// been updated after creation.
1341    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1342    /// The time at which the entity was archived. Null if the entity has not been archived.
1343    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1344    /// The customer's name.
1345    pub name: Option<String>,
1346    /// The customer's logo URL.
1347    pub logo_url: Option<String>,
1348    /// The domains associated with this customer.
1349    pub domains: Option<Vec<String>>,
1350    /// The ids of the customers in external systems.
1351    pub external_ids: Option<Vec<String>>,
1352    /// The ID of the Slack channel used to interact with the customer.
1353    pub slack_channel_id: Option<String>,
1354    /// The user who owns the customer.
1355    pub owner: Option<Box<User>>,
1356    /// The current status of the customer.
1357    pub status: Option<Box<CustomerStatus>>,
1358    /// The annual revenue generated by the customer.
1359    pub revenue: Option<i64>,
1360    /// The size of the customer.
1361    pub size: Option<f64>,
1362    /// The tier of the customer.
1363    pub tier: Option<Box<CustomerTier>>,
1364    /// The approximate number of needs of the customer.
1365    pub approximate_need_count: Option<f64>,
1366    /// The customer's unique URL slug.
1367    pub slug_id: Option<String>,
1368    /// The ID of the main source, when a customer has multiple sources. Must be one of externalIds.
1369    pub main_source_id: Option<String>,
1370    /// The integration that manages the Customer.
1371    pub integration: Option<Box<Integration>>,
1372    /// URL of the customer in Linear.
1373    pub url: Option<String>,
1374}
1375impl GraphQLFields for Customer {
1376    type FullType = Self;
1377    fn selection() -> String {
1378        "id createdAt updatedAt archivedAt name logoUrl domains externalIds slackChannelId revenue size approximateNeedCount slugId mainSourceId url"
1379            .into()
1380    }
1381}
1382#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1383#[serde(rename_all = "camelCase", default)]
1384pub struct CustomerConnection {
1385    pub edges: Option<Box<Vec<CustomerEdge>>>,
1386    pub nodes: Option<Box<Vec<Customer>>>,
1387    pub page_info: Option<Box<PageInfo>>,
1388}
1389impl GraphQLFields for CustomerConnection {
1390    type FullType = Self;
1391    fn selection() -> String {
1392        "".into()
1393    }
1394}
1395#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1396#[serde(rename_all = "camelCase", default)]
1397pub struct CustomerEdge {
1398    pub node: Option<Box<Customer>>,
1399    /// Used in `before` and `after` args
1400    pub cursor: Option<String>,
1401}
1402impl GraphQLFields for CustomerEdge {
1403    type FullType = Self;
1404    fn selection() -> String {
1405        "cursor".into()
1406    }
1407}
1408/// A customer need, expressed through a reference to an issue, project, or comment.
1409#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1410#[serde(rename_all = "camelCase", default)]
1411pub struct CustomerNeed {
1412    /// The unique identifier of the entity.
1413    pub id: Option<String>,
1414    /// The time at which the entity was created.
1415    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1416    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1417    /// been updated after creation.
1418    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1419    /// The time at which the entity was archived. Null if the entity has not been archived.
1420    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1421    /// The customer that this need is attached to.
1422    pub customer: Option<Box<Customer>>,
1423    /// The issue this need is referencing.
1424    pub issue: Option<Box<Issue>>,
1425    /// The project this need is referencing.
1426    pub project: Option<Box<Project>>,
1427    /// The comment this need is referencing.
1428    pub comment: Option<Box<Comment>>,
1429    /// The attachment this need is referencing.
1430    pub attachment: Option<Box<Attachment>>,
1431    /// The project attachment this need is referencing.
1432    pub project_attachment: Option<Box<ProjectAttachment>>,
1433    /// Whether the customer need is important or not. 0 = Not important, 1 = Important.
1434    pub priority: Option<f64>,
1435    /// The need content in markdown format.
1436    pub body: Option<String>,
1437    /// `Internal` The content of the need as a Prosemirror document.
1438    pub body_data: Option<String>,
1439    /// The creator of the customer need.
1440    pub creator: Option<Box<User>>,
1441    /// The issue this customer need was originally created on. Will be undefined if the customer need hasn't been moved.
1442    pub original_issue: Option<Box<Issue>>,
1443    /// The URL of the underlying attachment, if any
1444    pub url: Option<String>,
1445}
1446impl GraphQLFields for CustomerNeed {
1447    type FullType = Self;
1448    fn selection() -> String {
1449        "id createdAt updatedAt archivedAt priority body bodyData url".into()
1450    }
1451}
1452/// A generic payload return from entity archive mutations.
1453#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1454#[serde(rename_all = "camelCase", default)]
1455pub struct CustomerNeedArchivePayload {
1456    /// The identifier of the last sync operation.
1457    pub last_sync_id: Option<f64>,
1458    /// Whether the operation was successful.
1459    pub success: Option<bool>,
1460    /// The archived/unarchived entity. Null if entity was deleted.
1461    pub entity: Option<Box<CustomerNeed>>,
1462}
1463impl GraphQLFields for CustomerNeedArchivePayload {
1464    type FullType = Self;
1465    fn selection() -> String {
1466        "lastSyncId success".into()
1467    }
1468}
1469#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1470#[serde(rename_all = "camelCase", default)]
1471pub struct CustomerNeedConnection {
1472    pub edges: Option<Box<Vec<CustomerNeedEdge>>>,
1473    pub nodes: Option<Box<Vec<CustomerNeed>>>,
1474    pub page_info: Option<Box<PageInfo>>,
1475}
1476impl GraphQLFields for CustomerNeedConnection {
1477    type FullType = Self;
1478    fn selection() -> String {
1479        "".into()
1480    }
1481}
1482#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1483#[serde(rename_all = "camelCase", default)]
1484pub struct CustomerNeedEdge {
1485    pub node: Option<Box<CustomerNeed>>,
1486    /// Used in `before` and `after` args
1487    pub cursor: Option<String>,
1488}
1489impl GraphQLFields for CustomerNeedEdge {
1490    type FullType = Self;
1491    fn selection() -> String {
1492        "cursor".into()
1493    }
1494}
1495/// A customer need related notification.
1496#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1497#[serde(rename_all = "camelCase", default)]
1498pub struct CustomerNeedNotification {
1499    /// The unique identifier of the entity.
1500    pub id: Option<String>,
1501    /// The time at which the entity was created.
1502    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1503    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1504    /// been updated after creation.
1505    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1506    /// The time at which the entity was archived. Null if the entity has not been archived.
1507    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1508    /// Notification type.
1509    pub r#type: Option<String>,
1510    /// The user that caused the notification.
1511    pub actor: Option<Box<User>>,
1512    /// The external user that caused the notification.
1513    pub external_user_actor: Option<Box<ExternalUser>>,
1514    /// The user that received the notification.
1515    pub user: Option<Box<User>>,
1516    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
1517    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
1518    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
1519    /// reminder has been sent.
1520    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
1521    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
1522    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
1523    /// The time at which a notification was unsnoozed..
1524    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
1525    /// The category of the notification.
1526    pub category: Option<NotificationCategory>,
1527    /// `Internal` URL to the target of the notification.
1528    pub url: Option<String>,
1529    /// `Internal` Inbox URL for the notification.
1530    pub inbox_url: Option<String>,
1531    /// `Internal` Notification title.
1532    pub title: Option<String>,
1533    /// `Internal` Notification subtitle.
1534    pub subtitle: Option<String>,
1535    /// `Internal` If notification actor was Linear.
1536    pub is_linear_actor: Option<bool>,
1537    /// `Internal` Notification avatar URL.
1538    pub actor_avatar_url: Option<String>,
1539    /// `Internal` Notification actor initials if avatar is not available.
1540    pub actor_initials: Option<String>,
1541    /// `Internal` Notification actor initials if avatar is not available.
1542    pub actor_avatar_color: Option<String>,
1543    /// `Internal` Issue's status type for issue notifications.
1544    pub issue_status_type: Option<String>,
1545    /// `Internal` Project update health for new updates.
1546    pub project_update_health: Option<String>,
1547    /// `Internal` Initiative update health for new updates.
1548    pub initiative_update_health: Option<String>,
1549    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
1550    pub grouping_key: Option<String>,
1551    /// `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`.
1552    pub grouping_priority: Option<f64>,
1553    /// The bot that caused the notification.
1554    pub bot_actor: Option<Box<ActorBot>>,
1555    /// Related customer need.
1556    pub customer_need_id: Option<String>,
1557    /// The issue related to the notification.
1558    pub related_issue: Option<Box<Issue>>,
1559    /// The project related to the notification.
1560    pub related_project: Option<Box<Project>>,
1561    /// The customer need related to the notification.
1562    pub customer_need: Option<Box<CustomerNeed>>,
1563}
1564impl GraphQLFields for CustomerNeedNotification {
1565    type FullType = Self;
1566    fn selection() -> String {
1567        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority customerNeedId"
1568            .into()
1569    }
1570}
1571#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1572#[serde(rename_all = "camelCase", default)]
1573pub struct CustomerNeedPayload {
1574    /// The identifier of the last sync operation.
1575    pub last_sync_id: Option<f64>,
1576    /// The customer need that was created or updated.
1577    pub need: Option<Box<CustomerNeed>>,
1578    /// Whether the operation was successful.
1579    pub success: Option<bool>,
1580}
1581impl GraphQLFields for CustomerNeedPayload {
1582    type FullType = Self;
1583    fn selection() -> String {
1584        "lastSyncId success".into()
1585    }
1586}
1587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1588#[serde(rename_all = "camelCase", default)]
1589pub struct CustomerNeedUpdatePayload {
1590    /// The identifier of the last sync operation.
1591    pub last_sync_id: Option<f64>,
1592    /// The customer need that was created or updated.
1593    pub need: Option<Box<CustomerNeed>>,
1594    /// Whether the operation was successful.
1595    pub success: Option<bool>,
1596    /// The related customer needs that were updated.
1597    pub updated_related_needs: Option<Box<Vec<CustomerNeed>>>,
1598}
1599impl GraphQLFields for CustomerNeedUpdatePayload {
1600    type FullType = Self;
1601    fn selection() -> String {
1602        "lastSyncId success".into()
1603    }
1604}
1605/// A customer related notification.
1606#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1607#[serde(rename_all = "camelCase", default)]
1608pub struct CustomerNotification {
1609    /// The unique identifier of the entity.
1610    pub id: Option<String>,
1611    /// The time at which the entity was created.
1612    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1613    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1614    /// been updated after creation.
1615    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1616    /// The time at which the entity was archived. Null if the entity has not been archived.
1617    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1618    /// Notification type.
1619    pub r#type: Option<String>,
1620    /// The user that caused the notification.
1621    pub actor: Option<Box<User>>,
1622    /// The external user that caused the notification.
1623    pub external_user_actor: Option<Box<ExternalUser>>,
1624    /// The user that received the notification.
1625    pub user: Option<Box<User>>,
1626    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
1627    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
1628    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
1629    /// reminder has been sent.
1630    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
1631    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
1632    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
1633    /// The time at which a notification was unsnoozed..
1634    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
1635    /// The category of the notification.
1636    pub category: Option<NotificationCategory>,
1637    /// `Internal` URL to the target of the notification.
1638    pub url: Option<String>,
1639    /// `Internal` Inbox URL for the notification.
1640    pub inbox_url: Option<String>,
1641    /// `Internal` Notification title.
1642    pub title: Option<String>,
1643    /// `Internal` Notification subtitle.
1644    pub subtitle: Option<String>,
1645    /// `Internal` If notification actor was Linear.
1646    pub is_linear_actor: Option<bool>,
1647    /// `Internal` Notification avatar URL.
1648    pub actor_avatar_url: Option<String>,
1649    /// `Internal` Notification actor initials if avatar is not available.
1650    pub actor_initials: Option<String>,
1651    /// `Internal` Notification actor initials if avatar is not available.
1652    pub actor_avatar_color: Option<String>,
1653    /// `Internal` Issue's status type for issue notifications.
1654    pub issue_status_type: Option<String>,
1655    /// `Internal` Project update health for new updates.
1656    pub project_update_health: Option<String>,
1657    /// `Internal` Initiative update health for new updates.
1658    pub initiative_update_health: Option<String>,
1659    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
1660    pub grouping_key: Option<String>,
1661    /// `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`.
1662    pub grouping_priority: Option<f64>,
1663    /// The bot that caused the notification.
1664    pub bot_actor: Option<Box<ActorBot>>,
1665    /// Related customer.
1666    pub customer_id: Option<String>,
1667    /// The customer related to the notification.
1668    pub customer: Option<Box<Customer>>,
1669}
1670impl GraphQLFields for CustomerNotification {
1671    type FullType = Self;
1672    fn selection() -> String {
1673        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority customerId"
1674            .into()
1675    }
1676}
1677/// A customer notification subscription.
1678#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1679#[serde(rename_all = "camelCase", default)]
1680pub struct CustomerNotificationSubscription {
1681    /// The unique identifier of the entity.
1682    pub id: Option<String>,
1683    /// The time at which the entity was created.
1684    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1685    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1686    /// been updated after creation.
1687    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1688    /// The time at which the entity was archived. Null if the entity has not been archived.
1689    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1690    /// The user that subscribed to receive notifications.
1691    pub subscriber: Option<Box<User>>,
1692    /// The customer subscribed to.
1693    pub customer: Option<Box<Customer>>,
1694    /// The contextual custom view associated with the notification subscription.
1695    pub custom_view: Option<Box<CustomView>>,
1696    /// The contextual cycle view associated with the notification subscription.
1697    pub cycle: Option<Box<Cycle>>,
1698    /// The contextual label view associated with the notification subscription.
1699    pub label: Option<Box<IssueLabel>>,
1700    /// The contextual project view associated with the notification subscription.
1701    pub project: Option<Box<Project>>,
1702    /// The contextual initiative view associated with the notification subscription.
1703    pub initiative: Option<Box<Initiative>>,
1704    /// The team associated with the notification subscription.
1705    pub team: Option<Box<Team>>,
1706    /// The user view associated with the notification subscription.
1707    pub user: Option<Box<User>>,
1708    /// The type of view to which the notification subscription context is associated with.
1709    pub context_view_type: Option<ContextViewType>,
1710    /// The type of user view to which the notification subscription context is associated with.
1711    pub user_context_view_type: Option<UserContextViewType>,
1712    /// Whether the subscription is active or not.
1713    pub active: Option<bool>,
1714    /// The type of subscription.
1715    pub notification_subscription_types: Option<Vec<String>>,
1716}
1717impl GraphQLFields for CustomerNotificationSubscription {
1718    type FullType = Self;
1719    fn selection() -> String {
1720        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
1721            .into()
1722    }
1723}
1724#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1725#[serde(rename_all = "camelCase", default)]
1726pub struct CustomerPayload {
1727    /// The identifier of the last sync operation.
1728    pub last_sync_id: Option<f64>,
1729    /// The customer that was created or updated.
1730    pub customer: Option<Box<Customer>>,
1731    /// Whether the operation was successful.
1732    pub success: Option<bool>,
1733}
1734impl GraphQLFields for CustomerPayload {
1735    type FullType = Self;
1736    fn selection() -> String {
1737        "lastSyncId success".into()
1738    }
1739}
1740/// A customer status.
1741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1742#[serde(rename_all = "camelCase", default)]
1743pub struct CustomerStatus {
1744    /// The unique identifier of the entity.
1745    pub id: Option<String>,
1746    /// The time at which the entity was created.
1747    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1748    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1749    /// been updated after creation.
1750    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1751    /// The time at which the entity was archived. Null if the entity has not been archived.
1752    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1753    /// The name of the status.
1754    pub name: Option<String>,
1755    /// The UI color of the status as a HEX string.
1756    pub color: Option<String>,
1757    /// Description of the status.
1758    pub description: Option<String>,
1759    /// The position of the status in the workspace's customers flow.
1760    pub position: Option<f64>,
1761    /// The display name of the status.
1762    pub display_name: Option<String>,
1763    /// The type of the customer status.
1764    pub r#type: Option<CustomerStatusType>,
1765}
1766impl GraphQLFields for CustomerStatus {
1767    type FullType = Self;
1768    fn selection() -> String {
1769        "id createdAt updatedAt archivedAt name color description position displayName type".into()
1770    }
1771}
1772#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1773#[serde(rename_all = "camelCase", default)]
1774pub struct CustomerStatusConnection {
1775    pub edges: Option<Box<Vec<CustomerStatusEdge>>>,
1776    pub nodes: Option<Box<Vec<CustomerStatus>>>,
1777    pub page_info: Option<Box<PageInfo>>,
1778}
1779impl GraphQLFields for CustomerStatusConnection {
1780    type FullType = Self;
1781    fn selection() -> String {
1782        "".into()
1783    }
1784}
1785#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1786#[serde(rename_all = "camelCase", default)]
1787pub struct CustomerStatusEdge {
1788    pub node: Option<Box<CustomerStatus>>,
1789    /// Used in `before` and `after` args
1790    pub cursor: Option<String>,
1791}
1792impl GraphQLFields for CustomerStatusEdge {
1793    type FullType = Self;
1794    fn selection() -> String {
1795        "cursor".into()
1796    }
1797}
1798#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1799#[serde(rename_all = "camelCase", default)]
1800pub struct CustomerStatusPayload {
1801    /// The identifier of the last sync operation.
1802    pub last_sync_id: Option<f64>,
1803    /// The customer status that was created or updated.
1804    pub status: Option<Box<CustomerStatus>>,
1805    /// Whether the operation was successful.
1806    pub success: Option<bool>,
1807}
1808impl GraphQLFields for CustomerStatusPayload {
1809    type FullType = Self;
1810    fn selection() -> String {
1811        "lastSyncId success".into()
1812    }
1813}
1814/// A customer tier.
1815#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1816#[serde(rename_all = "camelCase", default)]
1817pub struct CustomerTier {
1818    /// The unique identifier of the entity.
1819    pub id: Option<String>,
1820    /// The time at which the entity was created.
1821    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1822    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1823    /// been updated after creation.
1824    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1825    /// The time at which the entity was archived. Null if the entity has not been archived.
1826    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1827    /// The name of the tier.
1828    pub name: Option<String>,
1829    /// The UI color of the tier as a HEX string.
1830    pub color: Option<String>,
1831    /// Description of the tier.
1832    pub description: Option<String>,
1833    /// The position of the tier in the workspace's customers flow.
1834    pub position: Option<f64>,
1835    /// The display name of the tier.
1836    pub display_name: Option<String>,
1837}
1838impl GraphQLFields for CustomerTier {
1839    type FullType = Self;
1840    fn selection() -> String {
1841        "id createdAt updatedAt archivedAt name color description position displayName".into()
1842    }
1843}
1844#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1845#[serde(rename_all = "camelCase", default)]
1846pub struct CustomerTierConnection {
1847    pub edges: Option<Box<Vec<CustomerTierEdge>>>,
1848    pub nodes: Option<Box<Vec<CustomerTier>>>,
1849    pub page_info: Option<Box<PageInfo>>,
1850}
1851impl GraphQLFields for CustomerTierConnection {
1852    type FullType = Self;
1853    fn selection() -> String {
1854        "".into()
1855    }
1856}
1857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1858#[serde(rename_all = "camelCase", default)]
1859pub struct CustomerTierEdge {
1860    pub node: Option<Box<CustomerTier>>,
1861    /// Used in `before` and `after` args
1862    pub cursor: Option<String>,
1863}
1864impl GraphQLFields for CustomerTierEdge {
1865    type FullType = Self;
1866    fn selection() -> String {
1867        "cursor".into()
1868    }
1869}
1870#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1871#[serde(rename_all = "camelCase", default)]
1872pub struct CustomerTierPayload {
1873    /// The identifier of the last sync operation.
1874    pub last_sync_id: Option<f64>,
1875    /// The customer tier that was created or updated.
1876    pub tier: Option<Box<CustomerTier>>,
1877    /// Whether the operation was successful.
1878    pub success: Option<bool>,
1879}
1880impl GraphQLFields for CustomerTierPayload {
1881    type FullType = Self;
1882    fn selection() -> String {
1883        "lastSyncId success".into()
1884    }
1885}
1886/// A set of issues to be resolved in a specified amount of time.
1887#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1888#[serde(rename_all = "camelCase", default)]
1889pub struct Cycle {
1890    /// The unique identifier of the entity.
1891    pub id: Option<String>,
1892    /// The time at which the entity was created.
1893    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1894    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
1895    /// been updated after creation.
1896    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
1897    /// The time at which the entity was archived. Null if the entity has not been archived.
1898    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
1899    /// The number of the cycle.
1900    pub number: Option<f64>,
1901    /// The custom name of the cycle.
1902    pub name: Option<String>,
1903    /// The cycle's description.
1904    pub description: Option<String>,
1905    /// The start time of the cycle.
1906    pub starts_at: Option<chrono::DateTime<chrono::Utc>>,
1907    /// The end time of the cycle.
1908    pub ends_at: Option<chrono::DateTime<chrono::Utc>>,
1909    /// The completion time of the cycle. If null, the cycle hasn't been completed.
1910    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
1911    /// The time at which the cycle was automatically archived by the auto pruning process.
1912    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
1913    /// The total number of issues in the cycle after each day.
1914    pub issue_count_history: Option<Vec<f64>>,
1915    /// The number of completed issues in the cycle after each day.
1916    pub completed_issue_count_history: Option<Vec<f64>>,
1917    /// The total number of estimation points after each day.
1918    pub scope_history: Option<Vec<f64>>,
1919    /// The number of completed estimation points after each day.
1920    pub completed_scope_history: Option<Vec<f64>>,
1921    /// The number of in progress estimation points after each day.
1922    pub in_progress_scope_history: Option<Vec<f64>>,
1923    /// The team that the cycle is associated with.
1924    pub team: Option<Box<Team>>,
1925    /// `Internal` The progress history of the cycle.
1926    pub progress_history: Option<serde_json::Value>,
1927    /// `Internal` The current progress of the cycle.
1928    pub current_progress: Option<serde_json::Value>,
1929    /// The cycle inherited from.
1930    pub inherited_from: Option<Box<Cycle>>,
1931    /// Whether the cycle is currently active.
1932    pub is_active: Option<bool>,
1933    /// Whether the cycle is in the future.
1934    pub is_future: Option<bool>,
1935    /// Whether the cycle is in the past.
1936    pub is_past: Option<bool>,
1937    /// Issues associated with the cycle.
1938    pub issues: Option<Box<IssueConnection>>,
1939    /// Issues that weren't completed when the cycle was closed.
1940    pub uncompleted_issues_upon_close: Option<Box<IssueConnection>>,
1941    /// The overall progress of the cycle. This is the (completed estimate points + 0.25 * in progress estimate points) / total estimate points.
1942    pub progress: Option<f64>,
1943    /// Whether the cycle is the next cycle for the team.
1944    pub is_next: Option<bool>,
1945    /// Whether the cycle is the previous cycle for the team.
1946    pub is_previous: Option<bool>,
1947    /// `Internal` Documents associated with the cycle.
1948    pub documents: Option<Box<DocumentConnection>>,
1949    /// `Internal` Links associated with the cycle.
1950    pub links: Option<Box<EntityExternalLinkConnection>>,
1951}
1952impl GraphQLFields for Cycle {
1953    type FullType = Self;
1954    fn selection() -> String {
1955        "id createdAt updatedAt archivedAt number name description startsAt endsAt completedAt autoArchivedAt issueCountHistory completedIssueCountHistory scopeHistory completedScopeHistory inProgressScopeHistory progressHistory currentProgress isActive isFuture isPast progress isNext isPrevious"
1956            .into()
1957    }
1958}
1959/// A generic payload return from entity archive mutations.
1960#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1961#[serde(rename_all = "camelCase", default)]
1962pub struct CycleArchivePayload {
1963    /// The identifier of the last sync operation.
1964    pub last_sync_id: Option<f64>,
1965    /// Whether the operation was successful.
1966    pub success: Option<bool>,
1967    /// The archived/unarchived entity. Null if entity was deleted.
1968    pub entity: Option<Box<Cycle>>,
1969}
1970impl GraphQLFields for CycleArchivePayload {
1971    type FullType = Self;
1972    fn selection() -> String {
1973        "lastSyncId success".into()
1974    }
1975}
1976#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1977#[serde(rename_all = "camelCase", default)]
1978pub struct CycleConnection {
1979    pub edges: Option<Box<Vec<CycleEdge>>>,
1980    pub nodes: Option<Box<Vec<Cycle>>>,
1981    pub page_info: Option<Box<PageInfo>>,
1982}
1983impl GraphQLFields for CycleConnection {
1984    type FullType = Self;
1985    fn selection() -> String {
1986        "".into()
1987    }
1988}
1989#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1990#[serde(rename_all = "camelCase", default)]
1991pub struct CycleEdge {
1992    pub node: Option<Box<Cycle>>,
1993    /// Used in `before` and `after` args
1994    pub cursor: Option<String>,
1995}
1996impl GraphQLFields for CycleEdge {
1997    type FullType = Self;
1998    fn selection() -> String {
1999        "cursor".into()
2000    }
2001}
2002/// A cycle notification subscription.
2003#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2004#[serde(rename_all = "camelCase", default)]
2005pub struct CycleNotificationSubscription {
2006    /// The unique identifier of the entity.
2007    pub id: Option<String>,
2008    /// The time at which the entity was created.
2009    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2010    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2011    /// been updated after creation.
2012    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2013    /// The time at which the entity was archived. Null if the entity has not been archived.
2014    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2015    /// The user that subscribed to receive notifications.
2016    pub subscriber: Option<Box<User>>,
2017    /// The customer associated with the notification subscription.
2018    pub customer: Option<Box<Customer>>,
2019    /// The contextual custom view associated with the notification subscription.
2020    pub custom_view: Option<Box<CustomView>>,
2021    /// The cycle subscribed to.
2022    pub cycle: Option<Box<Cycle>>,
2023    /// The contextual label view associated with the notification subscription.
2024    pub label: Option<Box<IssueLabel>>,
2025    /// The contextual project view associated with the notification subscription.
2026    pub project: Option<Box<Project>>,
2027    /// The contextual initiative view associated with the notification subscription.
2028    pub initiative: Option<Box<Initiative>>,
2029    /// The team associated with the notification subscription.
2030    pub team: Option<Box<Team>>,
2031    /// The user view associated with the notification subscription.
2032    pub user: Option<Box<User>>,
2033    /// The type of view to which the notification subscription context is associated with.
2034    pub context_view_type: Option<ContextViewType>,
2035    /// The type of user view to which the notification subscription context is associated with.
2036    pub user_context_view_type: Option<UserContextViewType>,
2037    /// Whether the subscription is active or not.
2038    pub active: Option<bool>,
2039    /// The type of subscription.
2040    pub notification_subscription_types: Option<Vec<String>>,
2041}
2042impl GraphQLFields for CycleNotificationSubscription {
2043    type FullType = Self;
2044    fn selection() -> String {
2045        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
2046            .into()
2047    }
2048}
2049#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2050#[serde(rename_all = "camelCase", default)]
2051pub struct CyclePayload {
2052    /// The identifier of the last sync operation.
2053    pub last_sync_id: Option<f64>,
2054    /// The Cycle that was created or updated.
2055    pub cycle: Option<Box<Cycle>>,
2056    /// Whether the operation was successful.
2057    pub success: Option<bool>,
2058}
2059impl GraphQLFields for CyclePayload {
2060    type FullType = Self;
2061    fn selection() -> String {
2062        "lastSyncId success".into()
2063    }
2064}
2065/// `Internal` A dashboard, usually a collection of widgets to display several insights at once.
2066#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2067#[serde(rename_all = "camelCase", default)]
2068pub struct Dashboard {
2069    /// The unique identifier of the entity.
2070    pub id: Option<String>,
2071    /// The time at which the entity was created.
2072    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2073    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2074    /// been updated after creation.
2075    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2076    /// The time at which the entity was archived. Null if the entity has not been archived.
2077    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2078    /// The dashboard's unique URL slug.
2079    pub slug_id: Option<String>,
2080    /// The name of the dashboard.
2081    pub name: Option<String>,
2082    /// The description of the dashboard.
2083    pub description: Option<String>,
2084    /// The icon of the dashboard.
2085    pub icon: Option<String>,
2086    /// The color of the icon of the dashboard.
2087    pub color: Option<String>,
2088    /// The sort order of the dashboard within the organization or its team.
2089    pub sort_order: Option<f64>,
2090    /// Whether the dashboard is shared with everyone in the organization.
2091    pub shared: Option<bool>,
2092    /// The organization of the dashboard.
2093    pub organization: Option<Box<Organization>>,
2094    /// The user who created the dashboard.
2095    pub creator: Option<Box<User>>,
2096    /// The user who last updated the dashboard.
2097    pub updated_by: Option<Box<User>>,
2098    /// The owner of the dashboard.
2099    pub owner: Option<Box<User>>,
2100    /// The filter applied to all dashboard widgets showing issues data.
2101    pub issue_filter: Option<serde_json::Value>,
2102    /// The filter applied to all dashboard widgets showing projects data.
2103    pub project_filter: Option<serde_json::Value>,
2104    /// The widgets on the dashboard.
2105    pub widgets: Option<serde_json::Value>,
2106    /// The team associated with the dashboard.
2107    pub team: Option<Box<Team>>,
2108}
2109impl GraphQLFields for Dashboard {
2110    type FullType = Self;
2111    fn selection() -> String {
2112        "id createdAt updatedAt archivedAt slugId name description icon color sortOrder shared issueFilter projectFilter widgets"
2113            .into()
2114    }
2115}
2116/// A generic payload return from entity deletion mutations.
2117#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2118#[serde(rename_all = "camelCase", default)]
2119pub struct DeletePayload {
2120    /// The identifier of the last sync operation.
2121    pub last_sync_id: Option<f64>,
2122    /// Whether the operation was successful.
2123    pub success: Option<bool>,
2124    /// The identifier of the deleted entity.
2125    pub entity_id: Option<String>,
2126}
2127impl GraphQLFields for DeletePayload {
2128    type FullType = Self;
2129    fn selection() -> String {
2130        "lastSyncId success entityId".into()
2131    }
2132}
2133/// A document that can be attached to different entities.
2134#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2135#[serde(rename_all = "camelCase", default)]
2136pub struct Document {
2137    /// The unique identifier of the entity.
2138    pub id: Option<String>,
2139    /// The time at which the entity was created.
2140    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2141    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2142    /// been updated after creation.
2143    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2144    /// The time at which the entity was archived. Null if the entity has not been archived.
2145    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2146    /// The document title.
2147    pub title: Option<String>,
2148    /// The icon of the document.
2149    pub icon: Option<String>,
2150    /// The color of the icon.
2151    pub color: Option<String>,
2152    /// The user who created the document.
2153    pub creator: Option<Box<User>>,
2154    /// The user who last updated the document.
2155    pub updated_by: Option<Box<User>>,
2156    /// The project that the document is associated with.
2157    pub project: Option<Box<Project>>,
2158    /// The initiative that the document is associated with.
2159    pub initiative: Option<Box<Initiative>>,
2160    /// `Internal` The team that the document is associated with.
2161    pub team: Option<Box<Team>>,
2162    /// The issue that the document is associated with.
2163    pub issue: Option<Box<Issue>>,
2164    /// `Internal` The release that the document is associated with.
2165    pub release: Option<Box<Release>>,
2166    /// `Internal` The cycle that the document is associated with.
2167    pub cycle: Option<Box<Cycle>>,
2168    /// The document's unique URL slug.
2169    pub slug_id: Option<String>,
2170    /// The last template that was applied to this document.
2171    pub last_applied_template: Option<Box<Template>>,
2172    /// The time at which the document was hidden. Null if the entity has not been hidden.
2173    pub hidden_at: Option<chrono::DateTime<chrono::Utc>>,
2174    /// A flag that indicates whether the document is in the trash bin.
2175    pub trashed: Option<bool>,
2176    /// The order of the item in the resources list.
2177    pub sort_order: Option<f64>,
2178    /// Comments associated with the document.
2179    pub comments: Option<Box<CommentConnection>>,
2180    /// The documents content in markdown format.
2181    pub content: Option<String>,
2182    /// `Internal` The documents content as YJS state.
2183    pub content_state: Option<String>,
2184    /// The ID of the document content associated with the document.
2185    pub document_content_id: Option<String>,
2186    /// The canonical url for the document.
2187    pub url: Option<String>,
2188}
2189impl GraphQLFields for Document {
2190    type FullType = Self;
2191    fn selection() -> String {
2192        "id createdAt updatedAt archivedAt title icon color slugId hiddenAt trashed sortOrder content contentState documentContentId url"
2193            .into()
2194    }
2195}
2196/// A generic payload return from entity archive mutations.
2197#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2198#[serde(rename_all = "camelCase", default)]
2199pub struct DocumentArchivePayload {
2200    /// The identifier of the last sync operation.
2201    pub last_sync_id: Option<f64>,
2202    /// Whether the operation was successful.
2203    pub success: Option<bool>,
2204    /// The archived/unarchived entity. Null if entity was deleted.
2205    pub entity: Option<Box<Document>>,
2206}
2207impl GraphQLFields for DocumentArchivePayload {
2208    type FullType = Self;
2209    fn selection() -> String {
2210        "lastSyncId success".into()
2211    }
2212}
2213#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2214#[serde(rename_all = "camelCase", default)]
2215pub struct DocumentConnection {
2216    pub edges: Option<Box<Vec<DocumentEdge>>>,
2217    pub nodes: Option<Box<Vec<Document>>>,
2218    pub page_info: Option<Box<PageInfo>>,
2219}
2220impl GraphQLFields for DocumentConnection {
2221    type FullType = Self;
2222    fn selection() -> String {
2223        "".into()
2224    }
2225}
2226/// A document content for a project.
2227#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2228#[serde(rename_all = "camelCase", default)]
2229pub struct DocumentContent {
2230    /// The unique identifier of the entity.
2231    pub id: Option<String>,
2232    /// The time at which the entity was created.
2233    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2234    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2235    /// been updated after creation.
2236    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2237    /// The time at which the entity was archived. Null if the entity has not been archived.
2238    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2239    /// The document content in markdown format.
2240    pub content: Option<String>,
2241    /// The document content state as a base64 encoded string.
2242    pub content_state: Option<String>,
2243    /// The issue that the content is associated with.
2244    pub issue: Option<Box<Issue>>,
2245    /// `Internal` The pull request that the content is associated with.
2246    pub pull_request: Option<Box<PullRequest>>,
2247    /// The project that the content is associated with.
2248    pub project: Option<Box<Project>>,
2249    /// The initiative that the content is associated with.
2250    pub initiative: Option<Box<Initiative>>,
2251    /// The project milestone that the content is associated with.
2252    pub project_milestone: Option<Box<ProjectMilestone>>,
2253    /// The document that the content is associated with.
2254    pub document: Option<Box<Document>>,
2255    /// The AI prompt rules that the content is associated with.
2256    pub ai_prompt_rules: Option<Box<AiPromptRules>>,
2257    /// The welcome message that the content is associated with.
2258    pub welcome_message: Option<Box<WelcomeMessage>>,
2259    /// The time at which the document content was restored from a previous version.
2260    pub restored_at: Option<chrono::DateTime<chrono::Utc>>,
2261    /// Comments associated with the document content.
2262    pub comments: Option<Box<CommentConnection>>,
2263    /// `ALPHA` The histories of the document content.
2264    pub history: Option<Box<DocumentContentHistoryConnection>>,
2265}
2266impl GraphQLFields for DocumentContent {
2267    type FullType = Self;
2268    fn selection() -> String {
2269        "id createdAt updatedAt archivedAt content contentState restoredAt".into()
2270    }
2271}
2272/// A document content history for a document.
2273#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2274#[serde(rename_all = "camelCase", default)]
2275pub struct DocumentContentHistory {
2276    /// The unique identifier of the entity.
2277    pub id: Option<String>,
2278    /// The time at which the entity was created.
2279    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2280    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2281    /// been updated after creation.
2282    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2283    /// The time at which the entity was archived. Null if the entity has not been archived.
2284    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2285    /// The document content that this history item is associated with.
2286    pub document_content: Option<Box<DocumentContent>>,
2287    /// `Internal` The document content as a Prosemirror document.
2288    pub content_data: Option<serde_json::Value>,
2289    /// IDs of actors whose edits went into this history item.
2290    pub actor_ids: Option<Vec<String>>,
2291    /// The timestamp associated with the DocumentContent when it was originally saved.
2292    pub content_data_snapshot_at: Option<chrono::DateTime<chrono::Utc>>,
2293}
2294impl GraphQLFields for DocumentContentHistory {
2295    type FullType = Self;
2296    fn selection() -> String {
2297        "id createdAt updatedAt archivedAt contentData actorIds contentDataSnapshotAt".into()
2298    }
2299}
2300#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2301#[serde(rename_all = "camelCase", default)]
2302pub struct DocumentContentHistoryConnection {
2303    pub edges: Option<Box<Vec<DocumentContentHistoryEdge>>>,
2304    pub nodes: Option<Box<Vec<DocumentContentHistory>>>,
2305    pub page_info: Option<Box<PageInfo>>,
2306}
2307impl GraphQLFields for DocumentContentHistoryConnection {
2308    type FullType = Self;
2309    fn selection() -> String {
2310        "".into()
2311    }
2312}
2313#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2314#[serde(rename_all = "camelCase", default)]
2315pub struct DocumentContentHistoryEdge {
2316    pub node: Option<Box<DocumentContentHistory>>,
2317    /// Used in `before` and `after` args
2318    pub cursor: Option<String>,
2319}
2320impl GraphQLFields for DocumentContentHistoryEdge {
2321    type FullType = Self;
2322    fn selection() -> String {
2323        "cursor".into()
2324    }
2325}
2326#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2327#[serde(rename_all = "camelCase", default)]
2328pub struct DocumentContentHistoryPayload {
2329    /// The document content history entries.
2330    pub history: Option<Box<Vec<DocumentContentHistoryType>>>,
2331    /// Whether the operation was successful.
2332    pub success: Option<bool>,
2333}
2334impl GraphQLFields for DocumentContentHistoryPayload {
2335    type FullType = Self;
2336    fn selection() -> String {
2337        "success".into()
2338    }
2339}
2340#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2341#[serde(rename_all = "camelCase", default)]
2342pub struct DocumentContentHistoryType {
2343    /// The UUID of the document content history entry.
2344    pub id: Option<String>,
2345    /// The date when the document content history entry was created.
2346    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2347    /// 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.
2348    pub content_data_snapshot_at: Option<chrono::DateTime<chrono::Utc>>,
2349    /// `Internal` The document content as Prosemirror document.
2350    pub content_data: Option<serde_json::Value>,
2351    /// The ID of the author of the change.
2352    pub actor_ids: Option<Vec<String>>,
2353}
2354impl GraphQLFields for DocumentContentHistoryType {
2355    type FullType = Self;
2356    fn selection() -> String {
2357        "id createdAt contentDataSnapshotAt contentData actorIds".into()
2358    }
2359}
2360#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2361#[serde(rename_all = "camelCase", default)]
2362pub struct DocumentEdge {
2363    pub node: Option<Box<Document>>,
2364    /// Used in `before` and `after` args
2365    pub cursor: Option<String>,
2366}
2367impl GraphQLFields for DocumentEdge {
2368    type FullType = Self;
2369    fn selection() -> String {
2370        "cursor".into()
2371    }
2372}
2373/// A document related notification.
2374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2375#[serde(rename_all = "camelCase", default)]
2376pub struct DocumentNotification {
2377    /// Related comment ID. Null if the notification is not related to a comment.
2378    pub comment_id: Option<String>,
2379    /// Related parent comment ID. Null if the notification is not related to a comment.
2380    pub parent_comment_id: Option<String>,
2381    /// Name of the reaction emoji related to the notification.
2382    pub reaction_emoji: Option<String>,
2383    /// The unique identifier of the entity.
2384    pub id: Option<String>,
2385    /// The time at which the entity was created.
2386    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2387    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2388    /// been updated after creation.
2389    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2390    /// The time at which the entity was archived. Null if the entity has not been archived.
2391    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2392    /// Notification type.
2393    pub r#type: Option<String>,
2394    /// The user that caused the notification.
2395    pub actor: Option<Box<User>>,
2396    /// The external user that caused the notification.
2397    pub external_user_actor: Option<Box<ExternalUser>>,
2398    /// The user that received the notification.
2399    pub user: Option<Box<User>>,
2400    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
2401    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
2402    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
2403    /// reminder has been sent.
2404    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
2405    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
2406    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
2407    /// The time at which a notification was unsnoozed..
2408    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
2409    /// The category of the notification.
2410    pub category: Option<NotificationCategory>,
2411    /// `Internal` URL to the target of the notification.
2412    pub url: Option<String>,
2413    /// `Internal` Inbox URL for the notification.
2414    pub inbox_url: Option<String>,
2415    /// `Internal` Notification title.
2416    pub title: Option<String>,
2417    /// `Internal` Notification subtitle.
2418    pub subtitle: Option<String>,
2419    /// `Internal` If notification actor was Linear.
2420    pub is_linear_actor: Option<bool>,
2421    /// `Internal` Notification avatar URL.
2422    pub actor_avatar_url: Option<String>,
2423    /// `Internal` Notification actor initials if avatar is not available.
2424    pub actor_initials: Option<String>,
2425    /// `Internal` Notification actor initials if avatar is not available.
2426    pub actor_avatar_color: Option<String>,
2427    /// `Internal` Issue's status type for issue notifications.
2428    pub issue_status_type: Option<String>,
2429    /// `Internal` Project update health for new updates.
2430    pub project_update_health: Option<String>,
2431    /// `Internal` Initiative update health for new updates.
2432    pub initiative_update_health: Option<String>,
2433    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
2434    pub grouping_key: Option<String>,
2435    /// `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`.
2436    pub grouping_priority: Option<f64>,
2437    /// The bot that caused the notification.
2438    pub bot_actor: Option<Box<ActorBot>>,
2439    /// Related document ID.
2440    pub document_id: Option<String>,
2441}
2442impl GraphQLFields for DocumentNotification {
2443    type FullType = Self;
2444    fn selection() -> String {
2445        "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"
2446            .into()
2447    }
2448}
2449#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2450#[serde(rename_all = "camelCase", default)]
2451pub struct DocumentPayload {
2452    /// The identifier of the last sync operation.
2453    pub last_sync_id: Option<f64>,
2454    /// The document that was created or updated.
2455    pub document: Option<Box<Document>>,
2456    /// Whether the operation was successful.
2457    pub success: Option<bool>,
2458}
2459impl GraphQLFields for DocumentPayload {
2460    type FullType = Self;
2461    fn selection() -> String {
2462        "lastSyncId success".into()
2463    }
2464}
2465#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2466#[serde(rename_all = "camelCase", default)]
2467pub struct DocumentSearchPayload {
2468    pub edges: Option<Box<Vec<DocumentSearchResultEdge>>>,
2469    pub nodes: Option<Box<Vec<DocumentSearchResult>>>,
2470    pub page_info: Option<Box<PageInfo>>,
2471    /// Archived entities matching the search term along with all their dependencies.
2472    pub archive_payload: Option<Box<ArchiveResponse>>,
2473    /// Total number of results for query without filters applied.
2474    pub total_count: Option<f64>,
2475}
2476impl GraphQLFields for DocumentSearchPayload {
2477    type FullType = Self;
2478    fn selection() -> String {
2479        "totalCount".into()
2480    }
2481}
2482#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2483#[serde(rename_all = "camelCase", default)]
2484pub struct DocumentSearchResult {
2485    /// The unique identifier of the entity.
2486    pub id: Option<String>,
2487    /// The time at which the entity was created.
2488    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2489    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2490    /// been updated after creation.
2491    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2492    /// The time at which the entity was archived. Null if the entity has not been archived.
2493    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2494    /// The document title.
2495    pub title: Option<String>,
2496    /// The icon of the document.
2497    pub icon: Option<String>,
2498    /// The color of the icon.
2499    pub color: Option<String>,
2500    /// The user who created the document.
2501    pub creator: Option<Box<User>>,
2502    /// The user who last updated the document.
2503    pub updated_by: Option<Box<User>>,
2504    /// The project that the document is associated with.
2505    pub project: Option<Box<Project>>,
2506    /// The initiative that the document is associated with.
2507    pub initiative: Option<Box<Initiative>>,
2508    /// `Internal` The team that the document is associated with.
2509    pub team: Option<Box<Team>>,
2510    /// The issue that the document is associated with.
2511    pub issue: Option<Box<Issue>>,
2512    /// `Internal` The release that the document is associated with.
2513    pub release: Option<Box<Release>>,
2514    /// `Internal` The cycle that the document is associated with.
2515    pub cycle: Option<Box<Cycle>>,
2516    /// The document's unique URL slug.
2517    pub slug_id: Option<String>,
2518    /// The last template that was applied to this document.
2519    pub last_applied_template: Option<Box<Template>>,
2520    /// The time at which the document was hidden. Null if the entity has not been hidden.
2521    pub hidden_at: Option<chrono::DateTime<chrono::Utc>>,
2522    /// A flag that indicates whether the document is in the trash bin.
2523    pub trashed: Option<bool>,
2524    /// The order of the item in the resources list.
2525    pub sort_order: Option<f64>,
2526    /// Comments associated with the document.
2527    pub comments: Option<Box<CommentConnection>>,
2528    /// The documents content in markdown format.
2529    pub content: Option<String>,
2530    /// `Internal` The documents content as YJS state.
2531    pub content_state: Option<String>,
2532    /// The ID of the document content associated with the document.
2533    pub document_content_id: Option<String>,
2534    /// The canonical url for the document.
2535    pub url: Option<String>,
2536    /// Metadata related to search result.
2537    pub metadata: Option<serde_json::Value>,
2538}
2539impl GraphQLFields for DocumentSearchResult {
2540    type FullType = Self;
2541    fn selection() -> String {
2542        "id createdAt updatedAt archivedAt title icon color slugId hiddenAt trashed sortOrder content contentState documentContentId url metadata"
2543            .into()
2544    }
2545}
2546#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2547#[serde(rename_all = "camelCase", default)]
2548pub struct DocumentSearchResultEdge {
2549    pub node: Option<Box<DocumentSearchResult>>,
2550    /// Used in `before` and `after` args
2551    pub cursor: Option<String>,
2552}
2553impl GraphQLFields for DocumentSearchResultEdge {
2554    type FullType = Self;
2555    fn selection() -> String {
2556        "cursor".into()
2557    }
2558}
2559/// A general purpose draft. Used for comments, project updates, etc.
2560#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2561#[serde(rename_all = "camelCase", default)]
2562pub struct Draft {
2563    /// The unique identifier of the entity.
2564    pub id: Option<String>,
2565    /// The time at which the entity was created.
2566    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2567    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2568    /// been updated after creation.
2569    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2570    /// The time at which the entity was archived. Null if the entity has not been archived.
2571    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2572    /// The text content as a Prosemirror document.
2573    pub body_data: Option<serde_json::Value>,
2574    /// Additional properties for the draft.
2575    pub data: Option<serde_json::Value>,
2576    /// Whether the draft was autogenerated for the user.
2577    pub is_autogenerated: Option<bool>,
2578    /// `INTERNAL` Whether the draft was ported from a local draft.
2579    pub was_local_draft: Option<bool>,
2580    /// The user who created the draft.
2581    pub user: Option<Box<User>>,
2582    /// The issue for which this is a draft comment.
2583    pub issue: Option<Box<Issue>>,
2584    /// The project for which this is a draft project update.
2585    pub project: Option<Box<Project>>,
2586    /// The project update for which this is a draft comment.
2587    pub project_update: Option<Box<ProjectUpdate>>,
2588    /// The initiative for which this is a draft initiative update.
2589    pub initiative: Option<Box<Initiative>>,
2590    /// The initiative update for which this is a draft comment.
2591    pub initiative_update: Option<Box<InitiativeUpdate>>,
2592    /// The post for which this is a draft comment.
2593    pub post: Option<Box<Post>>,
2594    /// The comment for which this is a draft comment reply.
2595    pub parent_comment: Option<Box<Comment>>,
2596    /// The customer need that this draft is referencing.
2597    pub customer_need: Option<Box<CustomerNeed>>,
2598    /// `INTERNAL` Allows for multiple drafts per entity (currently constrained to Pull Requests).
2599    pub anchor: Option<String>,
2600    /// The team for which this is a draft post.
2601    pub team: Option<Box<Team>>,
2602}
2603impl GraphQLFields for Draft {
2604    type FullType = Self;
2605    fn selection() -> String {
2606        "id createdAt updatedAt archivedAt bodyData data isAutogenerated wasLocalDraft anchor"
2607            .into()
2608    }
2609}
2610#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2611#[serde(rename_all = "camelCase", default)]
2612pub struct DraftConnection {
2613    pub edges: Option<Box<Vec<DraftEdge>>>,
2614    pub nodes: Option<Box<Vec<Draft>>>,
2615    pub page_info: Option<Box<PageInfo>>,
2616}
2617impl GraphQLFields for DraftConnection {
2618    type FullType = Self;
2619    fn selection() -> String {
2620        "".into()
2621    }
2622}
2623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2624#[serde(rename_all = "camelCase", default)]
2625pub struct DraftEdge {
2626    pub node: Option<Box<Draft>>,
2627    /// Used in `before` and `after` args
2628    pub cursor: Option<String>,
2629}
2630impl GraphQLFields for DraftEdge {
2631    type FullType = Self;
2632    fn selection() -> String {
2633        "cursor".into()
2634    }
2635}
2636/// An email address that can be used for submitting issues.
2637#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2638#[serde(rename_all = "camelCase", default)]
2639pub struct EmailIntakeAddress {
2640    /// The unique identifier of the entity.
2641    pub id: Option<String>,
2642    /// The time at which the entity was created.
2643    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2644    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2645    /// been updated after creation.
2646    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2647    /// The time at which the entity was archived. Null if the entity has not been archived.
2648    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2649    /// Unique email address user name (before @) used for incoming email.
2650    pub address: Option<String>,
2651    /// The type of the email address.
2652    pub r#type: Option<EmailIntakeAddressType>,
2653    /// The email address used to forward emails to the intake address.
2654    pub forwarding_email_address: Option<String>,
2655    /// The name to be used for outgoing emails.
2656    pub sender_name: Option<String>,
2657    /// Whether the email address is enabled.
2658    pub enabled: Option<bool>,
2659    /// Whether email replies are enabled.
2660    pub replies_enabled: Option<bool>,
2661    /// Whether the commenter's name is included in the email replies.
2662    pub use_user_names_in_replies: Option<bool>,
2663    /// The template that the email address is associated with.
2664    pub template: Option<Box<Template>>,
2665    /// The team that the email address is associated with.
2666    pub team: Option<Box<Team>>,
2667    /// The organization that the email address is associated with.
2668    pub organization: Option<Box<Organization>>,
2669    /// The SES domain identity that the email address is associated with.
2670    pub ses_domain_identity: Option<Box<SesDomainIdentity>>,
2671    /// The user who created the email intake address.
2672    pub creator: Option<Box<User>>,
2673    /// Whether issues created from that email address will be turned into customer requests.
2674    pub customer_requests_enabled: Option<bool>,
2675    /// The auto-reply message for issue created. If not set, the default reply will be used.
2676    pub issue_created_auto_reply: Option<String>,
2677    /// Whether the auto-reply for issue created is enabled.
2678    pub issue_created_auto_reply_enabled: Option<bool>,
2679    /// Whether the auto-reply for issue completed is enabled.
2680    pub issue_completed_auto_reply_enabled: Option<bool>,
2681    /// The auto-reply message for issue completed. If not set, the default reply will be used.
2682    pub issue_completed_auto_reply: Option<String>,
2683    /// Whether the auto-reply for issue canceled is enabled.
2684    pub issue_canceled_auto_reply_enabled: Option<bool>,
2685    /// The auto-reply message for issue canceled. If not set, the default reply will be used.
2686    pub issue_canceled_auto_reply: Option<String>,
2687}
2688impl GraphQLFields for EmailIntakeAddress {
2689    type FullType = Self;
2690    fn selection() -> String {
2691        "id createdAt updatedAt archivedAt address type forwardingEmailAddress senderName enabled repliesEnabled useUserNamesInReplies customerRequestsEnabled issueCreatedAutoReply issueCreatedAutoReplyEnabled issueCompletedAutoReplyEnabled issueCompletedAutoReply issueCanceledAutoReplyEnabled issueCanceledAutoReply"
2692            .into()
2693    }
2694}
2695#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2696#[serde(rename_all = "camelCase", default)]
2697pub struct EmailIntakeAddressPayload {
2698    /// The identifier of the last sync operation.
2699    pub last_sync_id: Option<f64>,
2700    /// The email address that was created or updated.
2701    pub email_intake_address: Option<Box<EmailIntakeAddress>>,
2702    /// Whether the operation was successful.
2703    pub success: Option<bool>,
2704}
2705impl GraphQLFields for EmailIntakeAddressPayload {
2706    type FullType = Self;
2707    fn selection() -> String {
2708        "lastSyncId success".into()
2709    }
2710}
2711#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2712#[serde(rename_all = "camelCase", default)]
2713pub struct EmailUnsubscribePayload {
2714    /// Whether the operation was successful.
2715    pub success: Option<bool>,
2716}
2717impl GraphQLFields for EmailUnsubscribePayload {
2718    type FullType = Self;
2719    fn selection() -> String {
2720        "success".into()
2721    }
2722}
2723#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2724#[serde(rename_all = "camelCase", default)]
2725pub struct EmailUserAccountAuthChallengeResponse {
2726    /// Whether the operation was successful.
2727    pub success: Option<bool>,
2728    /// Supported challenge for this user account. Can be either verificationCode or password.
2729    pub auth_type: Option<String>,
2730}
2731impl GraphQLFields for EmailUserAccountAuthChallengeResponse {
2732    type FullType = Self;
2733    fn selection() -> String {
2734        "success authType".into()
2735    }
2736}
2737/// A custom emoji.
2738#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2739#[serde(rename_all = "camelCase", default)]
2740pub struct Emoji {
2741    /// The unique identifier of the entity.
2742    pub id: Option<String>,
2743    /// The time at which the entity was created.
2744    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2745    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2746    /// been updated after creation.
2747    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2748    /// The time at which the entity was archived. Null if the entity has not been archived.
2749    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2750    /// The emoji's name.
2751    pub name: Option<String>,
2752    /// The emoji image URL.
2753    pub url: Option<String>,
2754    /// The source of the emoji.
2755    pub source: Option<String>,
2756    /// The user who created the emoji.
2757    pub creator: Option<Box<User>>,
2758    /// The organization that the emoji belongs to.
2759    pub organization: Option<Box<Organization>>,
2760}
2761impl GraphQLFields for Emoji {
2762    type FullType = Self;
2763    fn selection() -> String {
2764        "id createdAt updatedAt archivedAt name url source".into()
2765    }
2766}
2767#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2768#[serde(rename_all = "camelCase", default)]
2769pub struct EmojiConnection {
2770    pub edges: Option<Box<Vec<EmojiEdge>>>,
2771    pub nodes: Option<Box<Vec<Emoji>>>,
2772    pub page_info: Option<Box<PageInfo>>,
2773}
2774impl GraphQLFields for EmojiConnection {
2775    type FullType = Self;
2776    fn selection() -> String {
2777        "".into()
2778    }
2779}
2780#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2781#[serde(rename_all = "camelCase", default)]
2782pub struct EmojiEdge {
2783    pub node: Option<Box<Emoji>>,
2784    /// Used in `before` and `after` args
2785    pub cursor: Option<String>,
2786}
2787impl GraphQLFields for EmojiEdge {
2788    type FullType = Self;
2789    fn selection() -> String {
2790        "cursor".into()
2791    }
2792}
2793#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2794#[serde(rename_all = "camelCase", default)]
2795pub struct EmojiPayload {
2796    /// The identifier of the last sync operation.
2797    pub last_sync_id: Option<f64>,
2798    /// The emoji that was created.
2799    pub emoji: Option<Box<Emoji>>,
2800    /// Whether the operation was successful.
2801    pub success: Option<bool>,
2802}
2803impl GraphQLFields for EmojiPayload {
2804    type FullType = Self;
2805    fn selection() -> String {
2806        "lastSyncId success".into()
2807    }
2808}
2809/// An external link for an entity like initiative, etc...
2810#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2811#[serde(rename_all = "camelCase", default)]
2812pub struct EntityExternalLink {
2813    /// The unique identifier of the entity.
2814    pub id: Option<String>,
2815    /// The time at which the entity was created.
2816    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2817    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2818    /// been updated after creation.
2819    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2820    /// The time at which the entity was archived. Null if the entity has not been archived.
2821    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2822    /// The link's URL.
2823    pub url: Option<String>,
2824    /// The link's label.
2825    pub label: Option<String>,
2826    /// The order of the item in the resources list.
2827    pub sort_order: Option<f64>,
2828    /// The user who created the link.
2829    pub creator: Option<Box<User>>,
2830    /// The initiative that the link is associated with.
2831    pub initiative: Option<Box<Initiative>>,
2832}
2833impl GraphQLFields for EntityExternalLink {
2834    type FullType = Self;
2835    fn selection() -> String {
2836        "id createdAt updatedAt archivedAt url label sortOrder".into()
2837    }
2838}
2839#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2840#[serde(rename_all = "camelCase", default)]
2841pub struct EntityExternalLinkConnection {
2842    pub edges: Option<Box<Vec<EntityExternalLinkEdge>>>,
2843    pub nodes: Option<Box<Vec<EntityExternalLink>>>,
2844    pub page_info: Option<Box<PageInfo>>,
2845}
2846impl GraphQLFields for EntityExternalLinkConnection {
2847    type FullType = Self;
2848    fn selection() -> String {
2849        "".into()
2850    }
2851}
2852#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2853#[serde(rename_all = "camelCase", default)]
2854pub struct EntityExternalLinkEdge {
2855    pub node: Option<Box<EntityExternalLink>>,
2856    /// Used in `before` and `after` args
2857    pub cursor: Option<String>,
2858}
2859impl GraphQLFields for EntityExternalLinkEdge {
2860    type FullType = Self;
2861    fn selection() -> String {
2862        "cursor".into()
2863    }
2864}
2865#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2866#[serde(rename_all = "camelCase", default)]
2867pub struct EntityExternalLinkPayload {
2868    /// The identifier of the last sync operation.
2869    pub last_sync_id: Option<f64>,
2870    /// The link that was created or updated.
2871    pub entity_external_link: Option<Box<EntityExternalLink>>,
2872    /// Whether the operation was successful.
2873    pub success: Option<bool>,
2874}
2875impl GraphQLFields for EntityExternalLinkPayload {
2876    type FullType = Self;
2877    fn selection() -> String {
2878        "lastSyncId success".into()
2879    }
2880}
2881/// Information about an external entity.
2882#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2883#[serde(rename_all = "camelCase", default)]
2884pub struct ExternalEntityInfo {
2885    /// The id of the external entity.
2886    pub id: Option<String>,
2887    /// The name of the service this entity is synced with.
2888    pub service: Option<ExternalSyncService>,
2889}
2890impl GraphQLFields for ExternalEntityInfo {
2891    type FullType = Self;
2892    fn selection() -> String {
2893        "id service".into()
2894    }
2895}
2896/// Metadata about the external GitHub entity.
2897#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2898#[serde(rename_all = "camelCase", default)]
2899pub struct ExternalEntityInfoGithubMetadata {
2900    /// The repository name.
2901    pub repo: Option<String>,
2902    /// The owner of the repository.
2903    pub owner: Option<String>,
2904    /// The number of the issue.
2905    pub number: Option<f64>,
2906}
2907impl GraphQLFields for ExternalEntityInfoGithubMetadata {
2908    type FullType = Self;
2909    fn selection() -> String {
2910        "repo owner number".into()
2911    }
2912}
2913/// Metadata about the external Jira entity.
2914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2915#[serde(rename_all = "camelCase", default)]
2916pub struct ExternalEntityInfoJiraMetadata {
2917    /// The key of the Jira issue.
2918    pub issue_key: Option<String>,
2919    /// The id of the Jira project.
2920    pub project_id: Option<String>,
2921    /// The id of the Jira issue type.
2922    pub issue_type_id: Option<String>,
2923}
2924impl GraphQLFields for ExternalEntityInfoJiraMetadata {
2925    type FullType = Self;
2926    fn selection() -> String {
2927        "issueKey projectId issueTypeId".into()
2928    }
2929}
2930/// Metadata about the external Slack entity.
2931#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2932#[serde(rename_all = "camelCase", default)]
2933pub struct ExternalEntitySlackMetadata {
2934    /// Whether the entity originated from Slack (not Linear).
2935    pub is_from_slack: Option<bool>,
2936    /// The id of the Slack channel.
2937    pub channel_id: Option<String>,
2938    /// The name of the Slack channel.
2939    pub channel_name: Option<String>,
2940    /// The URL of the Slack message.
2941    pub message_url: Option<String>,
2942}
2943impl GraphQLFields for ExternalEntitySlackMetadata {
2944    type FullType = Self;
2945    fn selection() -> String {
2946        "isFromSlack channelId channelName messageUrl".into()
2947    }
2948}
2949/// 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.
2950#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2951#[serde(rename_all = "camelCase", default)]
2952pub struct ExternalUser {
2953    /// The unique identifier of the entity.
2954    pub id: Option<String>,
2955    /// The time at which the entity was created.
2956    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2957    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
2958    /// been updated after creation.
2959    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
2960    /// The time at which the entity was archived. Null if the entity has not been archived.
2961    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
2962    /// The external user's full name.
2963    pub name: Option<String>,
2964    /// The external user's display name. Unique within each organization. Can match the display name of an actual user.
2965    pub display_name: Option<String>,
2966    /// The external user's email address.
2967    pub email: Option<String>,
2968    /// An URL to the external user's avatar image.
2969    pub avatar_url: Option<String>,
2970    /// Organization the external user belongs to.
2971    pub organization: Option<Box<Organization>>,
2972    /// The last time the external user was seen interacting with Linear.
2973    pub last_seen: Option<chrono::DateTime<chrono::Utc>>,
2974}
2975impl GraphQLFields for ExternalUser {
2976    type FullType = Self;
2977    fn selection() -> String {
2978        "id createdAt updatedAt archivedAt name displayName email avatarUrl lastSeen".into()
2979    }
2980}
2981#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2982#[serde(rename_all = "camelCase", default)]
2983pub struct ExternalUserConnection {
2984    pub edges: Option<Box<Vec<ExternalUserEdge>>>,
2985    pub nodes: Option<Box<Vec<ExternalUser>>>,
2986    pub page_info: Option<Box<PageInfo>>,
2987}
2988impl GraphQLFields for ExternalUserConnection {
2989    type FullType = Self;
2990    fn selection() -> String {
2991        "".into()
2992    }
2993}
2994#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2995#[serde(rename_all = "camelCase", default)]
2996pub struct ExternalUserEdge {
2997    pub node: Option<Box<ExternalUser>>,
2998    /// Used in `before` and `after` args
2999    pub cursor: Option<String>,
3000}
3001impl GraphQLFields for ExternalUserEdge {
3002    type FullType = Self;
3003    fn selection() -> String {
3004        "cursor".into()
3005    }
3006}
3007/// 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.
3008#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3009#[serde(rename_all = "camelCase", default)]
3010pub struct Facet {
3011    /// The unique identifier of the entity.
3012    pub id: Option<String>,
3013    /// The time at which the entity was created.
3014    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3015    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3016    /// been updated after creation.
3017    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3018    /// The time at which the entity was archived. Null if the entity has not been archived.
3019    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3020    /// The sort order of the facet.
3021    pub sort_order: Option<f64>,
3022    /// The owning organization.
3023    pub source_organization: Option<Box<Organization>>,
3024    /// The owning team.
3025    pub source_team: Option<Box<Team>>,
3026    /// The owning project.
3027    pub source_project: Option<Box<Project>>,
3028    /// The owning initiative.
3029    pub source_initiative: Option<Box<Initiative>>,
3030    /// The owning feed user.
3031    pub source_feed_user: Option<Box<User>>,
3032    /// The owning page.
3033    pub source_page: Option<FacetPageSource>,
3034    /// The targeted custom view.
3035    pub target_custom_view: Option<Box<CustomView>>,
3036}
3037impl GraphQLFields for Facet {
3038    type FullType = Self;
3039    fn selection() -> String {
3040        "id createdAt updatedAt archivedAt sortOrder sourcePage".into()
3041    }
3042}
3043#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3044#[serde(rename_all = "camelCase", default)]
3045pub struct FacetConnection {
3046    pub edges: Option<Box<Vec<FacetEdge>>>,
3047    pub nodes: Option<Box<Vec<Facet>>>,
3048    pub page_info: Option<Box<PageInfo>>,
3049}
3050impl GraphQLFields for FacetConnection {
3051    type FullType = Self;
3052    fn selection() -> String {
3053        "".into()
3054    }
3055}
3056#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3057#[serde(rename_all = "camelCase", default)]
3058pub struct FacetEdge {
3059    pub node: Option<Box<Facet>>,
3060    /// Used in `before` and `after` args
3061    pub cursor: Option<String>,
3062}
3063impl GraphQLFields for FacetEdge {
3064    type FullType = Self;
3065    fn selection() -> String {
3066        "cursor".into()
3067    }
3068}
3069/// User favorites presented in the sidebar.
3070#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3071#[serde(rename_all = "camelCase", default)]
3072pub struct Favorite {
3073    /// The unique identifier of the entity.
3074    pub id: Option<String>,
3075    /// The time at which the entity was created.
3076    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3077    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3078    /// been updated after creation.
3079    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3080    /// The time at which the entity was archived. Null if the entity has not been archived.
3081    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3082    /// The type of the favorite.
3083    pub r#type: Option<String>,
3084    /// The parent folder of the favorite.
3085    pub parent: Option<Box<Favorite>>,
3086    /// The name of the folder. Only applies to favorites of type folder.
3087    pub folder_name: Option<String>,
3088    /// The targeted tab of the project.
3089    pub project_tab: Option<ProjectTab>,
3090    /// The type of favorited predefined view.
3091    pub predefined_view_type: Option<String>,
3092    /// The targeted tab of the initiative.
3093    pub initiative_tab: Option<InitiativeTab>,
3094    /// The owner of the favorite.
3095    pub owner: Option<Box<User>>,
3096    /// The order of the item in the favorites list.
3097    pub sort_order: Option<f64>,
3098    /// Children of the favorite. Only applies to favorites of type folder.
3099    pub children: Option<Box<FavoriteConnection>>,
3100    /// The favorited issue.
3101    pub issue: Option<Box<Issue>>,
3102    /// The favorited project.
3103    pub project: Option<Box<Project>>,
3104    /// `INTERNAL` The favorited facet.
3105    pub facet: Option<Box<Facet>>,
3106    /// `DEPRECATED` The favorited team of the project.
3107    pub project_team: Option<Box<Team>>,
3108    /// The favorited cycle.
3109    pub cycle: Option<Box<Cycle>>,
3110    /// The favorited custom view.
3111    pub custom_view: Option<Box<CustomView>>,
3112    /// The team of the favorited predefined view.
3113    pub predefined_view_team: Option<Box<Team>>,
3114    /// The favorited document.
3115    pub document: Option<Box<Document>>,
3116    /// The favorited initiative.
3117    pub initiative: Option<Box<Initiative>>,
3118    /// The favorited label.
3119    pub label: Option<Box<IssueLabel>>,
3120    /// The favorited project label.
3121    pub project_label: Option<Box<ProjectLabel>>,
3122    /// The favorited user.
3123    pub user: Option<Box<User>>,
3124    /// The favorited customer.
3125    pub customer: Option<Box<Customer>>,
3126    /// The favorited dashboard.
3127    pub dashboard: Option<Box<Dashboard>>,
3128    /// The favorited pull request.
3129    pub pull_request: Option<Box<PullRequest>>,
3130    /// `ALPHA` The favorited release.
3131    pub release: Option<Box<Release>>,
3132    /// `ALPHA` The favorited release pipeline.
3133    pub release_pipeline: Option<Box<ReleasePipeline>>,
3134    /// URL of the favorited entity. Folders return 'null' value.
3135    pub url: Option<String>,
3136    /// `Internal` Favorite's title text (name of the favorite'd object or folder).
3137    pub title: Option<String>,
3138    /// `Internal` Detail text for favorite's `title` (e.g. team's name for a project).
3139    pub detail: Option<String>,
3140    /// `Internal` Returns the color of the favorite's icon. Unavailable for avatars and views with fixed icons (e.g. cycle).
3141    pub color: Option<String>,
3142    /// `Internal` Name of the favorite's icon. Unavailable for standard views, issues, and avatars
3143    pub icon: Option<String>,
3144}
3145impl GraphQLFields for Favorite {
3146    type FullType = Self;
3147    fn selection() -> String {
3148        "id createdAt updatedAt archivedAt type folderName projectTab predefinedViewType initiativeTab sortOrder url title detail color icon"
3149            .into()
3150    }
3151}
3152#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3153#[serde(rename_all = "camelCase", default)]
3154pub struct FavoriteConnection {
3155    pub edges: Option<Box<Vec<FavoriteEdge>>>,
3156    pub nodes: Option<Box<Vec<Favorite>>>,
3157    pub page_info: Option<Box<PageInfo>>,
3158}
3159impl GraphQLFields for FavoriteConnection {
3160    type FullType = Self;
3161    fn selection() -> String {
3162        "".into()
3163    }
3164}
3165#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3166#[serde(rename_all = "camelCase", default)]
3167pub struct FavoriteEdge {
3168    pub node: Option<Box<Favorite>>,
3169    /// Used in `before` and `after` args
3170    pub cursor: Option<String>,
3171}
3172impl GraphQLFields for FavoriteEdge {
3173    type FullType = Self;
3174    fn selection() -> String {
3175        "cursor".into()
3176    }
3177}
3178#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3179#[serde(rename_all = "camelCase", default)]
3180pub struct FavoritePayload {
3181    /// The identifier of the last sync operation.
3182    pub last_sync_id: Option<f64>,
3183    /// The object that was added as a favorite.
3184    pub favorite: Option<Box<Favorite>>,
3185    /// Whether the operation was successful.
3186    pub success: Option<bool>,
3187}
3188impl GraphQLFields for FavoritePayload {
3189    type FullType = Self;
3190    fn selection() -> String {
3191        "lastSyncId success".into()
3192    }
3193}
3194/// `Internal` An item in a users feed.
3195#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3196#[serde(rename_all = "camelCase", default)]
3197pub struct FeedItem {
3198    /// The unique identifier of the entity.
3199    pub id: Option<String>,
3200    /// The time at which the entity was created.
3201    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3202    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3203    /// been updated after creation.
3204    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3205    /// The time at which the entity was archived. Null if the entity has not been archived.
3206    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3207    /// The organization that will see this feed item.
3208    pub organization: Option<Box<Organization>>,
3209    /// The user that will see this feed item.
3210    pub user: Option<Box<User>>,
3211    /// The team that will see this feed item.
3212    pub team: Option<Box<Team>>,
3213    /// The project update that is in the feed.
3214    pub project_update: Option<Box<ProjectUpdate>>,
3215    /// The initiative update that is in the feed.
3216    pub initiative_update: Option<Box<InitiativeUpdate>>,
3217    /// The post that is in the feed.
3218    pub post: Option<Box<Post>>,
3219}
3220impl GraphQLFields for FeedItem {
3221    type FullType = Self;
3222    fn selection() -> String {
3223        "id createdAt updatedAt archivedAt".into()
3224    }
3225}
3226#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3227#[serde(rename_all = "camelCase", default)]
3228pub struct FeedItemConnection {
3229    pub edges: Option<Box<Vec<FeedItemEdge>>>,
3230    pub nodes: Option<Box<Vec<FeedItem>>>,
3231    pub page_info: Option<Box<PageInfo>>,
3232}
3233impl GraphQLFields for FeedItemConnection {
3234    type FullType = Self;
3235    fn selection() -> String {
3236        "".into()
3237    }
3238}
3239#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3240#[serde(rename_all = "camelCase", default)]
3241pub struct FeedItemEdge {
3242    pub node: Option<Box<FeedItem>>,
3243    /// Used in `before` and `after` args
3244    pub cursor: Option<String>,
3245}
3246impl GraphQLFields for FeedItemEdge {
3247    type FullType = Self;
3248    fn selection() -> String {
3249        "cursor".into()
3250    }
3251}
3252#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3253#[serde(rename_all = "camelCase", default)]
3254pub struct FetchDataPayload {
3255    /// The fetched data based on the natural language query.
3256    pub data: Option<serde_json::Value>,
3257    /// The GraphQL query used to fetch the data.
3258    pub query: Option<String>,
3259    /// The filters used to fetch the data.
3260    pub filters: Option<serde_json::Value>,
3261    /// Whether the fetch operation was successful.
3262    pub success: Option<bool>,
3263}
3264impl GraphQLFields for FetchDataPayload {
3265    type FullType = Self;
3266    fn selection() -> String {
3267        "data query filters success".into()
3268    }
3269}
3270#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3271#[serde(rename_all = "camelCase", default)]
3272pub struct FileUploadDeletePayload {
3273    /// Whether the operation was successful.
3274    pub success: Option<bool>,
3275}
3276impl GraphQLFields for FileUploadDeletePayload {
3277    type FullType = Self;
3278    fn selection() -> String {
3279        "success".into()
3280    }
3281}
3282#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3283#[serde(rename_all = "camelCase", default)]
3284pub struct FrontAttachmentPayload {
3285    /// The identifier of the last sync operation.
3286    pub last_sync_id: Option<f64>,
3287    /// The issue attachment that was created.
3288    pub attachment: Option<Box<Attachment>>,
3289    /// Whether the operation was successful.
3290    pub success: Option<bool>,
3291}
3292impl GraphQLFields for FrontAttachmentPayload {
3293    type FullType = Self;
3294    fn selection() -> String {
3295        "lastSyncId success".into()
3296    }
3297}
3298/// A trigger that updates the issue status according to Git automations.
3299#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3300#[serde(rename_all = "camelCase", default)]
3301pub struct GitAutomationState {
3302    /// The unique identifier of the entity.
3303    pub id: Option<String>,
3304    /// The time at which the entity was created.
3305    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3306    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3307    /// been updated after creation.
3308    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3309    /// The time at which the entity was archived. Null if the entity has not been archived.
3310    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3311    /// The associated workflow state.
3312    pub state: Option<Box<WorkflowState>>,
3313    /// The team to which this automation state belongs.
3314    pub team: Option<Box<Team>>,
3315    /// The target branch associated to this automation state.
3316    pub target_branch: Option<Box<GitAutomationTargetBranch>>,
3317    /// The event that triggers the automation.
3318    pub event: Option<GitAutomationStates>,
3319    /// `DEPRECATED` The target branch, if null, the automation will be triggered on any branch.
3320    pub branch_pattern: Option<String>,
3321}
3322impl GraphQLFields for GitAutomationState {
3323    type FullType = Self;
3324    fn selection() -> String {
3325        "id createdAt updatedAt archivedAt event branchPattern".into()
3326    }
3327}
3328#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3329#[serde(rename_all = "camelCase", default)]
3330pub struct GitAutomationStateConnection {
3331    pub edges: Option<Box<Vec<GitAutomationStateEdge>>>,
3332    pub nodes: Option<Box<Vec<GitAutomationState>>>,
3333    pub page_info: Option<Box<PageInfo>>,
3334}
3335impl GraphQLFields for GitAutomationStateConnection {
3336    type FullType = Self;
3337    fn selection() -> String {
3338        "".into()
3339    }
3340}
3341#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3342#[serde(rename_all = "camelCase", default)]
3343pub struct GitAutomationStateEdge {
3344    pub node: Option<Box<GitAutomationState>>,
3345    /// Used in `before` and `after` args
3346    pub cursor: Option<String>,
3347}
3348impl GraphQLFields for GitAutomationStateEdge {
3349    type FullType = Self;
3350    fn selection() -> String {
3351        "cursor".into()
3352    }
3353}
3354#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3355#[serde(rename_all = "camelCase", default)]
3356pub struct GitAutomationStatePayload {
3357    /// The identifier of the last sync operation.
3358    pub last_sync_id: Option<f64>,
3359    /// The automation state that was created or updated.
3360    pub git_automation_state: Option<Box<GitAutomationState>>,
3361    /// Whether the operation was successful.
3362    pub success: Option<bool>,
3363}
3364impl GraphQLFields for GitAutomationStatePayload {
3365    type FullType = Self;
3366    fn selection() -> String {
3367        "lastSyncId success".into()
3368    }
3369}
3370/// A Git target branch for which there are automations (GitAutomationState).
3371#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3372#[serde(rename_all = "camelCase", default)]
3373pub struct GitAutomationTargetBranch {
3374    /// The unique identifier of the entity.
3375    pub id: Option<String>,
3376    /// The time at which the entity was created.
3377    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3378    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3379    /// been updated after creation.
3380    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3381    /// The time at which the entity was archived. Null if the entity has not been archived.
3382    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3383    /// The team to which this Git target branch automation belongs.
3384    pub team: Option<Box<Team>>,
3385    /// The target branch pattern.
3386    pub branch_pattern: Option<String>,
3387    /// Whether the branch pattern is a regular expression.
3388    pub is_regex: Option<bool>,
3389    /// Automation states associated with the target branch.
3390    pub automation_states: Option<Box<GitAutomationStateConnection>>,
3391}
3392impl GraphQLFields for GitAutomationTargetBranch {
3393    type FullType = Self;
3394    fn selection() -> String {
3395        "id createdAt updatedAt archivedAt branchPattern isRegex".into()
3396    }
3397}
3398#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3399#[serde(rename_all = "camelCase", default)]
3400pub struct GitAutomationTargetBranchPayload {
3401    /// The identifier of the last sync operation.
3402    pub last_sync_id: Option<f64>,
3403    /// The Git target branch automation that was created or updated.
3404    pub target_branch: Option<Box<GitAutomationTargetBranch>>,
3405    /// Whether the operation was successful.
3406    pub success: Option<bool>,
3407}
3408impl GraphQLFields for GitAutomationTargetBranchPayload {
3409    type FullType = Self;
3410    fn selection() -> String {
3411        "lastSyncId success".into()
3412    }
3413}
3414#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3415#[serde(rename_all = "camelCase", default)]
3416pub struct GitHubCommitIntegrationPayload {
3417    /// The identifier of the last sync operation.
3418    pub last_sync_id: Option<f64>,
3419    /// The integration that was created or updated.
3420    pub integration: Option<Box<Integration>>,
3421    /// Whether the operation was successful.
3422    pub success: Option<bool>,
3423    /// The webhook secret to provide to GitHub.
3424    pub webhook_secret: Option<String>,
3425}
3426impl GraphQLFields for GitHubCommitIntegrationPayload {
3427    type FullType = Self;
3428    fn selection() -> String {
3429        "lastSyncId success webhookSecret".into()
3430    }
3431}
3432#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3433#[serde(rename_all = "camelCase", default)]
3434pub struct GitHubEnterpriseServerInstallVerificationPayload {
3435    /// Has the install been successful.
3436    pub success: Option<bool>,
3437}
3438impl GraphQLFields for GitHubEnterpriseServerInstallVerificationPayload {
3439    type FullType = Self;
3440    fn selection() -> String {
3441        "success".into()
3442    }
3443}
3444#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3445#[serde(rename_all = "camelCase", default)]
3446pub struct GitHubEnterpriseServerPayload {
3447    /// The identifier of the last sync operation.
3448    pub last_sync_id: Option<f64>,
3449    /// The integration that was created or updated.
3450    pub integration: Option<Box<Integration>>,
3451    /// Whether the operation was successful.
3452    pub success: Option<bool>,
3453    /// The setup address.
3454    pub setup_url: Option<String>,
3455    /// The app install address.
3456    pub install_url: Option<String>,
3457    /// The webhook secret to provide to GitHub.
3458    pub webhook_secret: Option<String>,
3459}
3460impl GraphQLFields for GitHubEnterpriseServerPayload {
3461    type FullType = Self;
3462    fn selection() -> String {
3463        "lastSyncId success setupUrl installUrl webhookSecret".into()
3464    }
3465}
3466#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3467#[serde(rename_all = "camelCase", default)]
3468pub struct GitLabIntegrationCreatePayload {
3469    /// The identifier of the last sync operation.
3470    pub last_sync_id: Option<f64>,
3471    /// The integration that was created or updated.
3472    pub integration: Option<Box<Integration>>,
3473    /// Whether the operation was successful.
3474    pub success: Option<bool>,
3475    /// The webhook secret to provide to GitLab.
3476    pub webhook_secret: Option<String>,
3477    /// Error message if the connection failed.
3478    pub error: Option<String>,
3479    /// Response body from GitLab for debugging.
3480    pub error_response_body: Option<String>,
3481    /// Response headers from GitLab for debugging (JSON stringified).
3482    pub error_response_headers: Option<String>,
3483}
3484impl GraphQLFields for GitLabIntegrationCreatePayload {
3485    type FullType = Self;
3486    fn selection() -> String {
3487        "lastSyncId success webhookSecret error errorResponseBody errorResponseHeaders".into()
3488    }
3489}
3490#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3491#[serde(rename_all = "camelCase", default)]
3492pub struct GitLabTestConnectionPayload {
3493    /// The identifier of the last sync operation.
3494    pub last_sync_id: Option<f64>,
3495    /// The integration that was created or updated.
3496    pub integration: Option<Box<Integration>>,
3497    /// Whether the operation was successful.
3498    pub success: Option<bool>,
3499    /// Error message if the connection test failed.
3500    pub error: Option<String>,
3501    /// Response body from GitLab for debugging.
3502    pub error_response_body: Option<String>,
3503    /// Response headers from GitLab for debugging (JSON stringified).
3504    pub error_response_headers: Option<String>,
3505}
3506impl GraphQLFields for GitLabTestConnectionPayload {
3507    type FullType = Self;
3508    fn selection() -> String {
3509        "lastSyncId success error errorResponseBody errorResponseHeaders".into()
3510    }
3511}
3512/// An identity provider.
3513#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3514#[serde(rename_all = "camelCase", default)]
3515pub struct IdentityProvider {
3516    /// The unique identifier of the entity.
3517    pub id: Option<String>,
3518    /// The time at which the entity was created.
3519    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3520    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3521    /// been updated after creation.
3522    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3523    /// The time at which the entity was archived. Null if the entity has not been archived.
3524    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3525    /// Whether the identity provider is the default identity provider migrated from organization level settings.
3526    pub default_migrated: Option<bool>,
3527    /// The type of identity provider.
3528    pub r#type: Option<IdentityProviderType>,
3529    /// Whether SAML authentication is enabled for organization.
3530    pub saml_enabled: Option<bool>,
3531    /// Sign in endpoint URL for the identity provider.
3532    pub sso_endpoint: Option<String>,
3533    /// Binding method for authentication call. Can be either `post` (default) or `redirect`.
3534    pub sso_binding: Option<String>,
3535    /// The algorithm of the Signing Certificate. Can be one of `sha1`, `sha256` (default), or `sha512`.
3536    pub sso_sign_algo: Option<String>,
3537    /// X.509 Signing Certificate in string form.
3538    pub sso_signing_cert: Option<String>,
3539    /// The issuer's custom entity ID.
3540    pub issuer_entity_id: Option<String>,
3541    /// The service provider (Linear) custom entity ID. Defaults to <https://auth.linear.app/sso>
3542    pub sp_entity_id: Option<String>,
3543    /// 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.
3544    pub priority: Option<f64>,
3545    /// Whether SCIM provisioning is enabled for organization.
3546    pub scim_enabled: Option<bool>,
3547    /// `INTERNAL` SCIM owners group push settings.
3548    pub owners_group_push: Option<serde_json::Value>,
3549    /// `INTERNAL` SCIM admins group push settings.
3550    pub admins_group_push: Option<serde_json::Value>,
3551    /// `INTERNAL` SCIM guests group push settings.
3552    pub guests_group_push: Option<serde_json::Value>,
3553    /// Whether users are allowed to change their name and display name even if SCIM is enabled.
3554    pub allow_name_change: Option<bool>,
3555}
3556impl GraphQLFields for IdentityProvider {
3557    type FullType = Self;
3558    fn selection() -> String {
3559        "id createdAt updatedAt archivedAt defaultMigrated type samlEnabled ssoEndpoint ssoBinding ssoSignAlgo ssoSigningCert issuerEntityId spEntityId priority scimEnabled ownersGroupPush adminsGroupPush guestsGroupPush allowNameChange"
3560            .into()
3561    }
3562}
3563#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3564#[serde(rename_all = "camelCase", default)]
3565pub struct ImageUploadFromUrlPayload {
3566    /// The identifier of the last sync operation.
3567    pub last_sync_id: Option<f64>,
3568    /// The URL containing the image.
3569    pub url: Option<String>,
3570    /// Whether the operation was successful.
3571    pub success: Option<bool>,
3572}
3573impl GraphQLFields for ImageUploadFromUrlPayload {
3574    type FullType = Self;
3575    fn selection() -> String {
3576        "lastSyncId url success".into()
3577    }
3578}
3579/// An initiative to group projects.
3580#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3581#[serde(rename_all = "camelCase", default)]
3582pub struct Initiative {
3583    /// The unique identifier of the entity.
3584    pub id: Option<String>,
3585    /// The time at which the entity was created.
3586    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3587    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3588    /// been updated after creation.
3589    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3590    /// The time at which the entity was archived. Null if the entity has not been archived.
3591    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3592    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
3593    pub update_reminder_frequency_in_weeks: Option<f64>,
3594    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
3595    pub update_reminder_frequency: Option<f64>,
3596    /// The resolution of the reminder frequency.
3597    pub frequency_resolution: Option<FrequencyResolutionType>,
3598    /// The day at which to prompt for updates.
3599    pub update_reminders_day: Option<Day>,
3600    /// The hour at which to prompt for updates.
3601    pub update_reminders_hour: Option<f64>,
3602    /// The name of the initiative.
3603    pub name: Option<String>,
3604    /// The description of the initiative.
3605    pub description: Option<String>,
3606    /// The organization of the initiative.
3607    pub organization: Option<Box<Organization>>,
3608    /// The user who created the initiative.
3609    pub creator: Option<Box<User>>,
3610    /// The user who owns the initiative.
3611    pub owner: Option<Box<User>>,
3612    /// The initiative's unique URL slug.
3613    pub slug_id: Option<String>,
3614    /// The sort order of the initiative within the organization.
3615    pub sort_order: Option<f64>,
3616    /// The initiative's color.
3617    pub color: Option<String>,
3618    /// The icon of the initiative.
3619    pub icon: Option<String>,
3620    /// A flag that indicates whether the initiative is in the trash bin.
3621    pub trashed: Option<bool>,
3622    /// `Internal` Facets associated with the initiative.
3623    pub facets: Option<Box<Vec<Facet>>>,
3624    /// The estimated completion date of the initiative.
3625    pub target_date: Option<chrono::NaiveDate>,
3626    /// The resolution of the initiative's estimated completion date.
3627    pub target_date_resolution: Option<DateResolutionType>,
3628    /// The status of the initiative. One of Planned, Active, Completed
3629    pub status: Option<InitiativeStatus>,
3630    /// The last initiative update posted for this initiative.
3631    pub last_update: Option<Box<InitiativeUpdate>>,
3632    /// The health of the initiative.
3633    pub health: Option<InitiativeUpdateHealthType>,
3634    /// The time at which the initiative health was updated.
3635    pub health_updated_at: Option<chrono::DateTime<chrono::Utc>>,
3636    /// The time at which the initiative was moved into active status.
3637    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
3638    /// The time at which the initiative was moved into completed status.
3639    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
3640    /// Initiative URL.
3641    pub url: Option<String>,
3642    /// Projects associated with the initiative.
3643    pub projects: Option<Box<ProjectConnection>>,
3644    /// Links associated with the initiative.
3645    pub links: Option<Box<EntityExternalLinkConnection>>,
3646    /// Settings for all integrations associated with that initiative.
3647    pub integrations_settings: Option<Box<IntegrationsSettings>>,
3648    /// History entries associated with the initiative.
3649    pub history: Option<Box<InitiativeHistoryConnection>>,
3650    /// Initiative updates associated with the initiative.
3651    pub initiative_updates: Option<Box<InitiativeUpdateConnection>>,
3652    /// Sub-initiatives associated with the initiative.
3653    pub sub_initiatives: Option<Box<InitiativeConnection>>,
3654    /// Parent initiative associated with the initiative.
3655    pub parent_initiative: Option<Box<Initiative>>,
3656    /// `Internal` Parent initiatives associated with the initiative.
3657    pub parent_initiatives: Option<Box<InitiativeConnection>>,
3658    /// The initiative's content in markdown format.
3659    pub content: Option<String>,
3660    /// The content of the initiative description.
3661    pub document_content: Option<Box<DocumentContent>>,
3662    /// Documents associated with the initiative.
3663    pub documents: Option<Box<DocumentConnection>>,
3664}
3665impl GraphQLFields for Initiative {
3666    type FullType = Self;
3667    fn selection() -> String {
3668        "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"
3669            .into()
3670    }
3671}
3672/// A generic payload return from entity archive mutations.
3673#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3674#[serde(rename_all = "camelCase", default)]
3675pub struct InitiativeArchivePayload {
3676    /// The identifier of the last sync operation.
3677    pub last_sync_id: Option<f64>,
3678    /// Whether the operation was successful.
3679    pub success: Option<bool>,
3680    /// The archived/unarchived entity. Null if entity was deleted.
3681    pub entity: Option<Box<Initiative>>,
3682}
3683impl GraphQLFields for InitiativeArchivePayload {
3684    type FullType = Self;
3685    fn selection() -> String {
3686        "lastSyncId success".into()
3687    }
3688}
3689#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3690#[serde(rename_all = "camelCase", default)]
3691pub struct InitiativeConnection {
3692    pub edges: Option<Box<Vec<InitiativeEdge>>>,
3693    pub nodes: Option<Box<Vec<Initiative>>>,
3694    pub page_info: Option<Box<PageInfo>>,
3695}
3696impl GraphQLFields for InitiativeConnection {
3697    type FullType = Self;
3698    fn selection() -> String {
3699        "".into()
3700    }
3701}
3702#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3703#[serde(rename_all = "camelCase", default)]
3704pub struct InitiativeEdge {
3705    pub node: Option<Box<Initiative>>,
3706    /// Used in `before` and `after` args
3707    pub cursor: Option<String>,
3708}
3709impl GraphQLFields for InitiativeEdge {
3710    type FullType = Self;
3711    fn selection() -> String {
3712        "cursor".into()
3713    }
3714}
3715/// A initiative history containing relevant change events.
3716#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3717#[serde(rename_all = "camelCase", default)]
3718pub struct InitiativeHistory {
3719    /// The unique identifier of the entity.
3720    pub id: Option<String>,
3721    /// The time at which the entity was created.
3722    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3723    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3724    /// been updated after creation.
3725    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3726    /// The time at which the entity was archived. Null if the entity has not been archived.
3727    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3728    /// The events that happened while recording that history.
3729    pub entries: Option<serde_json::Value>,
3730    /// The initiative that the history is associated with.
3731    pub initiative: Option<Box<Initiative>>,
3732}
3733impl GraphQLFields for InitiativeHistory {
3734    type FullType = Self;
3735    fn selection() -> String {
3736        "id createdAt updatedAt archivedAt entries".into()
3737    }
3738}
3739#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3740#[serde(rename_all = "camelCase", default)]
3741pub struct InitiativeHistoryConnection {
3742    pub edges: Option<Box<Vec<InitiativeHistoryEdge>>>,
3743    pub nodes: Option<Box<Vec<InitiativeHistory>>>,
3744    pub page_info: Option<Box<PageInfo>>,
3745}
3746impl GraphQLFields for InitiativeHistoryConnection {
3747    type FullType = Self;
3748    fn selection() -> String {
3749        "".into()
3750    }
3751}
3752#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3753#[serde(rename_all = "camelCase", default)]
3754pub struct InitiativeHistoryEdge {
3755    pub node: Option<Box<InitiativeHistory>>,
3756    /// Used in `before` and `after` args
3757    pub cursor: Option<String>,
3758}
3759impl GraphQLFields for InitiativeHistoryEdge {
3760    type FullType = Self;
3761    fn selection() -> String {
3762        "cursor".into()
3763    }
3764}
3765/// An initiative related notification.
3766#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3767#[serde(rename_all = "camelCase", default)]
3768pub struct InitiativeNotification {
3769    /// Related comment ID. Null if the notification is not related to a comment.
3770    pub comment_id: Option<String>,
3771    /// Related parent comment ID. Null if the notification is not related to a comment.
3772    pub parent_comment_id: Option<String>,
3773    /// Name of the reaction emoji related to the notification.
3774    pub reaction_emoji: Option<String>,
3775    /// The unique identifier of the entity.
3776    pub id: Option<String>,
3777    /// The time at which the entity was created.
3778    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3779    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3780    /// been updated after creation.
3781    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3782    /// The time at which the entity was archived. Null if the entity has not been archived.
3783    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3784    /// Notification type.
3785    pub r#type: Option<String>,
3786    /// The user that caused the notification.
3787    pub actor: Option<Box<User>>,
3788    /// The external user that caused the notification.
3789    pub external_user_actor: Option<Box<ExternalUser>>,
3790    /// The user that received the notification.
3791    pub user: Option<Box<User>>,
3792    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
3793    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
3794    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
3795    /// reminder has been sent.
3796    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
3797    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
3798    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
3799    /// The time at which a notification was unsnoozed..
3800    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
3801    /// The category of the notification.
3802    pub category: Option<NotificationCategory>,
3803    /// `Internal` URL to the target of the notification.
3804    pub url: Option<String>,
3805    /// `Internal` Inbox URL for the notification.
3806    pub inbox_url: Option<String>,
3807    /// `Internal` Notification title.
3808    pub title: Option<String>,
3809    /// `Internal` Notification subtitle.
3810    pub subtitle: Option<String>,
3811    /// `Internal` If notification actor was Linear.
3812    pub is_linear_actor: Option<bool>,
3813    /// `Internal` Notification avatar URL.
3814    pub actor_avatar_url: Option<String>,
3815    /// `Internal` Notification actor initials if avatar is not available.
3816    pub actor_initials: Option<String>,
3817    /// `Internal` Notification actor initials if avatar is not available.
3818    pub actor_avatar_color: Option<String>,
3819    /// `Internal` Issue's status type for issue notifications.
3820    pub issue_status_type: Option<String>,
3821    /// `Internal` Project update health for new updates.
3822    pub project_update_health: Option<String>,
3823    /// `Internal` Initiative update health for new updates.
3824    pub initiative_update_health: Option<String>,
3825    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
3826    pub grouping_key: Option<String>,
3827    /// `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`.
3828    pub grouping_priority: Option<f64>,
3829    /// The bot that caused the notification.
3830    pub bot_actor: Option<Box<ActorBot>>,
3831    /// Related initiative ID.
3832    pub initiative_id: Option<String>,
3833    /// Related initiative update ID.
3834    pub initiative_update_id: Option<String>,
3835    /// The initiative related to the notification.
3836    pub initiative: Option<Box<Initiative>>,
3837    /// The document related to the notification.
3838    pub document: Option<Box<Document>>,
3839    /// The initiative update related to the notification.
3840    pub initiative_update: Option<Box<InitiativeUpdate>>,
3841    /// The comment related to the notification.
3842    pub comment: Option<Box<Comment>>,
3843    /// The parent comment related to the notification, if a notification is a reply comment notification.
3844    pub parent_comment: Option<Box<Comment>>,
3845}
3846impl GraphQLFields for InitiativeNotification {
3847    type FullType = Self;
3848    fn selection() -> String {
3849        "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"
3850            .into()
3851    }
3852}
3853/// An initiative notification subscription.
3854#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3855#[serde(rename_all = "camelCase", default)]
3856pub struct InitiativeNotificationSubscription {
3857    /// The unique identifier of the entity.
3858    pub id: Option<String>,
3859    /// The time at which the entity was created.
3860    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3861    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3862    /// been updated after creation.
3863    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3864    /// The time at which the entity was archived. Null if the entity has not been archived.
3865    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3866    /// The user that subscribed to receive notifications.
3867    pub subscriber: Option<Box<User>>,
3868    /// The customer associated with the notification subscription.
3869    pub customer: Option<Box<Customer>>,
3870    /// The contextual custom view associated with the notification subscription.
3871    pub custom_view: Option<Box<CustomView>>,
3872    /// The contextual cycle view associated with the notification subscription.
3873    pub cycle: Option<Box<Cycle>>,
3874    /// The contextual label view associated with the notification subscription.
3875    pub label: Option<Box<IssueLabel>>,
3876    /// The contextual project view associated with the notification subscription.
3877    pub project: Option<Box<Project>>,
3878    /// The initiative subscribed to.
3879    pub initiative: Option<Box<Initiative>>,
3880    /// The team associated with the notification subscription.
3881    pub team: Option<Box<Team>>,
3882    /// The user view associated with the notification subscription.
3883    pub user: Option<Box<User>>,
3884    /// The type of view to which the notification subscription context is associated with.
3885    pub context_view_type: Option<ContextViewType>,
3886    /// The type of user view to which the notification subscription context is associated with.
3887    pub user_context_view_type: Option<UserContextViewType>,
3888    /// Whether the subscription is active or not.
3889    pub active: Option<bool>,
3890    /// The type of subscription.
3891    pub notification_subscription_types: Option<Vec<String>>,
3892}
3893impl GraphQLFields for InitiativeNotificationSubscription {
3894    type FullType = Self;
3895    fn selection() -> String {
3896        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
3897            .into()
3898    }
3899}
3900/// The payload returned by the initiative mutations.
3901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3902#[serde(rename_all = "camelCase", default)]
3903pub struct InitiativePayload {
3904    /// The identifier of the last sync operation.
3905    pub last_sync_id: Option<f64>,
3906    /// The initiative that was created or updated.
3907    pub initiative: Option<Box<Initiative>>,
3908    /// Whether the operation was successful.
3909    pub success: Option<bool>,
3910}
3911impl GraphQLFields for InitiativePayload {
3912    type FullType = Self;
3913    fn selection() -> String {
3914        "lastSyncId success".into()
3915    }
3916}
3917/// A relation representing the dependency between two initiatives.
3918#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3919#[serde(rename_all = "camelCase", default)]
3920pub struct InitiativeRelation {
3921    /// The unique identifier of the entity.
3922    pub id: Option<String>,
3923    /// The time at which the entity was created.
3924    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3925    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3926    /// been updated after creation.
3927    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3928    /// The time at which the entity was archived. Null if the entity has not been archived.
3929    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
3930    /// The parent initiative.
3931    pub initiative: Option<Box<Initiative>>,
3932    /// The child initiative.
3933    pub related_initiative: Option<Box<Initiative>>,
3934    /// The last user who created or modified the relation.
3935    pub user: Option<Box<User>>,
3936    /// The sort order of the relation within the initiative.
3937    pub sort_order: Option<f64>,
3938}
3939impl GraphQLFields for InitiativeRelation {
3940    type FullType = Self;
3941    fn selection() -> String {
3942        "id createdAt updatedAt archivedAt sortOrder".into()
3943    }
3944}
3945#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3946#[serde(rename_all = "camelCase", default)]
3947pub struct InitiativeRelationConnection {
3948    pub edges: Option<Box<Vec<InitiativeRelationEdge>>>,
3949    pub nodes: Option<Box<Vec<InitiativeRelation>>>,
3950    pub page_info: Option<Box<PageInfo>>,
3951}
3952impl GraphQLFields for InitiativeRelationConnection {
3953    type FullType = Self;
3954    fn selection() -> String {
3955        "".into()
3956    }
3957}
3958#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3959#[serde(rename_all = "camelCase", default)]
3960pub struct InitiativeRelationEdge {
3961    pub node: Option<Box<InitiativeRelation>>,
3962    /// Used in `before` and `after` args
3963    pub cursor: Option<String>,
3964}
3965impl GraphQLFields for InitiativeRelationEdge {
3966    type FullType = Self;
3967    fn selection() -> String {
3968        "cursor".into()
3969    }
3970}
3971#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3972#[serde(rename_all = "camelCase", default)]
3973pub struct InitiativeRelationPayload {
3974    /// The identifier of the last sync operation.
3975    pub last_sync_id: Option<f64>,
3976    /// The initiative relation that was created or updated.
3977    pub initiative_relation: Option<Box<InitiativeRelation>>,
3978    /// Whether the operation was successful.
3979    pub success: Option<bool>,
3980}
3981impl GraphQLFields for InitiativeRelationPayload {
3982    type FullType = Self;
3983    fn selection() -> String {
3984        "lastSyncId success".into()
3985    }
3986}
3987/// Join table between projects and initiatives.
3988#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3989#[serde(rename_all = "camelCase", default)]
3990pub struct InitiativeToProject {
3991    /// The unique identifier of the entity.
3992    pub id: Option<String>,
3993    /// The time at which the entity was created.
3994    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3995    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
3996    /// been updated after creation.
3997    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
3998    /// The time at which the entity was archived. Null if the entity has not been archived.
3999    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4000    /// The project that the initiative is associated with.
4001    pub project: Option<Box<Project>>,
4002    /// The initiative that the project is associated with.
4003    pub initiative: Option<Box<Initiative>>,
4004    /// The sort order of the project within the initiative.
4005    pub sort_order: Option<String>,
4006}
4007impl GraphQLFields for InitiativeToProject {
4008    type FullType = Self;
4009    fn selection() -> String {
4010        "id createdAt updatedAt archivedAt sortOrder".into()
4011    }
4012}
4013#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4014#[serde(rename_all = "camelCase", default)]
4015pub struct InitiativeToProjectConnection {
4016    pub edges: Option<Box<Vec<InitiativeToProjectEdge>>>,
4017    pub nodes: Option<Box<Vec<InitiativeToProject>>>,
4018    pub page_info: Option<Box<PageInfo>>,
4019}
4020impl GraphQLFields for InitiativeToProjectConnection {
4021    type FullType = Self;
4022    fn selection() -> String {
4023        "".into()
4024    }
4025}
4026#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4027#[serde(rename_all = "camelCase", default)]
4028pub struct InitiativeToProjectEdge {
4029    pub node: Option<Box<InitiativeToProject>>,
4030    /// Used in `before` and `after` args
4031    pub cursor: Option<String>,
4032}
4033impl GraphQLFields for InitiativeToProjectEdge {
4034    type FullType = Self;
4035    fn selection() -> String {
4036        "cursor".into()
4037    }
4038}
4039/// The result of a initiativeToProject mutation.
4040#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4041#[serde(rename_all = "camelCase", default)]
4042pub struct InitiativeToProjectPayload {
4043    /// The identifier of the last sync operation.
4044    pub last_sync_id: Option<f64>,
4045    /// The initiativeToProject that was created or updated.
4046    pub initiative_to_project: Option<Box<InitiativeToProject>>,
4047    /// Whether the operation was successful.
4048    pub success: Option<bool>,
4049}
4050impl GraphQLFields for InitiativeToProjectPayload {
4051    type FullType = Self;
4052    fn selection() -> String {
4053        "lastSyncId success".into()
4054    }
4055}
4056/// An initiative update.
4057#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4058#[serde(rename_all = "camelCase", default)]
4059pub struct InitiativeUpdate {
4060    /// The unique identifier of the entity.
4061    pub id: Option<String>,
4062    /// The time at which the entity was created.
4063    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4064    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4065    /// been updated after creation.
4066    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4067    /// The time at which the entity was archived. Null if the entity has not been archived.
4068    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4069    /// The update content in markdown format.
4070    pub body: Option<String>,
4071    /// The time the update was edited.
4072    pub edited_at: Option<chrono::DateTime<chrono::Utc>>,
4073    /// Emoji reaction summary, grouped by emoji type.
4074    pub reaction_data: Option<serde_json::Value>,
4075    /// `Internal` The content of the update as a Prosemirror document.
4076    pub body_data: Option<String>,
4077    /// The update's unique URL slug.
4078    pub slug_id: Option<String>,
4079    /// The initiative that the update is associated with.
4080    pub initiative: Option<Box<Initiative>>,
4081    /// The user who wrote the update.
4082    pub user: Option<Box<User>>,
4083    /// The health at the time of the update.
4084    pub health: Option<InitiativeUpdateHealthType>,
4085    /// `Internal` Serialized JSON representing current state of the initiative properties when posting the initiative update.
4086    pub info_snapshot: Option<serde_json::Value>,
4087    /// Whether initiative update diff should be hidden.
4088    pub is_diff_hidden: Option<bool>,
4089    /// The URL to the initiative update.
4090    pub url: Option<String>,
4091    /// Whether the initiative update is stale.
4092    pub is_stale: Option<bool>,
4093    /// The diff between the current update and the previous one.
4094    pub diff: Option<serde_json::Value>,
4095    /// The diff between the current update and the previous one, formatted as markdown.
4096    pub diff_markdown: Option<String>,
4097    /// Reactions associated with the initiative update.
4098    pub reactions: Option<Box<Vec<Reaction>>>,
4099    /// Comments associated with the initiative update.
4100    pub comments: Option<Box<CommentConnection>>,
4101    /// Number of comments associated with the initiative update.
4102    pub comment_count: Option<i64>,
4103}
4104impl GraphQLFields for InitiativeUpdate {
4105    type FullType = Self;
4106    fn selection() -> String {
4107        "id createdAt updatedAt archivedAt body editedAt reactionData bodyData slugId health infoSnapshot isDiffHidden url isStale diff diffMarkdown commentCount"
4108            .into()
4109    }
4110}
4111/// A generic payload return from entity archive mutations.
4112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4113#[serde(rename_all = "camelCase", default)]
4114pub struct InitiativeUpdateArchivePayload {
4115    /// The identifier of the last sync operation.
4116    pub last_sync_id: Option<f64>,
4117    /// Whether the operation was successful.
4118    pub success: Option<bool>,
4119    /// The archived/unarchived entity. Null if entity was deleted.
4120    pub entity: Option<Box<InitiativeUpdate>>,
4121}
4122impl GraphQLFields for InitiativeUpdateArchivePayload {
4123    type FullType = Self;
4124    fn selection() -> String {
4125        "lastSyncId success".into()
4126    }
4127}
4128#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4129#[serde(rename_all = "camelCase", default)]
4130pub struct InitiativeUpdateConnection {
4131    pub edges: Option<Box<Vec<InitiativeUpdateEdge>>>,
4132    pub nodes: Option<Box<Vec<InitiativeUpdate>>>,
4133    pub page_info: Option<Box<PageInfo>>,
4134}
4135impl GraphQLFields for InitiativeUpdateConnection {
4136    type FullType = Self;
4137    fn selection() -> String {
4138        "".into()
4139    }
4140}
4141#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4142#[serde(rename_all = "camelCase", default)]
4143pub struct InitiativeUpdateEdge {
4144    pub node: Option<Box<InitiativeUpdate>>,
4145    /// Used in `before` and `after` args
4146    pub cursor: Option<String>,
4147}
4148impl GraphQLFields for InitiativeUpdateEdge {
4149    type FullType = Self;
4150    fn selection() -> String {
4151        "cursor".into()
4152    }
4153}
4154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4155#[serde(rename_all = "camelCase", default)]
4156pub struct InitiativeUpdatePayload {
4157    /// The identifier of the last sync operation.
4158    pub last_sync_id: Option<f64>,
4159    /// The initiative update that was created.
4160    pub initiative_update: Option<Box<InitiativeUpdate>>,
4161    /// Whether the operation was successful.
4162    pub success: Option<bool>,
4163}
4164impl GraphQLFields for InitiativeUpdatePayload {
4165    type FullType = Self;
4166    fn selection() -> String {
4167        "lastSyncId success".into()
4168    }
4169}
4170#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4171#[serde(rename_all = "camelCase", default)]
4172pub struct InitiativeUpdateReminderPayload {
4173    /// The identifier of the last sync operation.
4174    pub last_sync_id: Option<f64>,
4175    /// Whether the operation was successful.
4176    pub success: Option<bool>,
4177}
4178impl GraphQLFields for InitiativeUpdateReminderPayload {
4179    type FullType = Self;
4180    fn selection() -> String {
4181        "lastSyncId success".into()
4182    }
4183}
4184/// An integration with an external service.
4185#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4186#[serde(rename_all = "camelCase", default)]
4187pub struct Integration {
4188    /// The unique identifier of the entity.
4189    pub id: Option<String>,
4190    /// The time at which the entity was created.
4191    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4192    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4193    /// been updated after creation.
4194    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4195    /// The time at which the entity was archived. Null if the entity has not been archived.
4196    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4197    /// The integration's type.
4198    pub service: Option<String>,
4199    /// The organization that the integration is associated with.
4200    pub organization: Option<Box<Organization>>,
4201    /// The team that the integration is associated with.
4202    pub team: Option<Box<Team>>,
4203    /// The user that added the integration.
4204    pub creator: Option<Box<User>>,
4205}
4206impl GraphQLFields for Integration {
4207    type FullType = Self;
4208    fn selection() -> String {
4209        "id createdAt updatedAt archivedAt service".into()
4210    }
4211}
4212#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4213#[serde(rename_all = "camelCase", default)]
4214pub struct IntegrationConnection {
4215    pub edges: Option<Box<Vec<IntegrationEdge>>>,
4216    pub nodes: Option<Box<Vec<Integration>>>,
4217    pub page_info: Option<Box<PageInfo>>,
4218}
4219impl GraphQLFields for IntegrationConnection {
4220    type FullType = Self;
4221    fn selection() -> String {
4222        "".into()
4223    }
4224}
4225#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4226#[serde(rename_all = "camelCase", default)]
4227pub struct IntegrationEdge {
4228    pub node: Option<Box<Integration>>,
4229    /// Used in `before` and `after` args
4230    pub cursor: Option<String>,
4231}
4232impl GraphQLFields for IntegrationEdge {
4233    type FullType = Self;
4234    fn selection() -> String {
4235        "cursor".into()
4236    }
4237}
4238#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4239#[serde(rename_all = "camelCase", default)]
4240pub struct IntegrationHasScopesPayload {
4241    /// Whether the integration has the required scopes.
4242    pub has_all_scopes: Option<bool>,
4243    /// The missing scopes.
4244    pub missing_scopes: Option<Vec<String>>,
4245}
4246impl GraphQLFields for IntegrationHasScopesPayload {
4247    type FullType = Self;
4248    fn selection() -> String {
4249        "hasAllScopes missingScopes".into()
4250    }
4251}
4252#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4253#[serde(rename_all = "camelCase", default)]
4254pub struct IntegrationPayload {
4255    /// The identifier of the last sync operation.
4256    pub last_sync_id: Option<f64>,
4257    /// The integration that was created or updated.
4258    pub integration: Option<Box<Integration>>,
4259    /// Whether the operation was successful.
4260    pub success: Option<bool>,
4261}
4262impl GraphQLFields for IntegrationPayload {
4263    type FullType = Self;
4264    fn selection() -> String {
4265        "lastSyncId success".into()
4266    }
4267}
4268#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4269#[serde(rename_all = "camelCase", default)]
4270pub struct IntegrationRequestPayload {
4271    /// Whether the operation was successful.
4272    pub success: Option<bool>,
4273}
4274impl GraphQLFields for IntegrationRequestPayload {
4275    type FullType = Self;
4276    fn selection() -> String {
4277        "success".into()
4278    }
4279}
4280#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4281#[serde(rename_all = "camelCase", default)]
4282pub struct IntegrationSlackWorkspaceNamePayload {
4283    /// The current name of the Slack workspace.
4284    pub name: Option<String>,
4285    /// Whether the operation was successful.
4286    pub success: Option<bool>,
4287}
4288impl GraphQLFields for IntegrationSlackWorkspaceNamePayload {
4289    type FullType = Self;
4290    fn selection() -> String {
4291        "name success".into()
4292    }
4293}
4294/// Join table between templates and integrations.
4295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4296#[serde(rename_all = "camelCase", default)]
4297pub struct IntegrationTemplate {
4298    /// The unique identifier of the entity.
4299    pub id: Option<String>,
4300    /// The time at which the entity was created.
4301    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4302    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4303    /// been updated after creation.
4304    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4305    /// The time at which the entity was archived. Null if the entity has not been archived.
4306    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4307    /// The template that the integration is associated with.
4308    pub template: Option<Box<Template>>,
4309    /// The integration that the template is associated with.
4310    pub integration: Option<Box<Integration>>,
4311    /// ID of the foreign entity in the external integration this template is for, e.g., Slack channel ID.
4312    pub foreign_entity_id: Option<String>,
4313}
4314impl GraphQLFields for IntegrationTemplate {
4315    type FullType = Self;
4316    fn selection() -> String {
4317        "id createdAt updatedAt archivedAt foreignEntityId".into()
4318    }
4319}
4320#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4321#[serde(rename_all = "camelCase", default)]
4322pub struct IntegrationTemplateConnection {
4323    pub edges: Option<Box<Vec<IntegrationTemplateEdge>>>,
4324    pub nodes: Option<Box<Vec<IntegrationTemplate>>>,
4325    pub page_info: Option<Box<PageInfo>>,
4326}
4327impl GraphQLFields for IntegrationTemplateConnection {
4328    type FullType = Self;
4329    fn selection() -> String {
4330        "".into()
4331    }
4332}
4333#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4334#[serde(rename_all = "camelCase", default)]
4335pub struct IntegrationTemplateEdge {
4336    pub node: Option<Box<IntegrationTemplate>>,
4337    /// Used in `before` and `after` args
4338    pub cursor: Option<String>,
4339}
4340impl GraphQLFields for IntegrationTemplateEdge {
4341    type FullType = Self;
4342    fn selection() -> String {
4343        "cursor".into()
4344    }
4345}
4346#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4347#[serde(rename_all = "camelCase", default)]
4348pub struct IntegrationTemplatePayload {
4349    /// The identifier of the last sync operation.
4350    pub last_sync_id: Option<f64>,
4351    /// The IntegrationTemplate that was created or updated.
4352    pub integration_template: Option<Box<IntegrationTemplate>>,
4353    /// Whether the operation was successful.
4354    pub success: Option<bool>,
4355}
4356impl GraphQLFields for IntegrationTemplatePayload {
4357    type FullType = Self;
4358    fn selection() -> String {
4359        "lastSyncId success".into()
4360    }
4361}
4362/// The configuration of all integrations for different entities.
4363#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4364#[serde(rename_all = "camelCase", default)]
4365pub struct IntegrationsSettings {
4366    /// The unique identifier of the entity.
4367    pub id: Option<String>,
4368    /// The time at which the entity was created.
4369    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4370    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4371    /// been updated after creation.
4372    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4373    /// The time at which the entity was archived. Null if the entity has not been archived.
4374    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4375    /// The type of view to which the integration settings context is associated with.
4376    pub context_view_type: Option<ContextViewType>,
4377    /// Whether to send a Slack message when a new issue is created for the project or the team.
4378    pub slack_issue_created: Option<bool>,
4379    /// Whether to send a Slack message when a comment is created on any of the project or team's issues.
4380    pub slack_issue_new_comment: Option<bool>,
4381    /// Whether to send a Slack message when any of the project or team's issues change to completed or cancelled.
4382    pub slack_issue_status_changed_done: Option<bool>,
4383    /// Whether to send a Slack message when an issue is added to the custom view.
4384    pub slack_issue_added_to_view: Option<bool>,
4385    /// Whether to send a Slack message when any of the project or team's issues has a change in status.
4386    pub slack_issue_status_changed_all: Option<bool>,
4387    /// Whether to send a Slack message when a project update is created.
4388    pub slack_project_update_created: Option<bool>,
4389    /// Whether to send a new project update to team Slack channels.
4390    pub slack_project_update_created_to_team: Option<bool>,
4391    /// Whether to send a new project update to workspace Slack channel.
4392    pub slack_project_update_created_to_workspace: Option<bool>,
4393    /// Whether to send a Slack message when a initiate update is created.
4394    pub slack_initiative_update_created: Option<bool>,
4395    /// Whether to send a Slack message when a new issue is added to triage.
4396    pub slack_issue_added_to_triage: Option<bool>,
4397    /// Whether to send a Slack message when an SLA is at high risk.
4398    pub slack_issue_sla_high_risk: Option<bool>,
4399    /// Whether to send a Slack message when an SLA is breached.
4400    pub slack_issue_sla_breached: Option<bool>,
4401    /// Team which those settings apply to.
4402    pub team: Option<Box<Team>>,
4403    /// Project which those settings apply to.
4404    pub project: Option<Box<Project>>,
4405    /// Initiative which those settings apply to.
4406    pub initiative: Option<Box<Initiative>>,
4407}
4408impl GraphQLFields for IntegrationsSettings {
4409    type FullType = Self;
4410    fn selection() -> String {
4411        "id createdAt updatedAt archivedAt contextViewType slackIssueCreated slackIssueNewComment slackIssueStatusChangedDone slackIssueAddedToView slackIssueStatusChangedAll slackProjectUpdateCreated slackProjectUpdateCreatedToTeam slackProjectUpdateCreatedToWorkspace slackInitiativeUpdateCreated slackIssueAddedToTriage slackIssueSlaHighRisk slackIssueSlaBreached"
4412            .into()
4413    }
4414}
4415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4416#[serde(rename_all = "camelCase", default)]
4417pub struct IntegrationsSettingsPayload {
4418    /// The identifier of the last sync operation.
4419    pub last_sync_id: Option<f64>,
4420    /// The settings that were created or updated.
4421    pub integrations_settings: Option<Box<IntegrationsSettings>>,
4422    /// Whether the operation was successful.
4423    pub success: Option<bool>,
4424}
4425impl GraphQLFields for IntegrationsSettingsPayload {
4426    type FullType = Self;
4427    fn selection() -> String {
4428        "lastSyncId success".into()
4429    }
4430}
4431/// An issue.
4432#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4433#[serde(rename_all = "camelCase", default)]
4434pub struct Issue {
4435    /// The unique identifier of the entity.
4436    pub id: Option<String>,
4437    /// The time at which the entity was created.
4438    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4439    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4440    /// been updated after creation.
4441    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4442    /// The time at which the entity was archived. Null if the entity has not been archived.
4443    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4444    /// The issue's unique number.
4445    pub number: Option<f64>,
4446    /// The issue's title.
4447    pub title: Option<String>,
4448    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
4449    pub priority: Option<f64>,
4450    /// The estimate of the complexity of the issue..
4451    pub estimate: Option<f64>,
4452    /// The order of the item in its column on the board.
4453    pub board_order: Option<f64>,
4454    /// The order of the item in relation to other items in the organization.
4455    pub sort_order: Option<f64>,
4456    /// The order of the item in relation to other items in the organization, when ordered by priority.
4457    pub priority_sort_order: Option<f64>,
4458    /// The time at which the issue was moved into started state.
4459    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
4460    /// The time at which the issue was moved into completed state.
4461    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
4462    /// The time at which the issue entered triage.
4463    pub started_triage_at: Option<chrono::DateTime<chrono::Utc>>,
4464    /// The time at which the issue left triage.
4465    pub triaged_at: Option<chrono::DateTime<chrono::Utc>>,
4466    /// The time at which the issue was moved into canceled state.
4467    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
4468    /// The time at which the issue was automatically closed by the auto pruning process.
4469    pub auto_closed_at: Option<chrono::DateTime<chrono::Utc>>,
4470    /// The time at which the issue was automatically archived by the auto pruning process.
4471    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
4472    /// The date at which the issue is due.
4473    pub due_date: Option<chrono::NaiveDate>,
4474    /// The time at which the issue's SLA began.
4475    pub sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
4476    /// The time at which the issue's SLA will enter medium risk state.
4477    pub sla_medium_risk_at: Option<chrono::DateTime<chrono::Utc>>,
4478    /// The time at which the issue's SLA will enter high risk state.
4479    pub sla_high_risk_at: Option<chrono::DateTime<chrono::Utc>>,
4480    /// The time at which the issue's SLA will breach.
4481    pub sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
4482    /// The type of SLA set on the issue. Calendar days or business days.
4483    pub sla_type: Option<String>,
4484    /// The time at which the issue was added to a project.
4485    pub added_to_project_at: Option<chrono::DateTime<chrono::Utc>>,
4486    /// The time at which the issue was added to a cycle.
4487    pub added_to_cycle_at: Option<chrono::DateTime<chrono::Utc>>,
4488    /// The time at which the issue was added to a team.
4489    pub added_to_team_at: Option<chrono::DateTime<chrono::Utc>>,
4490    /// A flag that indicates whether the issue is in the trash bin.
4491    pub trashed: Option<bool>,
4492    /// The time until an issue will be snoozed in Triage view.
4493    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
4494    /// `Internal` The time at which the most recent suggestions for this issue were generated.
4495    pub suggestions_generated_at: Option<chrono::DateTime<chrono::Utc>>,
4496    /// `Internal` The activity summary information for this issue.
4497    pub activity_summary: Option<serde_json::Value>,
4498    /// `Internal` AI-generated activity summary for this issue.
4499    pub summary: Option<Box<Summary>>,
4500    /// Id of the labels associated with this issue.
4501    pub label_ids: Option<Vec<String>>,
4502    /// The team that the issue is associated with.
4503    pub team: Option<Box<Team>>,
4504    /// The cycle that the issue is associated with.
4505    pub cycle: Option<Box<Cycle>>,
4506    /// The project that the issue is associated with.
4507    pub project: Option<Box<Project>>,
4508    /// The projectMilestone that the issue is associated with.
4509    pub project_milestone: Option<Box<ProjectMilestone>>,
4510    /// The last template that was applied to this issue.
4511    pub last_applied_template: Option<Box<Template>>,
4512    /// The recurring issue template that created this issue.
4513    pub recurring_issue_template: Option<Box<Template>>,
4514    /// Previous identifiers of the issue if it has been moved between teams.
4515    pub previous_identifiers: Option<Vec<String>>,
4516    /// The user who created the issue.
4517    pub creator: Option<Box<User>>,
4518    /// The external user who created the issue.
4519    pub external_user_creator: Option<Box<ExternalUser>>,
4520    /// The user to whom the issue is assigned to.
4521    pub assignee: Option<Box<User>>,
4522    /// The agent user that is delegated to work on this issue.
4523    pub delegate: Option<Box<User>>,
4524    /// The user who snoozed the issue.
4525    pub snoozed_by: Option<Box<User>>,
4526    /// The workflow state that the issue is associated with.
4527    pub state: Option<Box<WorkflowState>>,
4528    /// The order of the item in the sub-issue list. Only set if the issue has a parent.
4529    pub sub_issue_sort_order: Option<f64>,
4530    /// Emoji reaction summary, grouped by emoji type.
4531    pub reaction_data: Option<serde_json::Value>,
4532    /// Label for the priority.
4533    pub priority_label: Option<String>,
4534    /// The comment that this issue was created from.
4535    pub source_comment: Option<Box<Comment>>,
4536    /// Integration type that created this issue, if applicable.
4537    pub integration_source_type: Option<IntegrationService>,
4538    /// Documents associated with the issue.
4539    pub documents: Option<Box<DocumentConnection>>,
4540    /// The bot that created the issue, if applicable.
4541    pub bot_actor: Option<Box<ActorBot>>,
4542    /// The users favorite associated with this issue.
4543    pub favorite: Option<Box<Favorite>>,
4544    /// Issue's human readable identifier (e.g. ENG-123).
4545    pub identifier: Option<String>,
4546    /// Issue URL.
4547    pub url: Option<String>,
4548    /// Suggested branch name for the issue.
4549    pub branch_name: Option<String>,
4550    /// Shared access metadata for this issue.
4551    pub shared_access: Option<Box<IssueSharedAccess>>,
4552    /// Returns the number of Attachment resources which are created by customer support ticketing systems (e.g. Zendesk).
4553    pub customer_ticket_count: Option<i64>,
4554    /// Users who are subscribed to the issue.
4555    pub subscribers: Option<Box<UserConnection>>,
4556    /// The parent of the issue.
4557    pub parent: Option<Box<Issue>>,
4558    /// Children of the issue.
4559    pub children: Option<Box<IssueConnection>>,
4560    /// Comments associated with the issue.
4561    pub comments: Option<Box<CommentConnection>>,
4562    /// History entries associated with the issue.
4563    pub history: Option<Box<IssueHistoryConnection>>,
4564    /// Labels associated with this issue.
4565    pub labels: Option<Box<IssueLabelConnection>>,
4566    /// Relations associated with this issue.
4567    pub relations: Option<Box<IssueRelationConnection>>,
4568    /// Inverse relations associated with this issue.
4569    pub inverse_relations: Option<Box<IssueRelationConnection>>,
4570    /// Attachments associated with the issue.
4571    pub attachments: Option<Box<AttachmentConnection>>,
4572    /// Attachments previously associated with the issue before being moved to another issue.
4573    pub former_attachments: Option<Box<AttachmentConnection>>,
4574    /// The issue's description in markdown format.
4575    pub description: Option<String>,
4576    /// `Internal` The issue's description content as YJS state.
4577    pub description_state: Option<String>,
4578    /// `ALPHA` The document content representing this issue description.
4579    pub document_content: Option<Box<DocumentContent>>,
4580    /// Reactions associated with the issue.
4581    pub reactions: Option<Box<Vec<Reaction>>>,
4582    /// Customer needs associated with the issue.
4583    pub needs: Option<Box<CustomerNeedConnection>>,
4584    /// Customer needs previously associated with the issue before being moved to another issue.
4585    pub former_needs: Option<Box<CustomerNeedConnection>>,
4586    /// The external services the issue is synced with.
4587    pub synced_with: Option<Box<Vec<ExternalEntityInfo>>>,
4588    /// `Internal` Product Intelligence suggestions for the issue.
4589    pub suggestions: Option<Box<IssueSuggestionConnection>>,
4590    /// `Internal` Incoming product intelligence relation suggestions for the issue.
4591    pub incoming_suggestions: Option<Box<IssueSuggestionConnection>>,
4592    /// The internal user who requested creation of the Asks issue on behalf of the creator.
4593    pub asks_requester: Option<Box<User>>,
4594    /// The external user who requested creation of the Asks issue on behalf of the creator.
4595    pub asks_external_user_requester: Option<Box<ExternalUser>>,
4596    /// The issue's workflow states over time.
4597    pub state_history: Option<Box<IssueStateSpanConnection>>,
4598}
4599impl GraphQLFields for Issue {
4600    type FullType = Self;
4601    fn selection() -> String {
4602        "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"
4603            .into()
4604    }
4605}
4606/// A generic payload return from entity archive mutations.
4607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4608#[serde(rename_all = "camelCase", default)]
4609pub struct IssueArchivePayload {
4610    /// The identifier of the last sync operation.
4611    pub last_sync_id: Option<f64>,
4612    /// Whether the operation was successful.
4613    pub success: Option<bool>,
4614    /// The archived/unarchived entity. Null if entity was deleted.
4615    pub entity: Option<Box<Issue>>,
4616}
4617impl GraphQLFields for IssueArchivePayload {
4618    type FullType = Self;
4619    fn selection() -> String {
4620        "lastSyncId success".into()
4621    }
4622}
4623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4624#[serde(rename_all = "camelCase", default)]
4625pub struct IssueBatchPayload {
4626    /// The identifier of the last sync operation.
4627    pub last_sync_id: Option<f64>,
4628    /// The issues that were updated.
4629    pub issues: Option<Box<Vec<Issue>>>,
4630    /// Whether the operation was successful.
4631    pub success: Option<bool>,
4632}
4633impl GraphQLFields for IssueBatchPayload {
4634    type FullType = Self;
4635    fn selection() -> String {
4636        "lastSyncId success".into()
4637    }
4638}
4639#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4640#[serde(rename_all = "camelCase", default)]
4641pub struct IssueConnection {
4642    pub edges: Option<Box<Vec<IssueEdge>>>,
4643    pub nodes: Option<Box<Vec<Issue>>>,
4644    pub page_info: Option<Box<PageInfo>>,
4645}
4646impl GraphQLFields for IssueConnection {
4647    type FullType = Self;
4648    fn selection() -> String {
4649        "".into()
4650    }
4651}
4652/// `Internal` A draft issue.
4653#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4654#[serde(rename_all = "camelCase", default)]
4655pub struct IssueDraft {
4656    /// The unique identifier of the entity.
4657    pub id: Option<String>,
4658    /// The time at which the entity was created.
4659    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4660    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4661    /// been updated after creation.
4662    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4663    /// The time at which the entity was archived. Null if the entity has not been archived.
4664    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4665    /// The draft's title.
4666    pub title: Option<String>,
4667    /// The draft's description in markdown format.
4668    pub description: Option<String>,
4669    /// The priority of the draft.
4670    pub priority: Option<f64>,
4671    /// The estimate of the complexity of the draft.
4672    pub estimate: Option<f64>,
4673    /// The date at which the issue would be due.
4674    pub due_date: Option<chrono::NaiveDate>,
4675    /// The IDs of labels added to the draft.
4676    pub label_ids: Option<Vec<String>>,
4677    /// The team associated with the draft.
4678    pub team_id: Option<String>,
4679    /// The cycle associated with the draft.
4680    pub cycle_id: Option<String>,
4681    /// The project associated with the draft.
4682    pub project_id: Option<String>,
4683    /// The project milestone associated with the draft.
4684    pub project_milestone_id: Option<String>,
4685    /// The user who created the draft.
4686    pub creator: Option<Box<User>>,
4687    /// The user assigned to the draft.
4688    pub assignee_id: Option<String>,
4689    /// The agent user delegated to work on the issue being drafted.
4690    pub delegate_id: Option<String>,
4691    /// The workflow state associated with the draft.
4692    pub state_id: Option<String>,
4693    /// The parent draft of the draft.
4694    pub parent: Option<Box<IssueDraft>>,
4695    /// The ID of the parent issue draft, if any.
4696    pub parent_id: Option<String>,
4697    /// The ID of the comment that the draft was created from.
4698    pub source_comment_id: Option<String>,
4699    /// The parent issue of the draft.
4700    pub parent_issue: Option<Box<Issue>>,
4701    /// The ID of the parent issue, if any.
4702    pub parent_issue_id: Option<String>,
4703    /// The order of items in the sub-draft list. Only set if the draft has `parent` set.
4704    pub sub_issue_sort_order: Option<f64>,
4705    /// Label for the priority.
4706    pub priority_label: Option<String>,
4707    /// `Internal` The draft's description as a Prosemirror document.
4708    pub description_data: Option<serde_json::Value>,
4709    /// Serialized array of JSONs representing attachments.
4710    pub attachments: Option<serde_json::Value>,
4711    /// Serialized array of JSONs representing customer needs.
4712    pub needs: Option<serde_json::Value>,
4713    /// Serialized array of JSONs representing the recurring issue's schedule.
4714    pub schedule: Option<serde_json::Value>,
4715    pub labels: Option<Box<IssueLabelConnection>>,
4716}
4717impl GraphQLFields for IssueDraft {
4718    type FullType = Self;
4719    fn selection() -> String {
4720        "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"
4721            .into()
4722    }
4723}
4724#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4725#[serde(rename_all = "camelCase", default)]
4726pub struct IssueDraftConnection {
4727    pub edges: Option<Box<Vec<IssueDraftEdge>>>,
4728    pub nodes: Option<Box<Vec<IssueDraft>>>,
4729    pub page_info: Option<Box<PageInfo>>,
4730}
4731impl GraphQLFields for IssueDraftConnection {
4732    type FullType = Self;
4733    fn selection() -> String {
4734        "".into()
4735    }
4736}
4737#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4738#[serde(rename_all = "camelCase", default)]
4739pub struct IssueDraftEdge {
4740    pub node: Option<Box<IssueDraft>>,
4741    /// Used in `before` and `after` args
4742    pub cursor: Option<String>,
4743}
4744impl GraphQLFields for IssueDraftEdge {
4745    type FullType = Self;
4746    fn selection() -> String {
4747        "cursor".into()
4748    }
4749}
4750#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4751#[serde(rename_all = "camelCase", default)]
4752pub struct IssueEdge {
4753    pub node: Option<Box<Issue>>,
4754    /// Used in `before` and `after` args
4755    pub cursor: Option<String>,
4756}
4757impl GraphQLFields for IssueEdge {
4758    type FullType = Self;
4759    fn selection() -> String {
4760        "cursor".into()
4761    }
4762}
4763#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4764#[serde(rename_all = "camelCase", default)]
4765pub struct IssueFilterSuggestionPayload {
4766    /// The json filter that is suggested.
4767    pub filter: Option<serde_json::Value>,
4768    /// The log id of the prompt, that created this filter.
4769    pub log_id: Option<String>,
4770}
4771impl GraphQLFields for IssueFilterSuggestionPayload {
4772    type FullType = Self;
4773    fn selection() -> String {
4774        "filter logId".into()
4775    }
4776}
4777/// A record of changes to an issue.
4778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4779#[serde(rename_all = "camelCase", default)]
4780pub struct IssueHistory {
4781    /// The unique identifier of the entity.
4782    pub id: Option<String>,
4783    /// The time at which the entity was created.
4784    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4785    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
4786    /// been updated after creation.
4787    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4788    /// The time at which the entity was archived. Null if the entity has not been archived.
4789    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
4790    /// The issue that was changed.
4791    pub issue: Option<Box<Issue>>,
4792    /// The id of user who made these changes. If null, possibly means that the change made by an integration.
4793    pub actor_id: Option<String>,
4794    /// Whether the issue's description was updated.
4795    pub updated_description: Option<bool>,
4796    /// What the title was changed from.
4797    pub from_title: Option<String>,
4798    /// What the title was changed to.
4799    pub to_title: Option<String>,
4800    /// The id of user from whom the issue was re-assigned from.
4801    pub from_assignee_id: Option<String>,
4802    /// The id of user to whom the issue was assigned to.
4803    pub to_assignee_id: Option<String>,
4804    /// What the priority was changed from.
4805    pub from_priority: Option<f64>,
4806    /// What the priority was changed to.
4807    pub to_priority: Option<f64>,
4808    /// The id of team from which the issue was moved from.
4809    pub from_team_id: Option<String>,
4810    /// The id of team to which the issue was moved to.
4811    pub to_team_id: Option<String>,
4812    /// The id of previous parent of the issue.
4813    pub from_parent_id: Option<String>,
4814    /// The id of new parent of the issue.
4815    pub to_parent_id: Option<String>,
4816    /// The id of previous workflow state of the issue.
4817    pub from_state_id: Option<String>,
4818    /// The id of new workflow state of the issue.
4819    pub to_state_id: Option<String>,
4820    /// The id of previous cycle of the issue.
4821    pub from_cycle_id: Option<String>,
4822    /// The id of new cycle of the issue.
4823    pub to_cycle_id: Option<String>,
4824    /// The id of new project created from the issue.
4825    pub to_converted_project_id: Option<String>,
4826    /// The id of previous project of the issue.
4827    pub from_project_id: Option<String>,
4828    /// The id of new project of the issue.
4829    pub to_project_id: Option<String>,
4830    /// What the estimate was changed from.
4831    pub from_estimate: Option<f64>,
4832    /// What the estimate was changed to.
4833    pub to_estimate: Option<f64>,
4834    /// Whether the issue is archived at the time of this history entry.
4835    pub archived: Option<bool>,
4836    /// Whether the issue was trashed or un-trashed.
4837    pub trashed: Option<bool>,
4838    /// The id of linked attachment.
4839    pub attachment_id: Option<String>,
4840    /// ID's of labels that were added.
4841    pub added_label_ids: Option<Vec<String>>,
4842    /// ID's of labels that were removed.
4843    pub removed_label_ids: Option<Vec<String>>,
4844    /// `ALPHA` ID's of releases that the issue was added to.
4845    pub added_to_release_ids: Option<Vec<String>>,
4846    /// `ALPHA` ID's of releases that the issue was removed from.
4847    pub removed_from_release_ids: Option<Vec<String>>,
4848    /// Changed issue relationships.
4849    pub relation_changes: Option<Box<Vec<IssueRelationHistoryPayload>>>,
4850    /// Whether the issue was auto-closed.
4851    pub auto_closed: Option<bool>,
4852    /// Whether the issue was auto-archived.
4853    pub auto_archived: Option<bool>,
4854    /// What the due date was changed from.
4855    pub from_due_date: Option<chrono::NaiveDate>,
4856    /// What the due date was changed to.
4857    pub to_due_date: Option<chrono::NaiveDate>,
4858    /// The id of linked customer need.
4859    pub customer_need_id: Option<String>,
4860    /// `Internal` Serialized JSON representing changes for certain non-relational properties.
4861    pub changes: Option<serde_json::Value>,
4862    /// The actor that performed the actions. This field may be empty in the case of integrations or automations.
4863    pub actor: Option<Box<User>>,
4864    /// The actors that performed the actions. This field may be empty in the case of integrations or automations.
4865    pub actors: Option<Box<Vec<User>>>,
4866    /// The actors that edited the description of the issue, if any.
4867    pub description_updated_by: Option<Box<Vec<User>>>,
4868    /// The user that was unassigned from the issue.
4869    pub from_assignee: Option<Box<User>>,
4870    /// The user that was assigned to the issue.
4871    pub to_assignee: Option<Box<User>>,
4872    /// The cycle that the issue was moved from.
4873    pub from_cycle: Option<Box<Cycle>>,
4874    /// The cycle that the issue was moved to.
4875    pub to_cycle: Option<Box<Cycle>>,
4876    /// The new project created from the issue.
4877    pub to_converted_project: Option<Box<Project>>,
4878    /// The app user from whom the issue delegation was transferred.
4879    pub from_delegate: Option<Box<User>>,
4880    /// The app user to whom the issue delegation was transferred.
4881    pub to_delegate: Option<Box<User>>,
4882    /// The project that the issue was moved from.
4883    pub from_project: Option<Box<Project>>,
4884    /// The project that the issue was moved to.
4885    pub to_project: Option<Box<Project>>,
4886    /// The state that the issue was moved from.
4887    pub from_state: Option<Box<WorkflowState>>,
4888    /// The state that the issue was moved to.
4889    pub to_state: Option<Box<WorkflowState>>,
4890    /// The team that the issue was moved from.
4891    pub from_team: Option<Box<Team>>,
4892    /// The team that the issue was moved to.
4893    pub to_team: Option<Box<Team>>,
4894    /// The parent issue that the issue was moved from.
4895    pub from_parent: Option<Box<Issue>>,
4896    /// The parent issue that the issue was moved to.
4897    pub to_parent: Option<Box<Issue>>,
4898    /// The linked attachment.
4899    pub attachment: Option<Box<Attachment>>,
4900    /// The import record.
4901    pub issue_import: Option<Box<IssueImport>>,
4902    /// The users that were notified of the issue.
4903    pub triage_responsibility_notified_users: Option<Box<Vec<User>>>,
4904    /// Boolean indicating if the issue was auto-assigned using the triage responsibility feature.
4905    pub triage_responsibility_auto_assigned: Option<bool>,
4906    /// The team that triggered the triage responsibility action.
4907    pub triage_responsibility_team: Option<Box<Team>>,
4908    /// The project milestone that the issue was moved from.
4909    pub from_project_milestone: Option<Box<ProjectMilestone>>,
4910    /// The project milestone that the issue was moved to.
4911    pub to_project_milestone: Option<Box<ProjectMilestone>>,
4912    /// The time at which the issue's SLA was previously started.
4913    pub from_sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
4914    /// The time at which the issue's SLA is now started.
4915    pub to_sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
4916    /// The SLA breach time that was previously set on the issue.
4917    pub from_sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
4918    /// The SLA breach time that is now set on the issue.
4919    pub to_sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
4920    /// Whether the issue had previously breached its SLA.
4921    pub from_sla_breached: Option<bool>,
4922    /// Whether the issue has now breached its SLA.
4923    pub to_sla_breached: Option<bool>,
4924    /// The type of SLA that was previously set on the issue.
4925    pub from_sla_type: Option<String>,
4926    /// The type of SLA that is now set on the issue.
4927    pub to_sla_type: Option<String>,
4928    /// The bot that performed the action.
4929    pub bot_actor: Option<Box<ActorBot>>,
4930    /// The labels that were added to the issue.
4931    pub added_labels: Option<Box<Vec<IssueLabel>>>,
4932    /// The labels that were removed from the issue.
4933    pub removed_labels: Option<Box<Vec<IssueLabel>>>,
4934    /// The releases that the issue was added to.
4935    pub added_to_releases: Option<Box<Vec<Release>>>,
4936    /// The releases that the issue was removed from.
4937    pub removed_from_releases: Option<Box<Vec<Release>>>,
4938    /// `INTERNAL` Metadata about the triage rule that made changes to the issue.
4939    pub triage_rule_metadata: Option<Box<IssueHistoryTriageRuleMetadata>>,
4940}
4941impl GraphQLFields for IssueHistory {
4942    type FullType = Self;
4943    fn selection() -> String {
4944        "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"
4945            .into()
4946    }
4947}
4948#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4949#[serde(rename_all = "camelCase", default)]
4950pub struct IssueHistoryConnection {
4951    pub edges: Option<Box<Vec<IssueHistoryEdge>>>,
4952    pub nodes: Option<Box<Vec<IssueHistory>>>,
4953    pub page_info: Option<Box<PageInfo>>,
4954}
4955impl GraphQLFields for IssueHistoryConnection {
4956    type FullType = Self;
4957    fn selection() -> String {
4958        "".into()
4959    }
4960}
4961#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4962#[serde(rename_all = "camelCase", default)]
4963pub struct IssueHistoryEdge {
4964    pub node: Option<Box<IssueHistory>>,
4965    /// Used in `before` and `after` args
4966    pub cursor: Option<String>,
4967}
4968impl GraphQLFields for IssueHistoryEdge {
4969    type FullType = Self;
4970    fn selection() -> String {
4971        "cursor".into()
4972    }
4973}
4974/// An error that occurred during triage rule execution.
4975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4976#[serde(rename_all = "camelCase", default)]
4977pub struct IssueHistoryTriageRuleError {
4978    /// The type of error that occurred.
4979    pub r#type: Option<TriageRuleErrorType>,
4980    /// The property that caused the error.
4981    pub property: Option<String>,
4982    /// Whether the conflict was for the same child label.
4983    pub conflict_for_same_child_label: Option<bool>,
4984    /// The team the issue was being moved from.
4985    pub from_team: Option<Box<Team>>,
4986    /// The team the issue was being moved to.
4987    pub to_team: Option<Box<Team>>,
4988    /// The conflicting labels.
4989    pub conflicting_labels: Option<Box<Vec<IssueLabel>>>,
4990}
4991impl GraphQLFields for IssueHistoryTriageRuleError {
4992    type FullType = Self;
4993    fn selection() -> String {
4994        "type property conflictForSameChildLabel".into()
4995    }
4996}
4997/// Metadata about a triage rule that made changes to an issue.
4998#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4999#[serde(rename_all = "camelCase", default)]
5000pub struct IssueHistoryTriageRuleMetadata {
5001    /// The error that occurred, if any.
5002    pub triage_rule_error: Option<Box<IssueHistoryTriageRuleError>>,
5003    /// The triage rule that triggered the issue update.
5004    pub updated_by_triage_rule: Option<Box<WorkflowDefinition>>,
5005}
5006impl GraphQLFields for IssueHistoryTriageRuleMetadata {
5007    type FullType = Self;
5008    fn selection() -> String {
5009        "".into()
5010    }
5011}
5012/// An import job for data from an external service.
5013#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5014#[serde(rename_all = "camelCase", default)]
5015pub struct IssueImport {
5016    /// The unique identifier of the entity.
5017    pub id: Option<String>,
5018    /// The time at which the entity was created.
5019    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5020    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5021    /// been updated after creation.
5022    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5023    /// The time at which the entity was archived. Null if the entity has not been archived.
5024    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5025    /// New team's name in cases when teamId not set.
5026    pub team_name: Option<String>,
5027    /// The id for the user that started the job.
5028    pub creator_id: Option<String>,
5029    /// The service from which data will be imported.
5030    pub service: Option<String>,
5031    /// The status for the import job.
5032    pub status: Option<String>,
5033    /// The data mapping configuration for the import job.
5034    pub mapping: Option<serde_json::Value>,
5035    /// User readable error message, if one has occurred during the import.
5036    pub error: Option<String>,
5037    /// Current step progress in % (0-100).
5038    pub progress: Option<f64>,
5039    /// File URL for the uploaded CSV for the import, if there is one.
5040    pub csv_file_url: Option<String>,
5041    /// Error code and metadata, if one has occurred during the import.
5042    pub error_metadata: Option<serde_json::Value>,
5043    /// Metadata related to import service.
5044    pub service_metadata: Option<serde_json::Value>,
5045    /// The display name of the import service.
5046    pub display_name: Option<String>,
5047}
5048impl GraphQLFields for IssueImport {
5049    type FullType = Self;
5050    fn selection() -> String {
5051        "id createdAt updatedAt archivedAt teamName creatorId service status mapping error progress csvFileUrl errorMetadata serviceMetadata displayName"
5052            .into()
5053    }
5054}
5055#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5056#[serde(rename_all = "camelCase", default)]
5057pub struct IssueImportCheckPayload {
5058    /// Whether the operation was successful.
5059    pub success: Option<bool>,
5060}
5061impl GraphQLFields for IssueImportCheckPayload {
5062    type FullType = Self;
5063    fn selection() -> String {
5064        "success".into()
5065    }
5066}
5067#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5068#[serde(rename_all = "camelCase", default)]
5069pub struct IssueImportDeletePayload {
5070    /// The identifier of the last sync operation.
5071    pub last_sync_id: Option<f64>,
5072    /// The import job that was deleted.
5073    pub issue_import: Option<Box<IssueImport>>,
5074    /// Whether the operation was successful.
5075    pub success: Option<bool>,
5076}
5077impl GraphQLFields for IssueImportDeletePayload {
5078    type FullType = Self;
5079    fn selection() -> String {
5080        "lastSyncId success".into()
5081    }
5082}
5083/// Whether a custom JQL query is valid or not
5084#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5085#[serde(rename_all = "camelCase", default)]
5086pub struct IssueImportJqlCheckPayload {
5087    /// Returns true if the JQL query has been validated successfully, false otherwise
5088    pub success: Option<bool>,
5089    /// Returns an approximate number of issues matching the JQL query, if available
5090    pub count: Option<f64>,
5091    /// An error message returned by Jira when validating the JQL query.
5092    pub error: Option<String>,
5093}
5094impl GraphQLFields for IssueImportJqlCheckPayload {
5095    type FullType = Self;
5096    fn selection() -> String {
5097        "success count error".into()
5098    }
5099}
5100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5101#[serde(rename_all = "camelCase", default)]
5102pub struct IssueImportPayload {
5103    /// The identifier of the last sync operation.
5104    pub last_sync_id: Option<f64>,
5105    /// The import job that was created or updated.
5106    pub issue_import: Option<Box<IssueImport>>,
5107    /// Whether the operation was successful.
5108    pub success: Option<bool>,
5109}
5110impl GraphQLFields for IssueImportPayload {
5111    type FullType = Self;
5112    fn selection() -> String {
5113        "lastSyncId success".into()
5114    }
5115}
5116/// Whether an issue import can be synced at the end of an import or not
5117#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5118#[serde(rename_all = "camelCase", default)]
5119pub struct IssueImportSyncCheckPayload {
5120    /// Returns true if the import can be synced, false otherwise
5121    pub can_sync: Option<bool>,
5122    /// An error message with a root cause of why the import cannot be synced
5123    pub error: Option<String>,
5124}
5125impl GraphQLFields for IssueImportSyncCheckPayload {
5126    type FullType = Self;
5127    fn selection() -> String {
5128        "canSync error".into()
5129    }
5130}
5131/// Labels that can be associated with issues.
5132#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5133#[serde(rename_all = "camelCase", default)]
5134pub struct IssueLabel {
5135    /// The unique identifier of the entity.
5136    pub id: Option<String>,
5137    /// The time at which the entity was created.
5138    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5139    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5140    /// been updated after creation.
5141    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5142    /// The time at which the entity was archived. Null if the entity has not been archived.
5143    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5144    /// The label's name.
5145    pub name: Option<String>,
5146    /// The label's description.
5147    pub description: Option<String>,
5148    /// The label's color as a HEX string.
5149    pub color: Option<String>,
5150    /// Whether the label is a group.
5151    pub is_group: Option<bool>,
5152    /// The date when the label was last applied to an issue or project.
5153    pub last_applied_at: Option<chrono::DateTime<chrono::Utc>>,
5154    /// `Internal` When the label was retired.
5155    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
5156    pub organization: Option<Box<Organization>>,
5157    /// The team that the label is associated with. If null, the label is associated with the global workspace.
5158    pub team: Option<Box<Team>>,
5159    /// The user who created the label.
5160    pub creator: Option<Box<User>>,
5161    /// The user who retired the label.
5162    pub retired_by: Option<Box<User>>,
5163    /// The parent label.
5164    pub parent: Option<Box<IssueLabel>>,
5165    /// The original label inherited from.
5166    pub inherited_from: Option<Box<IssueLabel>>,
5167    /// Issues associated with the label.
5168    pub issues: Option<Box<IssueConnection>>,
5169    /// Children of the label.
5170    pub children: Option<Box<IssueLabelConnection>>,
5171}
5172impl GraphQLFields for IssueLabel {
5173    type FullType = Self;
5174    fn selection() -> String {
5175        "id createdAt updatedAt archivedAt name description color isGroup lastAppliedAt retiredAt"
5176            .into()
5177    }
5178}
5179#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5180#[serde(rename_all = "camelCase", default)]
5181pub struct IssueLabelConnection {
5182    pub edges: Option<Box<Vec<IssueLabelEdge>>>,
5183    pub nodes: Option<Box<Vec<IssueLabel>>>,
5184    pub page_info: Option<Box<PageInfo>>,
5185}
5186impl GraphQLFields for IssueLabelConnection {
5187    type FullType = Self;
5188    fn selection() -> String {
5189        "".into()
5190    }
5191}
5192#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5193#[serde(rename_all = "camelCase", default)]
5194pub struct IssueLabelEdge {
5195    pub node: Option<Box<IssueLabel>>,
5196    /// Used in `before` and `after` args
5197    pub cursor: Option<String>,
5198}
5199impl GraphQLFields for IssueLabelEdge {
5200    type FullType = Self;
5201    fn selection() -> String {
5202        "cursor".into()
5203    }
5204}
5205#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5206#[serde(rename_all = "camelCase", default)]
5207pub struct IssueLabelPayload {
5208    /// The identifier of the last sync operation.
5209    pub last_sync_id: Option<f64>,
5210    /// The label that was created or updated.
5211    pub issue_label: Option<Box<IssueLabel>>,
5212    /// Whether the operation was successful.
5213    pub success: Option<bool>,
5214}
5215impl GraphQLFields for IssueLabelPayload {
5216    type FullType = Self;
5217    fn selection() -> String {
5218        "lastSyncId success".into()
5219    }
5220}
5221/// An issue related notification.
5222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5223#[serde(rename_all = "camelCase", default)]
5224pub struct IssueNotification {
5225    /// Related comment ID. Null if the notification is not related to a comment.
5226    pub comment_id: Option<String>,
5227    /// Related parent comment ID. Null if the notification is not related to a comment.
5228    pub parent_comment_id: Option<String>,
5229    /// Name of the reaction emoji related to the notification.
5230    pub reaction_emoji: Option<String>,
5231    /// The unique identifier of the entity.
5232    pub id: Option<String>,
5233    /// The time at which the entity was created.
5234    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5235    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5236    /// been updated after creation.
5237    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5238    /// The time at which the entity was archived. Null if the entity has not been archived.
5239    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5240    /// Notification type.
5241    pub r#type: Option<String>,
5242    /// The user that caused the notification.
5243    pub actor: Option<Box<User>>,
5244    /// The external user that caused the notification.
5245    pub external_user_actor: Option<Box<ExternalUser>>,
5246    /// The user that received the notification.
5247    pub user: Option<Box<User>>,
5248    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
5249    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
5250    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
5251    /// reminder has been sent.
5252    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
5253    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
5254    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
5255    /// The time at which a notification was unsnoozed..
5256    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
5257    /// The category of the notification.
5258    pub category: Option<NotificationCategory>,
5259    /// `Internal` URL to the target of the notification.
5260    pub url: Option<String>,
5261    /// `Internal` Inbox URL for the notification.
5262    pub inbox_url: Option<String>,
5263    /// `Internal` Notification title.
5264    pub title: Option<String>,
5265    /// `Internal` Notification subtitle.
5266    pub subtitle: Option<String>,
5267    /// `Internal` If notification actor was Linear.
5268    pub is_linear_actor: Option<bool>,
5269    /// `Internal` Notification avatar URL.
5270    pub actor_avatar_url: Option<String>,
5271    /// `Internal` Notification actor initials if avatar is not available.
5272    pub actor_initials: Option<String>,
5273    /// `Internal` Notification actor initials if avatar is not available.
5274    pub actor_avatar_color: Option<String>,
5275    /// `Internal` Issue's status type for issue notifications.
5276    pub issue_status_type: Option<String>,
5277    /// `Internal` Project update health for new updates.
5278    pub project_update_health: Option<String>,
5279    /// `Internal` Initiative update health for new updates.
5280    pub initiative_update_health: Option<String>,
5281    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
5282    pub grouping_key: Option<String>,
5283    /// `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`.
5284    pub grouping_priority: Option<f64>,
5285    /// The bot that caused the notification.
5286    pub bot_actor: Option<Box<ActorBot>>,
5287    /// Related issue ID.
5288    pub issue_id: Option<String>,
5289    /// The issue related to the notification.
5290    pub issue: Option<Box<Issue>>,
5291    /// The comment related to the notification.
5292    pub comment: Option<Box<Comment>>,
5293    /// The parent comment related to the notification, if a notification is a reply comment notification.
5294    pub parent_comment: Option<Box<Comment>>,
5295    /// The team related to the issue notification.
5296    pub team: Option<Box<Team>>,
5297}
5298impl GraphQLFields for IssueNotification {
5299    type FullType = Self;
5300    fn selection() -> String {
5301        "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"
5302            .into()
5303    }
5304}
5305#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5306#[serde(rename_all = "camelCase", default)]
5307pub struct IssuePayload {
5308    /// The identifier of the last sync operation.
5309    pub last_sync_id: Option<f64>,
5310    /// The issue that was created or updated.
5311    pub issue: Option<Box<Issue>>,
5312    /// Whether the operation was successful.
5313    pub success: Option<bool>,
5314}
5315impl GraphQLFields for IssuePayload {
5316    type FullType = Self;
5317    fn selection() -> String {
5318        "lastSyncId success".into()
5319    }
5320}
5321#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5322#[serde(rename_all = "camelCase", default)]
5323pub struct IssuePriorityValue {
5324    /// Priority's number value.
5325    pub priority: Option<i64>,
5326    /// Priority's label.
5327    pub label: Option<String>,
5328}
5329impl GraphQLFields for IssuePriorityValue {
5330    type FullType = Self;
5331    fn selection() -> String {
5332        "priority label".into()
5333    }
5334}
5335/// A relation between two issues.
5336#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5337#[serde(rename_all = "camelCase", default)]
5338pub struct IssueRelation {
5339    /// The unique identifier of the entity.
5340    pub id: Option<String>,
5341    /// The time at which the entity was created.
5342    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5343    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5344    /// been updated after creation.
5345    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5346    /// The time at which the entity was archived. Null if the entity has not been archived.
5347    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5348    /// The relationship of the issue with the related issue.
5349    pub r#type: Option<String>,
5350    /// The issue whose relationship is being described.
5351    pub issue: Option<Box<Issue>>,
5352    /// The related issue.
5353    pub related_issue: Option<Box<Issue>>,
5354}
5355impl GraphQLFields for IssueRelation {
5356    type FullType = Self;
5357    fn selection() -> String {
5358        "id createdAt updatedAt archivedAt type".into()
5359    }
5360}
5361#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5362#[serde(rename_all = "camelCase", default)]
5363pub struct IssueRelationConnection {
5364    pub edges: Option<Box<Vec<IssueRelationEdge>>>,
5365    pub nodes: Option<Box<Vec<IssueRelation>>>,
5366    pub page_info: Option<Box<PageInfo>>,
5367}
5368impl GraphQLFields for IssueRelationConnection {
5369    type FullType = Self;
5370    fn selection() -> String {
5371        "".into()
5372    }
5373}
5374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5375#[serde(rename_all = "camelCase", default)]
5376pub struct IssueRelationEdge {
5377    pub node: Option<Box<IssueRelation>>,
5378    /// Used in `before` and `after` args
5379    pub cursor: Option<String>,
5380}
5381impl GraphQLFields for IssueRelationEdge {
5382    type FullType = Self;
5383    fn selection() -> String {
5384        "cursor".into()
5385    }
5386}
5387/// Issue relation history's payload.
5388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5389#[serde(rename_all = "camelCase", default)]
5390pub struct IssueRelationHistoryPayload {
5391    /// The identifier of the related issue.
5392    pub identifier: Option<String>,
5393    /// The type of the change.
5394    pub r#type: Option<String>,
5395}
5396impl GraphQLFields for IssueRelationHistoryPayload {
5397    type FullType = Self;
5398    fn selection() -> String {
5399        "identifier type".into()
5400    }
5401}
5402#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5403#[serde(rename_all = "camelCase", default)]
5404pub struct IssueRelationPayload {
5405    /// The identifier of the last sync operation.
5406    pub last_sync_id: Option<f64>,
5407    /// The issue relation that was created or updated.
5408    pub issue_relation: Option<Box<IssueRelation>>,
5409    /// Whether the operation was successful.
5410    pub success: Option<bool>,
5411}
5412impl GraphQLFields for IssueRelationPayload {
5413    type FullType = Self;
5414    fn selection() -> String {
5415        "lastSyncId success".into()
5416    }
5417}
5418#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5419#[serde(rename_all = "camelCase", default)]
5420pub struct IssueSearchPayload {
5421    pub edges: Option<Box<Vec<IssueSearchResultEdge>>>,
5422    pub nodes: Option<Box<Vec<IssueSearchResult>>>,
5423    pub page_info: Option<Box<PageInfo>>,
5424    /// Archived entities matching the search term along with all their dependencies.
5425    pub archive_payload: Option<Box<ArchiveResponse>>,
5426    /// Total number of results for query without filters applied.
5427    pub total_count: Option<f64>,
5428}
5429impl GraphQLFields for IssueSearchPayload {
5430    type FullType = Self;
5431    fn selection() -> String {
5432        "totalCount".into()
5433    }
5434}
5435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5436#[serde(rename_all = "camelCase", default)]
5437pub struct IssueSearchResult {
5438    /// The unique identifier of the entity.
5439    pub id: Option<String>,
5440    /// The time at which the entity was created.
5441    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5442    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5443    /// been updated after creation.
5444    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5445    /// The time at which the entity was archived. Null if the entity has not been archived.
5446    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5447    /// The issue's unique number.
5448    pub number: Option<f64>,
5449    /// The issue's title.
5450    pub title: Option<String>,
5451    /// The priority of the issue. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
5452    pub priority: Option<f64>,
5453    /// The estimate of the complexity of the issue..
5454    pub estimate: Option<f64>,
5455    /// The order of the item in its column on the board.
5456    pub board_order: Option<f64>,
5457    /// The order of the item in relation to other items in the organization.
5458    pub sort_order: Option<f64>,
5459    /// The order of the item in relation to other items in the organization, when ordered by priority.
5460    pub priority_sort_order: Option<f64>,
5461    /// The time at which the issue was moved into started state.
5462    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
5463    /// The time at which the issue was moved into completed state.
5464    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
5465    /// The time at which the issue entered triage.
5466    pub started_triage_at: Option<chrono::DateTime<chrono::Utc>>,
5467    /// The time at which the issue left triage.
5468    pub triaged_at: Option<chrono::DateTime<chrono::Utc>>,
5469    /// The time at which the issue was moved into canceled state.
5470    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
5471    /// The time at which the issue was automatically closed by the auto pruning process.
5472    pub auto_closed_at: Option<chrono::DateTime<chrono::Utc>>,
5473    /// The time at which the issue was automatically archived by the auto pruning process.
5474    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
5475    /// The date at which the issue is due.
5476    pub due_date: Option<chrono::NaiveDate>,
5477    /// The time at which the issue's SLA began.
5478    pub sla_started_at: Option<chrono::DateTime<chrono::Utc>>,
5479    /// The time at which the issue's SLA will enter medium risk state.
5480    pub sla_medium_risk_at: Option<chrono::DateTime<chrono::Utc>>,
5481    /// The time at which the issue's SLA will enter high risk state.
5482    pub sla_high_risk_at: Option<chrono::DateTime<chrono::Utc>>,
5483    /// The time at which the issue's SLA will breach.
5484    pub sla_breaches_at: Option<chrono::DateTime<chrono::Utc>>,
5485    /// The type of SLA set on the issue. Calendar days or business days.
5486    pub sla_type: Option<String>,
5487    /// The time at which the issue was added to a project.
5488    pub added_to_project_at: Option<chrono::DateTime<chrono::Utc>>,
5489    /// The time at which the issue was added to a cycle.
5490    pub added_to_cycle_at: Option<chrono::DateTime<chrono::Utc>>,
5491    /// The time at which the issue was added to a team.
5492    pub added_to_team_at: Option<chrono::DateTime<chrono::Utc>>,
5493    /// A flag that indicates whether the issue is in the trash bin.
5494    pub trashed: Option<bool>,
5495    /// The time until an issue will be snoozed in Triage view.
5496    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
5497    /// `Internal` The time at which the most recent suggestions for this issue were generated.
5498    pub suggestions_generated_at: Option<chrono::DateTime<chrono::Utc>>,
5499    /// `Internal` The activity summary information for this issue.
5500    pub activity_summary: Option<serde_json::Value>,
5501    /// `Internal` AI-generated activity summary for this issue.
5502    pub summary: Option<Box<Summary>>,
5503    /// Id of the labels associated with this issue.
5504    pub label_ids: Option<Vec<String>>,
5505    /// The team that the issue is associated with.
5506    pub team: Option<Box<Team>>,
5507    /// The cycle that the issue is associated with.
5508    pub cycle: Option<Box<Cycle>>,
5509    /// The project that the issue is associated with.
5510    pub project: Option<Box<Project>>,
5511    /// The projectMilestone that the issue is associated with.
5512    pub project_milestone: Option<Box<ProjectMilestone>>,
5513    /// The last template that was applied to this issue.
5514    pub last_applied_template: Option<Box<Template>>,
5515    /// The recurring issue template that created this issue.
5516    pub recurring_issue_template: Option<Box<Template>>,
5517    /// Previous identifiers of the issue if it has been moved between teams.
5518    pub previous_identifiers: Option<Vec<String>>,
5519    /// The user who created the issue.
5520    pub creator: Option<Box<User>>,
5521    /// The external user who created the issue.
5522    pub external_user_creator: Option<Box<ExternalUser>>,
5523    /// The user to whom the issue is assigned to.
5524    pub assignee: Option<Box<User>>,
5525    /// The agent user that is delegated to work on this issue.
5526    pub delegate: Option<Box<User>>,
5527    /// The user who snoozed the issue.
5528    pub snoozed_by: Option<Box<User>>,
5529    /// The workflow state that the issue is associated with.
5530    pub state: Option<Box<WorkflowState>>,
5531    /// The order of the item in the sub-issue list. Only set if the issue has a parent.
5532    pub sub_issue_sort_order: Option<f64>,
5533    /// Emoji reaction summary, grouped by emoji type.
5534    pub reaction_data: Option<serde_json::Value>,
5535    /// Label for the priority.
5536    pub priority_label: Option<String>,
5537    /// The comment that this issue was created from.
5538    pub source_comment: Option<Box<Comment>>,
5539    /// Integration type that created this issue, if applicable.
5540    pub integration_source_type: Option<IntegrationService>,
5541    /// Documents associated with the issue.
5542    pub documents: Option<Box<DocumentConnection>>,
5543    /// The bot that created the issue, if applicable.
5544    pub bot_actor: Option<Box<ActorBot>>,
5545    /// The users favorite associated with this issue.
5546    pub favorite: Option<Box<Favorite>>,
5547    /// Issue's human readable identifier (e.g. ENG-123).
5548    pub identifier: Option<String>,
5549    /// Issue URL.
5550    pub url: Option<String>,
5551    /// Suggested branch name for the issue.
5552    pub branch_name: Option<String>,
5553    /// Shared access metadata for this issue.
5554    pub shared_access: Option<Box<IssueSharedAccess>>,
5555    /// Returns the number of Attachment resources which are created by customer support ticketing systems (e.g. Zendesk).
5556    pub customer_ticket_count: Option<i64>,
5557    /// Users who are subscribed to the issue.
5558    pub subscribers: Option<Box<UserConnection>>,
5559    /// The parent of the issue.
5560    pub parent: Option<Box<Issue>>,
5561    /// Children of the issue.
5562    pub children: Option<Box<IssueConnection>>,
5563    /// Comments associated with the issue.
5564    pub comments: Option<Box<CommentConnection>>,
5565    /// History entries associated with the issue.
5566    pub history: Option<Box<IssueHistoryConnection>>,
5567    /// Labels associated with this issue.
5568    pub labels: Option<Box<IssueLabelConnection>>,
5569    /// Relations associated with this issue.
5570    pub relations: Option<Box<IssueRelationConnection>>,
5571    /// Inverse relations associated with this issue.
5572    pub inverse_relations: Option<Box<IssueRelationConnection>>,
5573    /// Attachments associated with the issue.
5574    pub attachments: Option<Box<AttachmentConnection>>,
5575    /// Attachments previously associated with the issue before being moved to another issue.
5576    pub former_attachments: Option<Box<AttachmentConnection>>,
5577    /// The issue's description in markdown format.
5578    pub description: Option<String>,
5579    /// `Internal` The issue's description content as YJS state.
5580    pub description_state: Option<String>,
5581    /// `ALPHA` The document content representing this issue description.
5582    pub document_content: Option<Box<DocumentContent>>,
5583    /// Reactions associated with the issue.
5584    pub reactions: Option<Box<Vec<Reaction>>>,
5585    /// Customer needs associated with the issue.
5586    pub needs: Option<Box<CustomerNeedConnection>>,
5587    /// Customer needs previously associated with the issue before being moved to another issue.
5588    pub former_needs: Option<Box<CustomerNeedConnection>>,
5589    /// The external services the issue is synced with.
5590    pub synced_with: Option<Box<Vec<ExternalEntityInfo>>>,
5591    /// `Internal` Product Intelligence suggestions for the issue.
5592    pub suggestions: Option<Box<IssueSuggestionConnection>>,
5593    /// `Internal` Incoming product intelligence relation suggestions for the issue.
5594    pub incoming_suggestions: Option<Box<IssueSuggestionConnection>>,
5595    /// The internal user who requested creation of the Asks issue on behalf of the creator.
5596    pub asks_requester: Option<Box<User>>,
5597    /// The external user who requested creation of the Asks issue on behalf of the creator.
5598    pub asks_external_user_requester: Option<Box<ExternalUser>>,
5599    /// The issue's workflow states over time.
5600    pub state_history: Option<Box<IssueStateSpanConnection>>,
5601    /// Metadata related to search result.
5602    pub metadata: Option<serde_json::Value>,
5603}
5604impl GraphQLFields for IssueSearchResult {
5605    type FullType = Self;
5606    fn selection() -> String {
5607        "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"
5608            .into()
5609    }
5610}
5611#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5612#[serde(rename_all = "camelCase", default)]
5613pub struct IssueSearchResultEdge {
5614    pub node: Option<Box<IssueSearchResult>>,
5615    /// Used in `before` and `after` args
5616    pub cursor: Option<String>,
5617}
5618impl GraphQLFields for IssueSearchResultEdge {
5619    type FullType = Self;
5620    fn selection() -> String {
5621        "cursor".into()
5622    }
5623}
5624#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5625#[serde(rename_all = "camelCase", default)]
5626pub struct IssueSharedAccess {
5627    /// Whether this issue has been shared with users outside the team.
5628    pub is_shared: Option<bool>,
5629    /// Whether the viewer can access this issue only through issue sharing.
5630    pub viewer_has_only_shared_access: Option<bool>,
5631    /// The number of users this issue is shared with.
5632    pub shared_with_count: Option<i64>,
5633    /// Users this issue is shared with.
5634    pub shared_with_users: Option<Box<Vec<User>>>,
5635}
5636impl GraphQLFields for IssueSharedAccess {
5637    type FullType = Self;
5638    fn selection() -> String {
5639        "isShared viewerHasOnlySharedAccess sharedWithCount".into()
5640    }
5641}
5642/// A continuous period of time during which an issue remained in a specific workflow state.
5643#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5644#[serde(rename_all = "camelCase", default)]
5645pub struct IssueStateSpan {
5646    /// The unique identifier of the state span.
5647    pub id: Option<String>,
5648    /// The workflow state identifier for this span.
5649    pub state_id: Option<String>,
5650    /// The timestamp when the issue entered this state.
5651    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
5652    /// The timestamp when the issue left this state. Null if the issue is currently in this state.
5653    pub ended_at: Option<chrono::DateTime<chrono::Utc>>,
5654    /// The workflow state for this span.
5655    pub state: Option<Box<WorkflowState>>,
5656}
5657impl GraphQLFields for IssueStateSpan {
5658    type FullType = Self;
5659    fn selection() -> String {
5660        "id stateId startedAt endedAt".into()
5661    }
5662}
5663#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5664#[serde(rename_all = "camelCase", default)]
5665pub struct IssueStateSpanConnection {
5666    pub edges: Option<Box<Vec<IssueStateSpanEdge>>>,
5667    pub nodes: Option<Box<Vec<IssueStateSpan>>>,
5668    pub page_info: Option<Box<PageInfo>>,
5669}
5670impl GraphQLFields for IssueStateSpanConnection {
5671    type FullType = Self;
5672    fn selection() -> String {
5673        "".into()
5674    }
5675}
5676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5677#[serde(rename_all = "camelCase", default)]
5678pub struct IssueStateSpanEdge {
5679    pub node: Option<Box<IssueStateSpan>>,
5680    /// Used in `before` and `after` args
5681    pub cursor: Option<String>,
5682}
5683impl GraphQLFields for IssueStateSpanEdge {
5684    type FullType = Self;
5685    fn selection() -> String {
5686        "cursor".into()
5687    }
5688}
5689#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5690#[serde(rename_all = "camelCase", default)]
5691pub struct IssueSuggestion {
5692    /// The unique identifier of the entity.
5693    pub id: Option<String>,
5694    /// The time at which the entity was created.
5695    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5696    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5697    /// been updated after creation.
5698    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5699    /// The time at which the entity was archived. Null if the entity has not been archived.
5700    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5701    pub issue: Option<Box<Issue>>,
5702    pub issue_id: Option<String>,
5703    pub r#type: Option<IssueSuggestionType>,
5704    pub state: Option<IssueSuggestionState>,
5705    pub state_changed_at: Option<chrono::DateTime<chrono::Utc>>,
5706    pub dismissal_reason: Option<String>,
5707    pub metadata: Option<Box<IssueSuggestionMetadata>>,
5708    pub suggested_issue: Option<Box<Issue>>,
5709    pub suggested_issue_id: Option<String>,
5710    pub suggested_team: Option<Box<Team>>,
5711    pub suggested_project: Option<Box<Project>>,
5712    pub suggested_user: Option<Box<User>>,
5713    pub suggested_user_id: Option<String>,
5714    pub suggested_label: Option<Box<IssueLabel>>,
5715    pub suggested_label_id: Option<String>,
5716    /// The reasons for the suggestion.
5717    pub reasons: Option<Vec<String>>,
5718    /// Whether the suggestion should be visible.
5719    pub is_visible: Option<bool>,
5720}
5721impl GraphQLFields for IssueSuggestion {
5722    type FullType = Self;
5723    fn selection() -> String {
5724        "id createdAt updatedAt archivedAt issueId type state stateChangedAt dismissalReason suggestedIssueId suggestedUserId suggestedLabelId reasons isVisible"
5725            .into()
5726    }
5727}
5728#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5729#[serde(rename_all = "camelCase", default)]
5730pub struct IssueSuggestionConnection {
5731    pub edges: Option<Box<Vec<IssueSuggestionEdge>>>,
5732    pub nodes: Option<Box<Vec<IssueSuggestion>>>,
5733    pub page_info: Option<Box<PageInfo>>,
5734}
5735impl GraphQLFields for IssueSuggestionConnection {
5736    type FullType = Self;
5737    fn selection() -> String {
5738        "".into()
5739    }
5740}
5741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5742#[serde(rename_all = "camelCase", default)]
5743pub struct IssueSuggestionEdge {
5744    pub node: Option<Box<IssueSuggestion>>,
5745    /// Used in `before` and `after` args
5746    pub cursor: Option<String>,
5747}
5748impl GraphQLFields for IssueSuggestionEdge {
5749    type FullType = Self;
5750    fn selection() -> String {
5751        "cursor".into()
5752    }
5753}
5754#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5755#[serde(rename_all = "camelCase", default)]
5756pub struct IssueSuggestionMetadata {
5757    pub score: Option<f64>,
5758    pub classification: Option<String>,
5759    pub reasons: Option<Vec<String>>,
5760    pub eval_log_id: Option<String>,
5761    pub rank: Option<f64>,
5762    pub variant: Option<String>,
5763    pub applied_automation_rule_id: Option<String>,
5764}
5765impl GraphQLFields for IssueSuggestionMetadata {
5766    type FullType = Self;
5767    fn selection() -> String {
5768        "score classification reasons evalLogId rank variant appliedAutomationRuleId".into()
5769    }
5770}
5771#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5772#[serde(rename_all = "camelCase", default)]
5773pub struct IssueTitleSuggestionFromCustomerRequestPayload {
5774    /// The identifier of the last sync operation.
5775    pub last_sync_id: Option<f64>,
5776    /// The suggested issue title.
5777    pub title: Option<String>,
5778    /// `Internal` The log id of the ai response.
5779    pub log_id: Option<String>,
5780}
5781impl GraphQLFields for IssueTitleSuggestionFromCustomerRequestPayload {
5782    type FullType = Self;
5783    fn selection() -> String {
5784        "lastSyncId title logId".into()
5785    }
5786}
5787/// `Internal` Join table between issues and releases.
5788#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5789#[serde(rename_all = "camelCase", default)]
5790pub struct IssueToRelease {
5791    /// The unique identifier of the entity.
5792    pub id: Option<String>,
5793    /// The time at which the entity was created.
5794    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5795    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5796    /// been updated after creation.
5797    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5798    /// The time at which the entity was archived. Null if the entity has not been archived.
5799    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5800    /// The issue associated with the release.
5801    pub issue: Option<Box<Issue>>,
5802    /// The release associated with the issue.
5803    pub release: Option<Box<Release>>,
5804    /// The pull request that linked this issue to the release.
5805    pub pull_request: Option<Box<PullRequest>>,
5806}
5807impl GraphQLFields for IssueToRelease {
5808    type FullType = Self;
5809    fn selection() -> String {
5810        "id createdAt updatedAt archivedAt".into()
5811    }
5812}
5813#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5814#[serde(rename_all = "camelCase", default)]
5815pub struct IssueToReleaseConnection {
5816    pub edges: Option<Box<Vec<IssueToReleaseEdge>>>,
5817    pub nodes: Option<Box<Vec<IssueToRelease>>>,
5818    pub page_info: Option<Box<PageInfo>>,
5819}
5820impl GraphQLFields for IssueToReleaseConnection {
5821    type FullType = Self;
5822    fn selection() -> String {
5823        "".into()
5824    }
5825}
5826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5827#[serde(rename_all = "camelCase", default)]
5828pub struct IssueToReleaseEdge {
5829    pub node: Option<Box<IssueToRelease>>,
5830    /// Used in `before` and `after` args
5831    pub cursor: Option<String>,
5832}
5833impl GraphQLFields for IssueToReleaseEdge {
5834    type FullType = Self;
5835    fn selection() -> String {
5836        "cursor".into()
5837    }
5838}
5839/// `ALPHA` The result of an issueToRelease mutation.
5840#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5841#[serde(rename_all = "camelCase", default)]
5842pub struct IssueToReleasePayload {
5843    /// The identifier of the last sync operation.
5844    pub last_sync_id: Option<f64>,
5845    /// The issueToRelease that was created or updated.
5846    pub issue_to_release: Option<Box<IssueToRelease>>,
5847    /// Whether the operation was successful.
5848    pub success: Option<bool>,
5849}
5850impl GraphQLFields for IssueToReleasePayload {
5851    type FullType = Self;
5852    fn selection() -> String {
5853        "lastSyncId success".into()
5854    }
5855}
5856/// A label notification subscription.
5857#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5858#[serde(rename_all = "camelCase", default)]
5859pub struct LabelNotificationSubscription {
5860    /// The unique identifier of the entity.
5861    pub id: Option<String>,
5862    /// The time at which the entity was created.
5863    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5864    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
5865    /// been updated after creation.
5866    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
5867    /// The time at which the entity was archived. Null if the entity has not been archived.
5868    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
5869    /// The user that subscribed to receive notifications.
5870    pub subscriber: Option<Box<User>>,
5871    /// The customer associated with the notification subscription.
5872    pub customer: Option<Box<Customer>>,
5873    /// The contextual custom view associated with the notification subscription.
5874    pub custom_view: Option<Box<CustomView>>,
5875    /// The contextual cycle view associated with the notification subscription.
5876    pub cycle: Option<Box<Cycle>>,
5877    /// The label subscribed to.
5878    pub label: Option<Box<IssueLabel>>,
5879    /// The contextual project view associated with the notification subscription.
5880    pub project: Option<Box<Project>>,
5881    /// The contextual initiative view associated with the notification subscription.
5882    pub initiative: Option<Box<Initiative>>,
5883    /// The team associated with the notification subscription.
5884    pub team: Option<Box<Team>>,
5885    /// The user view associated with the notification subscription.
5886    pub user: Option<Box<User>>,
5887    /// The type of view to which the notification subscription context is associated with.
5888    pub context_view_type: Option<ContextViewType>,
5889    /// The type of user view to which the notification subscription context is associated with.
5890    pub user_context_view_type: Option<UserContextViewType>,
5891    /// Whether the subscription is active or not.
5892    pub active: Option<bool>,
5893    /// The type of subscription.
5894    pub notification_subscription_types: Option<Vec<String>>,
5895}
5896impl GraphQLFields for LabelNotificationSubscription {
5897    type FullType = Self;
5898    fn selection() -> String {
5899        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
5900            .into()
5901    }
5902}
5903#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5904#[serde(rename_all = "camelCase", default)]
5905pub struct LogoutResponse {
5906    /// Whether the operation was successful.
5907    pub success: Option<bool>,
5908}
5909impl GraphQLFields for LogoutResponse {
5910    type FullType = Self;
5911    fn selection() -> String {
5912        "success".into()
5913    }
5914}
5915/// A generic payload return from entity archive mutations.
5916#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5917#[serde(rename_all = "camelCase", default)]
5918pub struct NotificationArchivePayload {
5919    /// The identifier of the last sync operation.
5920    pub last_sync_id: Option<f64>,
5921    /// Whether the operation was successful.
5922    pub success: Option<bool>,
5923}
5924impl GraphQLFields for NotificationArchivePayload {
5925    type FullType = Self;
5926    fn selection() -> String {
5927        "lastSyncId success".into()
5928    }
5929}
5930#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5931#[serde(rename_all = "camelCase", default)]
5932pub struct NotificationBatchActionPayload {
5933    /// The identifier of the last sync operation.
5934    pub last_sync_id: Option<f64>,
5935    /// Whether the operation was successful.
5936    pub success: Option<bool>,
5937}
5938impl GraphQLFields for NotificationBatchActionPayload {
5939    type FullType = Self;
5940    fn selection() -> String {
5941        "lastSyncId success".into()
5942    }
5943}
5944/// A user's notification category preferences.
5945#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5946#[serde(rename_all = "camelCase", default)]
5947pub struct NotificationCategoryPreferences {
5948    /// The preferences for notifications about assignments.
5949    pub assignments: Option<Box<NotificationChannelPreferences>>,
5950    /// The preferences for notifications about status changes.
5951    pub status_changes: Option<Box<NotificationChannelPreferences>>,
5952    /// The preferences for notifications about comments and replies.
5953    pub comments_and_replies: Option<Box<NotificationChannelPreferences>>,
5954    /// The preferences for notifications about mentions.
5955    pub mentions: Option<Box<NotificationChannelPreferences>>,
5956    /// The preferences for notifications about reactions.
5957    pub reactions: Option<Box<NotificationChannelPreferences>>,
5958    /// The preferences for notifications about subscriptions.
5959    pub subscriptions: Option<Box<NotificationChannelPreferences>>,
5960    /// The preferences for notifications about document changes.
5961    pub document_changes: Option<Box<NotificationChannelPreferences>>,
5962    /// The preferences for notifications about posts and updates.
5963    pub posts_and_updates: Option<Box<NotificationChannelPreferences>>,
5964    /// The preferences for notifications about reminders.
5965    pub reminders: Option<Box<NotificationChannelPreferences>>,
5966    /// The preferences for notifications about reviews.
5967    pub reviews: Option<Box<NotificationChannelPreferences>>,
5968    /// The preferences for notifications about apps and integrations.
5969    pub apps_and_integrations: Option<Box<NotificationChannelPreferences>>,
5970    /// The preferences for system notifications.
5971    pub system: Option<Box<NotificationChannelPreferences>>,
5972    /// The preferences for triage notifications.
5973    pub triage: Option<Box<NotificationChannelPreferences>>,
5974    /// The preferences for customer notifications.
5975    pub customers: Option<Box<NotificationChannelPreferences>>,
5976    /// The preferences for feed summary notifications.
5977    pub feed: Option<Box<NotificationChannelPreferences>>,
5978}
5979impl GraphQLFields for NotificationCategoryPreferences {
5980    type FullType = Self;
5981    fn selection() -> String {
5982        "".into()
5983    }
5984}
5985/// A user's notification channel preferences, indicating if a channel is enabled or not
5986#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5987#[serde(rename_all = "camelCase", default)]
5988pub struct NotificationChannelPreferences {
5989    /// Whether notifications are currently enabled for mobile.
5990    pub mobile: Option<bool>,
5991    /// Whether notifications are currently enabled for desktop.
5992    pub desktop: Option<bool>,
5993    /// Whether notifications are currently enabled for email.
5994    pub email: Option<bool>,
5995    /// Whether notifications are currently enabled for Slack.
5996    pub slack: Option<bool>,
5997}
5998impl GraphQLFields for NotificationChannelPreferences {
5999    type FullType = Self;
6000    fn selection() -> String {
6001        "mobile desktop email slack".into()
6002    }
6003}
6004#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6005#[serde(rename_all = "camelCase", default)]
6006pub struct NotificationConnection {
6007    pub edges: Option<Box<Vec<NotificationEdge>>>,
6008    pub page_info: Option<Box<PageInfo>>,
6009}
6010impl GraphQLFields for NotificationConnection {
6011    type FullType = Self;
6012    fn selection() -> String {
6013        "".into()
6014    }
6015}
6016/// A user's notification delivery preferences.
6017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6018#[serde(rename_all = "camelCase", default)]
6019pub struct NotificationDeliveryPreferences {
6020    /// The delivery preferences for the mobile channel.
6021    pub mobile: Option<Box<NotificationDeliveryPreferencesChannel>>,
6022}
6023impl GraphQLFields for NotificationDeliveryPreferences {
6024    type FullType = Self;
6025    fn selection() -> String {
6026        "".into()
6027    }
6028}
6029/// A user's notification delivery preferences.
6030#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6031#[serde(rename_all = "camelCase", default)]
6032pub struct NotificationDeliveryPreferencesChannel {
6033    /// `DEPRECATED` Whether notifications are enabled for this channel. Use notificationChannelPreferences instead.
6034    pub notifications_disabled: Option<bool>,
6035    /// The schedule for notifications on this channel.
6036    pub schedule: Option<Box<NotificationDeliveryPreferencesSchedule>>,
6037}
6038impl GraphQLFields for NotificationDeliveryPreferencesChannel {
6039    type FullType = Self;
6040    fn selection() -> String {
6041        "notificationsDisabled".into()
6042    }
6043}
6044/// A user's notification delivery schedule for a particular day.
6045#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6046#[serde(rename_all = "camelCase", default)]
6047pub struct NotificationDeliveryPreferencesDay {
6048    /// The time notifications start.
6049    pub start: Option<String>,
6050    /// The time notifications end.
6051    pub end: Option<String>,
6052}
6053impl GraphQLFields for NotificationDeliveryPreferencesDay {
6054    type FullType = Self;
6055    fn selection() -> String {
6056        "start end".into()
6057    }
6058}
6059/// A user's notification delivery schedule for a particular day.
6060#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6061#[serde(rename_all = "camelCase", default)]
6062pub struct NotificationDeliveryPreferencesSchedule {
6063    /// Whether the schedule is disabled.
6064    pub disabled: Option<bool>,
6065    /// Delivery preferences for Sunday.
6066    pub sunday: Option<Box<NotificationDeliveryPreferencesDay>>,
6067    /// Delivery preferences for Monday.
6068    pub monday: Option<Box<NotificationDeliveryPreferencesDay>>,
6069    /// Delivery preferences for Tuesday.
6070    pub tuesday: Option<Box<NotificationDeliveryPreferencesDay>>,
6071    /// Delivery preferences for Wednesday.
6072    pub wednesday: Option<Box<NotificationDeliveryPreferencesDay>>,
6073    /// Delivery preferences for Thursday.
6074    pub thursday: Option<Box<NotificationDeliveryPreferencesDay>>,
6075    /// Delivery preferences for Friday.
6076    pub friday: Option<Box<NotificationDeliveryPreferencesDay>>,
6077    /// Delivery preferences for Saturday.
6078    pub saturday: Option<Box<NotificationDeliveryPreferencesDay>>,
6079}
6080impl GraphQLFields for NotificationDeliveryPreferencesSchedule {
6081    type FullType = Self;
6082    fn selection() -> String {
6083        "disabled".into()
6084    }
6085}
6086#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6087#[serde(rename_all = "camelCase", default)]
6088pub struct NotificationEdge {
6089    /// Used in `before` and `after` args
6090    pub cursor: Option<String>,
6091}
6092impl GraphQLFields for NotificationEdge {
6093    type FullType = Self;
6094    fn selection() -> String {
6095        "cursor".into()
6096    }
6097}
6098#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6099#[serde(rename_all = "camelCase", default)]
6100pub struct NotificationPayload {
6101    /// The identifier of the last sync operation.
6102    pub last_sync_id: Option<f64>,
6103    /// Whether the operation was successful.
6104    pub success: Option<bool>,
6105}
6106impl GraphQLFields for NotificationPayload {
6107    type FullType = Self;
6108    fn selection() -> String {
6109        "lastSyncId success".into()
6110    }
6111}
6112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6113#[serde(rename_all = "camelCase", default)]
6114pub struct NotificationSubscriptionConnection {
6115    pub edges: Option<Box<Vec<NotificationSubscriptionEdge>>>,
6116    pub page_info: Option<Box<PageInfo>>,
6117}
6118impl GraphQLFields for NotificationSubscriptionConnection {
6119    type FullType = Self;
6120    fn selection() -> String {
6121        "".into()
6122    }
6123}
6124#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6125#[serde(rename_all = "camelCase", default)]
6126pub struct NotificationSubscriptionEdge {
6127    /// Used in `before` and `after` args
6128    pub cursor: Option<String>,
6129}
6130impl GraphQLFields for NotificationSubscriptionEdge {
6131    type FullType = Self;
6132    fn selection() -> String {
6133        "cursor".into()
6134    }
6135}
6136#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6137#[serde(rename_all = "camelCase", default)]
6138pub struct NotificationSubscriptionPayload {
6139    /// The identifier of the last sync operation.
6140    pub last_sync_id: Option<f64>,
6141    /// Whether the operation was successful.
6142    pub success: Option<bool>,
6143}
6144impl GraphQLFields for NotificationSubscriptionPayload {
6145    type FullType = Self;
6146    fn selection() -> String {
6147        "lastSyncId success".into()
6148    }
6149}
6150/// Request to install OAuth clients on organizations and the response to the request.
6151#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6152#[serde(rename_all = "camelCase", default)]
6153pub struct OauthClientApproval {
6154    /// The unique identifier of the entity.
6155    pub id: Option<String>,
6156    /// The time at which the entity was created.
6157    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6158    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6159    /// been updated after creation.
6160    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6161    /// The time at which the entity was archived. Null if the entity has not been archived.
6162    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6163    /// The uuid of the OAuth client being requested for installation.
6164    pub oauth_client_id: Option<String>,
6165    /// The person who requested installing the OAuth client.
6166    pub requester_id: Option<String>,
6167    /// The person who responded to the request to install the OAuth client.
6168    pub responder_id: Option<String>,
6169    /// The status for the OAuth client approval request.
6170    pub status: Option<OAuthClientApprovalStatus>,
6171    /// The scopes the app has been approved for.
6172    pub scopes: Option<Vec<String>>,
6173    /// The reason the person wants to install this OAuth client.
6174    pub request_reason: Option<String>,
6175    /// The reason the request for the OAuth client approval was denied.
6176    pub deny_reason: Option<String>,
6177    /// New scopes that were requested for approval after the initial request.
6178    pub newly_requested_scopes: Option<Vec<String>>,
6179}
6180impl GraphQLFields for OauthClientApproval {
6181    type FullType = Self;
6182    fn selection() -> String {
6183        "id createdAt updatedAt archivedAt oauthClientId requesterId responderId status scopes requestReason denyReason newlyRequestedScopes"
6184            .into()
6185    }
6186}
6187/// An oauth client approval related notification.
6188#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6189#[serde(rename_all = "camelCase", default)]
6190pub struct OauthClientApprovalNotification {
6191    /// The unique identifier of the entity.
6192    pub id: Option<String>,
6193    /// The time at which the entity was created.
6194    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6195    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6196    /// been updated after creation.
6197    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6198    /// The time at which the entity was archived. Null if the entity has not been archived.
6199    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6200    /// Notification type.
6201    pub r#type: Option<String>,
6202    /// The user that caused the notification.
6203    pub actor: Option<Box<User>>,
6204    /// The external user that caused the notification.
6205    pub external_user_actor: Option<Box<ExternalUser>>,
6206    /// The user that received the notification.
6207    pub user: Option<Box<User>>,
6208    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
6209    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
6210    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
6211    /// reminder has been sent.
6212    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
6213    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
6214    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
6215    /// The time at which a notification was unsnoozed..
6216    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
6217    /// The category of the notification.
6218    pub category: Option<NotificationCategory>,
6219    /// `Internal` URL to the target of the notification.
6220    pub url: Option<String>,
6221    /// `Internal` Inbox URL for the notification.
6222    pub inbox_url: Option<String>,
6223    /// `Internal` Notification title.
6224    pub title: Option<String>,
6225    /// `Internal` Notification subtitle.
6226    pub subtitle: Option<String>,
6227    /// `Internal` If notification actor was Linear.
6228    pub is_linear_actor: Option<bool>,
6229    /// `Internal` Notification avatar URL.
6230    pub actor_avatar_url: Option<String>,
6231    /// `Internal` Notification actor initials if avatar is not available.
6232    pub actor_initials: Option<String>,
6233    /// `Internal` Notification actor initials if avatar is not available.
6234    pub actor_avatar_color: Option<String>,
6235    /// `Internal` Issue's status type for issue notifications.
6236    pub issue_status_type: Option<String>,
6237    /// `Internal` Project update health for new updates.
6238    pub project_update_health: Option<String>,
6239    /// `Internal` Initiative update health for new updates.
6240    pub initiative_update_health: Option<String>,
6241    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
6242    pub grouping_key: Option<String>,
6243    /// `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`.
6244    pub grouping_priority: Option<f64>,
6245    /// The bot that caused the notification.
6246    pub bot_actor: Option<Box<ActorBot>>,
6247    /// Related OAuth client approval request ID.
6248    pub oauth_client_approval_id: Option<String>,
6249    /// The OAuth client approval request related to the notification.
6250    pub oauth_client_approval: Option<Box<OauthClientApproval>>,
6251}
6252impl GraphQLFields for OauthClientApprovalNotification {
6253    type FullType = Self;
6254    fn selection() -> String {
6255        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority oauthClientApprovalId"
6256            .into()
6257    }
6258}
6259/// An organization. Organizations are root-level objects that contain user accounts and teams.
6260#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6261#[serde(rename_all = "camelCase", default)]
6262pub struct Organization {
6263    /// The unique identifier of the entity.
6264    pub id: Option<String>,
6265    /// The time at which the entity was created.
6266    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6267    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6268    /// been updated after creation.
6269    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6270    /// The time at which the entity was archived. Null if the entity has not been archived.
6271    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6272    /// The organization's name.
6273    pub name: Option<String>,
6274    /// The organization's unique URL key.
6275    pub url_key: Option<String>,
6276    /// The organization's logo URL.
6277    pub logo_url: Option<String>,
6278    /// Rolling 30-day total upload volume for the organization, in megabytes.
6279    pub period_upload_volume: Option<f64>,
6280    /// `Internal` Facets associated with the organization.
6281    pub facets: Option<Box<Vec<Facet>>>,
6282    /// How git branches are formatted. If null, default formatting will be used.
6283    pub git_branch_format: Option<String>,
6284    /// Whether the Git integration linkback messages should be sent to private repositories.
6285    pub git_linkback_messages_enabled: Option<bool>,
6286    /// Whether the Git integration linkback messages should be sent to public repositories.
6287    pub git_public_linkback_messages_enabled: Option<bool>,
6288    /// Whether issue descriptions should be included in Git integration linkback messages.
6289    pub git_linkback_descriptions_enabled: Option<bool>,
6290    /// Whether the organization is using a roadmap.
6291    pub roadmap_enabled: Option<bool>,
6292    /// The n-weekly frequency at which to prompt for project updates. When not set, reminders are off.
6293    pub project_update_reminder_frequency_in_weeks: Option<f64>,
6294    /// The day at which to prompt for project updates.
6295    pub project_update_reminders_day: Option<Day>,
6296    /// The hour at which to prompt for project updates.
6297    pub project_update_reminders_hour: Option<f64>,
6298    /// The n-weekly frequency at which to prompt for initiative updates. When not set, reminders are off.
6299    pub initiative_update_reminder_frequency_in_weeks: Option<f64>,
6300    /// The day at which to prompt for initiative updates.
6301    pub initiative_update_reminders_day: Option<Day>,
6302    /// The hour at which to prompt for initiative updates.
6303    pub initiative_update_reminders_hour: Option<f64>,
6304    /// The month at which the fiscal year starts. Defaults to January (0).
6305    pub fiscal_year_start_month: Option<f64>,
6306    /// `Internal` The list of working days. Sunday is 0, Monday is 1, etc.
6307    pub working_days: Option<Vec<f64>>,
6308    /// Whether SAML authentication is enabled for organization.
6309    pub saml_enabled: Option<bool>,
6310    /// `INTERNAL` SAML settings.
6311    pub saml_settings: Option<serde_json::Value>,
6312    /// Whether SCIM provisioning is enabled for organization.
6313    pub scim_enabled: Option<bool>,
6314    /// `INTERNAL` SCIM settings.
6315    pub scim_settings: Option<serde_json::Value>,
6316    /// Security settings for the organization.
6317    pub security_settings: Option<serde_json::Value>,
6318    /// Allowed authentication providers, empty array means all are allowed.
6319    pub allowed_auth_services: Option<Vec<String>>,
6320    /// Allowed file upload content types
6321    pub allowed_file_upload_content_types: Option<Vec<String>>,
6322    /// IP restriction configurations.
6323    pub ip_restrictions: Option<Box<Vec<OrganizationIpRestriction>>>,
6324    /// The time at which deletion of the organization was requested.
6325    pub deletion_requested_at: Option<chrono::DateTime<chrono::Utc>>,
6326    /// The time at which the trial will end.
6327    pub trial_ends_at: Option<chrono::DateTime<chrono::Utc>>,
6328    /// The time at which the trial started.
6329    pub trial_starts_at: Option<chrono::DateTime<chrono::Utc>>,
6330    /// Previously used URL keys for the organization (last 3 are kept and redirected).
6331    pub previous_url_keys: Option<Vec<String>>,
6332    /// Whether HIPAA compliance is enabled for organization.
6333    pub hipaa_compliance_enabled: Option<bool>,
6334    /// `ALPHA` Theme settings for the organization.
6335    pub theme_settings: Option<serde_json::Value>,
6336    /// The feature release channel the organization belongs to.
6337    pub release_channel: Option<ReleaseChannel>,
6338    /// Configuration settings for the Customers feature.
6339    pub customers_configuration: Option<serde_json::Value>,
6340    /// `INTERNAL` Whether code intelligence is enabled for the organization.
6341    pub code_intelligence_enabled: Option<bool>,
6342    /// `INTERNAL` GitHub repository in owner/repo format for code intelligence.
6343    pub code_intelligence_repository: Option<String>,
6344    /// Default schedule for how often feed summaries are generated.
6345    pub default_feed_summary_schedule: Option<FeedSummarySchedule>,
6346    /// Whether the organization has enabled the feed feature.
6347    pub feed_enabled: Option<bool>,
6348    /// Whether to hide other organizations for new users signing up with email domains claimed by this organization.
6349    pub hide_non_primary_organizations: Option<bool>,
6350    /// `INTERNAL` Whether the organization has enabled the AI add-on (which at this point only includes triage suggestions).
6351    pub ai_addon_enabled: Option<bool>,
6352    /// `INTERNAL` Whether the organization has enabled generated updates.
6353    pub generated_updates_enabled: Option<bool>,
6354    /// Whether the organization has enabled resolved thread AI summaries.
6355    pub ai_thread_summaries_enabled: Option<bool>,
6356    /// Whether the organization has enabled AI discussion summaries for issues.
6357    pub ai_discussion_summaries_enabled: Option<bool>,
6358    /// `INTERNAL` Configure per-modality AI host providers and model families.
6359    pub ai_provider_configuration: Option<serde_json::Value>,
6360    /// `Internal` Whether the organization has enabled Linear Agent.
6361    pub linear_agent_enabled: Option<bool>,
6362    /// `DEPRECATED` Which day count to use for SLA calculations.
6363    pub sla_day_count: Option<SLADayCountType>,
6364    /// `DEPRECATED` The frequency at which to prompt for project updates.
6365    pub project_updates_reminder_frequency: Option<ProjectUpdateReminderFrequency>,
6366    /// `INTERNAL` Permitted AI providers.
6367    pub allowed_ai_providers: Option<Vec<String>>,
6368    /// Users associated with the organization.
6369    pub users: Option<Box<UserConnection>>,
6370    /// Teams associated with the organization.
6371    pub teams: Option<Box<TeamConnection>>,
6372    /// The organization's project statuses.
6373    pub project_statuses: Option<Box<Vec<ProjectStatus>>>,
6374    /// Integrations associated with the organization.
6375    pub integrations: Option<Box<IntegrationConnection>>,
6376    /// The Slack integration used for auto-creating project channels.
6377    pub slack_project_channel_integration: Option<Box<Integration>>,
6378    /// The prefix used for auto-created Slack project channels.
6379    pub slack_project_channel_prefix: Option<String>,
6380    /// The organization's subscription to a paid plan.
6381    pub subscription: Option<Box<PaidSubscription>>,
6382    /// Number of active users in the organization.
6383    pub user_count: Option<i64>,
6384    /// Aproximate number of issues in the organization, including archived ones.
6385    pub created_issue_count: Option<i64>,
6386    /// Templates associated with the organization.
6387    pub templates: Option<Box<TemplateConnection>>,
6388    /// Labels associated with the organization.
6389    pub labels: Option<Box<IssueLabelConnection>>,
6390    /// Project labels associated with the organization.
6391    pub project_labels: Option<Box<ProjectLabelConnection>>,
6392    /// Number of customers in the organization.
6393    pub customer_count: Option<i64>,
6394    /// Whether the organization is using Customers.
6395    pub customers_enabled: Option<bool>,
6396    /// `DEPRECATED` Whether member users are allowed to send invites.
6397    pub allow_members_to_invite: Option<bool>,
6398    /// `DEPRECATED` Whether team creation is restricted to admins.
6399    pub restrict_team_creation_to_admins: Option<bool>,
6400    /// `DEPRECATED` Whether workspace label creation, update, and deletion is restricted to admins.
6401    pub restrict_label_management_to_admins: Option<bool>,
6402}
6403impl GraphQLFields for Organization {
6404    type FullType = Self;
6405    fn selection() -> String {
6406        "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"
6407            .into()
6408    }
6409}
6410#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6411#[serde(rename_all = "camelCase", default)]
6412pub struct OrganizationAcceptedOrExpiredInviteDetailsPayload {
6413    /// The status of the invite.
6414    pub status: Option<OrganizationInviteStatus>,
6415}
6416impl GraphQLFields for OrganizationAcceptedOrExpiredInviteDetailsPayload {
6417    type FullType = Self;
6418    fn selection() -> String {
6419        "status".into()
6420    }
6421}
6422#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6423#[serde(rename_all = "camelCase", default)]
6424pub struct OrganizationCancelDeletePayload {
6425    /// Whether the operation was successful.
6426    pub success: Option<bool>,
6427}
6428impl GraphQLFields for OrganizationCancelDeletePayload {
6429    type FullType = Self;
6430    fn selection() -> String {
6431        "success".into()
6432    }
6433}
6434#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6435#[serde(rename_all = "camelCase", default)]
6436pub struct OrganizationDeletePayload {
6437    /// Whether the operation was successful.
6438    pub success: Option<bool>,
6439}
6440impl GraphQLFields for OrganizationDeletePayload {
6441    type FullType = Self;
6442    fn selection() -> String {
6443        "success".into()
6444    }
6445}
6446/// Defines the use of a domain by an organization.
6447#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6448#[serde(rename_all = "camelCase", default)]
6449pub struct OrganizationDomain {
6450    /// The unique identifier of the entity.
6451    pub id: Option<String>,
6452    /// The time at which the entity was created.
6453    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6454    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6455    /// been updated after creation.
6456    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6457    /// The time at which the entity was archived. Null if the entity has not been archived.
6458    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6459    /// The identity provider the domain belongs to.
6460    pub identity_provider: Option<Box<IdentityProvider>>,
6461    /// Domain name.
6462    pub name: Option<String>,
6463    /// Is this domain verified.
6464    pub verified: Option<bool>,
6465    /// E-mail used to verify this domain.
6466    pub verification_email: Option<String>,
6467    /// The user who added the domain.
6468    pub creator: Option<Box<User>>,
6469    /// What type of auth is the domain used for.
6470    pub auth_type: Option<OrganizationDomainAuthType>,
6471    /// Whether the domains was claimed by the organization through DNS verification.
6472    pub claimed: Option<bool>,
6473    /// Prevent users with this domain to create new workspaces.
6474    pub disable_organization_creation: Option<bool>,
6475}
6476impl GraphQLFields for OrganizationDomain {
6477    type FullType = Self;
6478    fn selection() -> String {
6479        "id createdAt updatedAt archivedAt name verified verificationEmail authType claimed disableOrganizationCreation"
6480            .into()
6481    }
6482}
6483/// `INTERNAL` Domain claim request response.
6484#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6485#[serde(rename_all = "camelCase", default)]
6486pub struct OrganizationDomainClaimPayload {
6487    /// String to put into DNS for verification.
6488    pub verification_string: Option<String>,
6489}
6490impl GraphQLFields for OrganizationDomainClaimPayload {
6491    type FullType = Self;
6492    fn selection() -> String {
6493        "verificationString".into()
6494    }
6495}
6496/// `INTERNAL` Organization domain operation response.
6497#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6498#[serde(rename_all = "camelCase", default)]
6499pub struct OrganizationDomainPayload {
6500    /// The identifier of the last sync operation.
6501    pub last_sync_id: Option<f64>,
6502    /// The organization domain that was created or updated.
6503    pub organization_domain: Option<Box<OrganizationDomain>>,
6504    /// Whether the operation was successful.
6505    pub success: Option<bool>,
6506}
6507impl GraphQLFields for OrganizationDomainPayload {
6508    type FullType = Self;
6509    fn selection() -> String {
6510        "lastSyncId success".into()
6511    }
6512}
6513/// `INTERNAL` Organization domain operation response.
6514#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6515#[serde(rename_all = "camelCase", default)]
6516pub struct OrganizationDomainSimplePayload {
6517    /// Whether the operation was successful.
6518    pub success: Option<bool>,
6519}
6520impl GraphQLFields for OrganizationDomainSimplePayload {
6521    type FullType = Self;
6522    fn selection() -> String {
6523        "success".into()
6524    }
6525}
6526#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6527#[serde(rename_all = "camelCase", default)]
6528pub struct OrganizationExistsPayload {
6529    /// Whether the operation was successful.
6530    pub success: Option<bool>,
6531    /// Whether the organization exists.
6532    pub exists: Option<bool>,
6533}
6534impl GraphQLFields for OrganizationExistsPayload {
6535    type FullType = Self;
6536    fn selection() -> String {
6537        "success exists".into()
6538    }
6539}
6540/// An invitation to the organization that has been sent via email.
6541#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6542#[serde(rename_all = "camelCase", default)]
6543pub struct OrganizationInvite {
6544    /// The unique identifier of the entity.
6545    pub id: Option<String>,
6546    /// The time at which the entity was created.
6547    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6548    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6549    /// been updated after creation.
6550    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6551    /// The time at which the entity was archived. Null if the entity has not been archived.
6552    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6553    /// The invitees email address.
6554    pub email: Option<String>,
6555    /// The user role that the invitee will receive upon accepting the invite.
6556    pub role: Option<UserRoleType>,
6557    /// The invite was sent to external address.
6558    pub external: Option<bool>,
6559    /// The time at which the invite was accepted. Null, if the invite hasn't been accepted.
6560    pub accepted_at: Option<chrono::DateTime<chrono::Utc>>,
6561    /// The time at which the invite will be expiring. Null, if the invite shouldn't expire.
6562    pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
6563    /// Extra metadata associated with the organization invite.
6564    pub metadata: Option<serde_json::Value>,
6565    /// The user who created the invitation.
6566    pub inviter: Option<Box<User>>,
6567    /// The user who has accepted the invite. Null, if the invite hasn't been accepted.
6568    pub invitee: Option<Box<User>>,
6569    /// The organization that the invite is associated with.
6570    pub organization: Option<Box<Organization>>,
6571}
6572impl GraphQLFields for OrganizationInvite {
6573    type FullType = Self;
6574    fn selection() -> String {
6575        "id createdAt updatedAt archivedAt email role external acceptedAt expiresAt metadata".into()
6576    }
6577}
6578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6579#[serde(rename_all = "camelCase", default)]
6580pub struct OrganizationInviteConnection {
6581    pub edges: Option<Box<Vec<OrganizationInviteEdge>>>,
6582    pub nodes: Option<Box<Vec<OrganizationInvite>>>,
6583    pub page_info: Option<Box<PageInfo>>,
6584}
6585impl GraphQLFields for OrganizationInviteConnection {
6586    type FullType = Self;
6587    fn selection() -> String {
6588        "".into()
6589    }
6590}
6591#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6592#[serde(rename_all = "camelCase", default)]
6593pub struct OrganizationInviteEdge {
6594    pub node: Option<Box<OrganizationInvite>>,
6595    /// Used in `before` and `after` args
6596    pub cursor: Option<String>,
6597}
6598impl GraphQLFields for OrganizationInviteEdge {
6599    type FullType = Self;
6600    fn selection() -> String {
6601        "cursor".into()
6602    }
6603}
6604#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6605#[serde(rename_all = "camelCase", default)]
6606pub struct OrganizationInviteFullDetailsPayload {
6607    /// The status of the invite.
6608    pub status: Option<OrganizationInviteStatus>,
6609    /// The name of the inviter.
6610    pub inviter: Option<String>,
6611    /// The email of the invitee.
6612    pub email: Option<String>,
6613    /// What user role the invite should grant.
6614    pub role: Option<UserRoleType>,
6615    /// When the invite was created.
6616    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6617    /// Name of the workspace the invite is for.
6618    pub organization_name: Option<String>,
6619    /// ID of the workspace the invite is for.
6620    pub organization_id: Option<String>,
6621    /// URL of the workspace logo the invite is for.
6622    pub organization_logo_url: Option<String>,
6623    /// Whether the invite has already been accepted.
6624    pub accepted: Option<bool>,
6625    /// Whether the invite has expired.
6626    pub expired: Option<bool>,
6627    /// Allowed authentication providers, empty array means all are allowed.
6628    pub allowed_auth_services: Option<Vec<String>>,
6629}
6630impl GraphQLFields for OrganizationInviteFullDetailsPayload {
6631    type FullType = Self;
6632    fn selection() -> String {
6633        "status inviter email role createdAt organizationName organizationId organizationLogoUrl accepted expired allowedAuthServices"
6634            .into()
6635    }
6636}
6637#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6638#[serde(rename_all = "camelCase", default)]
6639pub struct OrganizationInvitePayload {
6640    /// The identifier of the last sync operation.
6641    pub last_sync_id: Option<f64>,
6642    /// The organization invite that was created or updated.
6643    pub organization_invite: Option<Box<OrganizationInvite>>,
6644    /// Whether the operation was successful.
6645    pub success: Option<bool>,
6646}
6647impl GraphQLFields for OrganizationInvitePayload {
6648    type FullType = Self;
6649    fn selection() -> String {
6650        "lastSyncId success".into()
6651    }
6652}
6653#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6654#[serde(rename_all = "camelCase", default)]
6655pub struct OrganizationIpRestriction {
6656    /// IP range in CIDR format.
6657    pub range: Option<String>,
6658    /// Restriction type.
6659    pub r#type: Option<String>,
6660    /// Optional restriction description.
6661    pub description: Option<String>,
6662    /// Whether the restriction is enabled.
6663    pub enabled: Option<bool>,
6664}
6665impl GraphQLFields for OrganizationIpRestriction {
6666    type FullType = Self;
6667    fn selection() -> String {
6668        "range type description enabled".into()
6669    }
6670}
6671#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6672#[serde(rename_all = "camelCase", default)]
6673pub struct OrganizationMeta {
6674    /// The region the organization is hosted in.
6675    pub region: Option<String>,
6676    /// Allowed authentication providers, empty array means all are allowed.
6677    pub allowed_auth_services: Option<Vec<String>>,
6678}
6679impl GraphQLFields for OrganizationMeta {
6680    type FullType = Self;
6681    fn selection() -> String {
6682        "region allowedAuthServices".into()
6683    }
6684}
6685#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6686#[serde(rename_all = "camelCase", default)]
6687pub struct OrganizationPayload {
6688    /// The identifier of the last sync operation.
6689    pub last_sync_id: Option<f64>,
6690    /// The organization that was created or updated.
6691    pub organization: Option<Box<Organization>>,
6692    /// Whether the operation was successful.
6693    pub success: Option<bool>,
6694}
6695impl GraphQLFields for OrganizationPayload {
6696    type FullType = Self;
6697    fn selection() -> String {
6698        "lastSyncId success".into()
6699    }
6700}
6701#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6702#[serde(rename_all = "camelCase", default)]
6703pub struct OrganizationStartTrialPayload {
6704    /// Whether the operation was successful.
6705    pub success: Option<bool>,
6706}
6707impl GraphQLFields for OrganizationStartTrialPayload {
6708    type FullType = Self;
6709    fn selection() -> String {
6710        "success".into()
6711    }
6712}
6713#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6714#[serde(rename_all = "camelCase", default)]
6715pub struct PageInfo {
6716    /// Indicates if there are more results when paginating backward.
6717    pub has_previous_page: Option<bool>,
6718    /// Indicates if there are more results when paginating forward.
6719    pub has_next_page: Option<bool>,
6720    /// Cursor representing the first result in the paginated results.
6721    pub start_cursor: Option<String>,
6722    /// Cursor representing the last result in the paginated results.
6723    pub end_cursor: Option<String>,
6724}
6725impl GraphQLFields for PageInfo {
6726    type FullType = Self;
6727    fn selection() -> String {
6728        "hasPreviousPage hasNextPage startCursor endCursor".into()
6729    }
6730}
6731/// The paid subscription of an organization.
6732#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6733#[serde(rename_all = "camelCase", default)]
6734pub struct PaidSubscription {
6735    /// The unique identifier of the entity.
6736    pub id: Option<String>,
6737    /// The time at which the entity was created.
6738    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6739    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6740    /// been updated after creation.
6741    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6742    /// The time at which the entity was archived. Null if the entity has not been archived.
6743    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6744    /// The subscription type.
6745    pub r#type: Option<String>,
6746    /// The number of seats in the subscription.
6747    pub seats: Option<f64>,
6748    /// The minimum number of seats that will be billed in the subscription.
6749    pub seats_minimum: Option<f64>,
6750    /// The maximum number of seats that will be billed in the subscription.
6751    pub seats_maximum: Option<f64>,
6752    /// The creator of the subscription.
6753    pub creator: Option<Box<User>>,
6754    /// The organization that the subscription is associated with.
6755    pub organization: Option<Box<Organization>>,
6756    /// The collection method for this subscription, either automatically charged or invoiced.
6757    pub collection_method: Option<String>,
6758    /// The date the subscription was canceled, if any.
6759    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
6760    /// The date the subscription is scheduled to be canceled, if any.
6761    pub cancel_at: Option<chrono::DateTime<chrono::Utc>>,
6762    /// The subscription type of a pending change. Null if no change pending.
6763    pub pending_change_type: Option<String>,
6764    /// The date the subscription will be billed next.
6765    pub next_billing_at: Option<chrono::DateTime<chrono::Utc>>,
6766}
6767impl GraphQLFields for PaidSubscription {
6768    type FullType = Self;
6769    fn selection() -> String {
6770        "id createdAt updatedAt archivedAt type seats seatsMinimum seatsMaximum collectionMethod canceledAt cancelAt pendingChangeType nextBillingAt"
6771            .into()
6772    }
6773}
6774#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6775#[serde(rename_all = "camelCase", default)]
6776pub struct PasskeyLoginStartResponse {
6777    pub success: Option<bool>,
6778    pub options: Option<serde_json::Value>,
6779}
6780impl GraphQLFields for PasskeyLoginStartResponse {
6781    type FullType = Self;
6782    fn selection() -> String {
6783        "success options".into()
6784    }
6785}
6786/// `Internal` A generic post.
6787#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6788#[serde(rename_all = "camelCase", default)]
6789pub struct Post {
6790    /// The unique identifier of the entity.
6791    pub id: Option<String>,
6792    /// The time at which the entity was created.
6793    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6794    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6795    /// been updated after creation.
6796    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6797    /// The time at which the entity was archived. Null if the entity has not been archived.
6798    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6799    /// The update content in markdown format.
6800    pub body: Option<String>,
6801    /// `Internal` The content of the post as a Prosemirror document.
6802    pub body_data: Option<String>,
6803    /// `Internal` The written update data used to compose the written post.
6804    pub written_summary_data: Option<serde_json::Value>,
6805    /// The update content summarized for audio consumption.
6806    pub audio_summary: Option<String>,
6807    /// The post's title.
6808    pub title: Option<String>,
6809    /// The post's unique URL slug.
6810    pub slug_id: Option<String>,
6811    /// The user who wrote the post.
6812    pub creator: Option<Box<User>>,
6813    /// The time the post was edited.
6814    pub edited_at: Option<chrono::DateTime<chrono::Utc>>,
6815    /// Emoji reaction summary, grouped by emoji type.
6816    pub reaction_data: Option<serde_json::Value>,
6817    /// A URL of the TTL (text-to-language) for the body.
6818    pub ttl_url: Option<String>,
6819    /// The user that the post is associated with.
6820    pub user: Option<Box<User>>,
6821    /// The team that the post is associated with.
6822    pub team: Option<Box<Team>>,
6823    /// The type of the post.
6824    pub r#type: Option<PostType>,
6825    /// The log id of the ai response.
6826    pub eval_log_id: Option<String>,
6827    /// Schedule used to create a post summary.
6828    pub feed_summary_schedule_at_create: Option<FeedSummarySchedule>,
6829    /// Reactions associated with the post.
6830    pub reactions: Option<Box<Vec<Reaction>>>,
6831    /// Comments associated with the post.
6832    pub comments: Option<Box<CommentConnection>>,
6833    /// A URL to the generated audio for the Post.
6834    pub audio_summary_url: Option<String>,
6835    /// Number of comments associated with the post.
6836    pub comment_count: Option<i64>,
6837}
6838impl GraphQLFields for Post {
6839    type FullType = Self;
6840    fn selection() -> String {
6841        "id createdAt updatedAt archivedAt body bodyData writtenSummaryData audioSummary title slugId editedAt reactionData ttlUrl type evalLogId feedSummaryScheduleAtCreate audioSummaryUrl commentCount"
6842            .into()
6843    }
6844}
6845/// A post related notification.
6846#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6847#[serde(rename_all = "camelCase", default)]
6848pub struct PostNotification {
6849    /// Related comment ID. Null if the notification is not related to a comment.
6850    pub comment_id: Option<String>,
6851    /// Related parent comment ID. Null if the notification is not related to a comment.
6852    pub parent_comment_id: Option<String>,
6853    /// Name of the reaction emoji related to the notification.
6854    pub reaction_emoji: Option<String>,
6855    /// The unique identifier of the entity.
6856    pub id: Option<String>,
6857    /// The time at which the entity was created.
6858    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6859    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6860    /// been updated after creation.
6861    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6862    /// The time at which the entity was archived. Null if the entity has not been archived.
6863    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6864    /// Notification type.
6865    pub r#type: Option<String>,
6866    /// The user that caused the notification.
6867    pub actor: Option<Box<User>>,
6868    /// The external user that caused the notification.
6869    pub external_user_actor: Option<Box<ExternalUser>>,
6870    /// The user that received the notification.
6871    pub user: Option<Box<User>>,
6872    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
6873    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
6874    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
6875    /// reminder has been sent.
6876    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
6877    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
6878    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
6879    /// The time at which a notification was unsnoozed..
6880    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
6881    /// The category of the notification.
6882    pub category: Option<NotificationCategory>,
6883    /// `Internal` URL to the target of the notification.
6884    pub url: Option<String>,
6885    /// `Internal` Inbox URL for the notification.
6886    pub inbox_url: Option<String>,
6887    /// `Internal` Notification title.
6888    pub title: Option<String>,
6889    /// `Internal` Notification subtitle.
6890    pub subtitle: Option<String>,
6891    /// `Internal` If notification actor was Linear.
6892    pub is_linear_actor: Option<bool>,
6893    /// `Internal` Notification avatar URL.
6894    pub actor_avatar_url: Option<String>,
6895    /// `Internal` Notification actor initials if avatar is not available.
6896    pub actor_initials: Option<String>,
6897    /// `Internal` Notification actor initials if avatar is not available.
6898    pub actor_avatar_color: Option<String>,
6899    /// `Internal` Issue's status type for issue notifications.
6900    pub issue_status_type: Option<String>,
6901    /// `Internal` Project update health for new updates.
6902    pub project_update_health: Option<String>,
6903    /// `Internal` Initiative update health for new updates.
6904    pub initiative_update_health: Option<String>,
6905    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
6906    pub grouping_key: Option<String>,
6907    /// `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`.
6908    pub grouping_priority: Option<f64>,
6909    /// The bot that caused the notification.
6910    pub bot_actor: Option<Box<ActorBot>>,
6911    /// Related post ID.
6912    pub post_id: Option<String>,
6913}
6914impl GraphQLFields for PostNotification {
6915    type FullType = Self;
6916    fn selection() -> String {
6917        "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"
6918            .into()
6919    }
6920}
6921/// A project.
6922#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6923#[serde(rename_all = "camelCase", default)]
6924pub struct Project {
6925    /// The unique identifier of the entity.
6926    pub id: Option<String>,
6927    /// The time at which the entity was created.
6928    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6929    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
6930    /// been updated after creation.
6931    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
6932    /// The time at which the entity was archived. Null if the entity has not been archived.
6933    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
6934    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
6935    pub update_reminder_frequency_in_weeks: Option<f64>,
6936    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
6937    pub update_reminder_frequency: Option<f64>,
6938    /// The resolution of the reminder frequency.
6939    pub frequency_resolution: Option<FrequencyResolutionType>,
6940    /// The day at which to prompt for updates.
6941    pub update_reminders_day: Option<Day>,
6942    /// The hour at which to prompt for updates.
6943    pub update_reminders_hour: Option<f64>,
6944    /// The project's name.
6945    pub name: Option<String>,
6946    /// The project's description.
6947    pub description: Option<String>,
6948    /// The project's unique URL slug.
6949    pub slug_id: Option<String>,
6950    /// The icon of the project.
6951    pub icon: Option<String>,
6952    /// The project's color.
6953    pub color: Option<String>,
6954    /// The status that the project is associated with.
6955    pub status: Option<Box<ProjectStatus>>,
6956    /// The user who created the project.
6957    pub creator: Option<Box<User>>,
6958    /// The project lead.
6959    pub lead: Option<Box<User>>,
6960    /// `Internal` Facets associated with the project.
6961    pub facets: Option<Box<Vec<Facet>>>,
6962    /// The time until which project update reminders are paused.
6963    pub project_update_reminders_paused_until_at: Option<chrono::DateTime<chrono::Utc>>,
6964    /// The estimated start date of the project.
6965    pub start_date: Option<chrono::NaiveDate>,
6966    /// The resolution of the project's start date.
6967    pub start_date_resolution: Option<DateResolutionType>,
6968    /// The estimated completion date of the project.
6969    pub target_date: Option<chrono::NaiveDate>,
6970    /// The resolution of the project's estimated completion date.
6971    pub target_date_resolution: Option<DateResolutionType>,
6972    /// The time at which the project was moved into started state.
6973    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
6974    /// The time at which the project was moved into completed state.
6975    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
6976    /// The time at which the project was moved into canceled state.
6977    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
6978    /// The time at which the project was automatically archived by the auto pruning process.
6979    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
6980    /// A flag that indicates whether the project is in the trash bin.
6981    pub trashed: Option<bool>,
6982    /// The sort order for the project within the organization.
6983    pub sort_order: Option<f64>,
6984    /// The sort order for the project within the organization, when ordered by priority.
6985    pub priority_sort_order: Option<f64>,
6986    /// The project was created based on this issue.
6987    pub converted_from_issue: Option<Box<Issue>>,
6988    /// The last template that was applied to this project.
6989    pub last_applied_template: Option<Box<Template>>,
6990    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
6991    pub priority: Option<i64>,
6992    /// The last project update posted for this project.
6993    pub last_update: Option<Box<ProjectUpdate>>,
6994    /// The health of the project.
6995    pub health: Option<ProjectUpdateHealthType>,
6996    /// The time at which the project health was updated.
6997    pub health_updated_at: Option<chrono::DateTime<chrono::Utc>>,
6998    /// The total number of issues in the project after each week.
6999    pub issue_count_history: Option<Vec<f64>>,
7000    /// The number of completed issues in the project after each week.
7001    pub completed_issue_count_history: Option<Vec<f64>>,
7002    /// The total number of estimation points after each week.
7003    pub scope_history: Option<Vec<f64>>,
7004    /// The number of completed estimation points after each week.
7005    pub completed_scope_history: Option<Vec<f64>>,
7006    /// The number of in progress estimation points after each week.
7007    pub in_progress_scope_history: Option<Vec<f64>>,
7008    /// `INTERNAL` The progress history of the project.
7009    pub progress_history: Option<serde_json::Value>,
7010    /// `INTERNAL` The current progress of the project.
7011    pub current_progress: Option<serde_json::Value>,
7012    /// Whether to send new issue notifications to Slack.
7013    pub slack_new_issue: Option<bool>,
7014    /// Whether to send new issue comment notifications to Slack.
7015    pub slack_issue_comments: Option<bool>,
7016    /// Whether to send new issue status updates to Slack.
7017    pub slack_issue_statuses: Option<bool>,
7018    /// Id of the labels associated with this project.
7019    pub label_ids: Option<Vec<String>>,
7020    /// The user's favorite associated with this project.
7021    pub favorite: Option<Box<Favorite>>,
7022    /// Project URL.
7023    pub url: Option<String>,
7024    /// Initiatives that this project belongs to.
7025    pub initiatives: Option<Box<InitiativeConnection>>,
7026    /// Associations of this project to parent initiatives.
7027    pub initiative_to_projects: Option<Box<InitiativeToProjectConnection>>,
7028    /// Teams associated with this project.
7029    pub teams: Option<Box<TeamConnection>>,
7030    /// Users that are members of the project.
7031    pub members: Option<Box<UserConnection>>,
7032    /// Project updates associated with the project.
7033    pub project_updates: Option<Box<ProjectUpdateConnection>>,
7034    /// Documents associated with the project.
7035    pub documents: Option<Box<DocumentConnection>>,
7036    /// Milestones associated with the project.
7037    pub project_milestones: Option<Box<ProjectMilestoneConnection>>,
7038    /// Issues associated with the project.
7039    pub issues: Option<Box<IssueConnection>>,
7040    /// External links associated with the project.
7041    pub external_links: Option<Box<EntityExternalLinkConnection>>,
7042    /// Attachments associated with the project.
7043    pub attachments: Option<Box<ProjectAttachmentConnection>>,
7044    /// History entries associated with the project.
7045    pub history: Option<Box<ProjectHistoryConnection>>,
7046    /// Labels associated with this project.
7047    pub labels: Option<Box<ProjectLabelConnection>>,
7048    /// The overall progress of the project. This is the (completed estimate points + 0.25 * in progress estimate points) / total estimate points.
7049    pub progress: Option<f64>,
7050    /// The overall scope (total estimate points) of the project.
7051    pub scope: Option<f64>,
7052    /// Settings for all integrations associated with that project.
7053    pub integrations_settings: Option<Box<IntegrationsSettings>>,
7054    /// The project's content in markdown format.
7055    pub content: Option<String>,
7056    /// `Internal` The project's content as YJS state.
7057    pub content_state: Option<String>,
7058    /// The content of the project description.
7059    pub document_content: Option<Box<DocumentContent>>,
7060    /// Comments associated with the project overview.
7061    pub comments: Option<Box<CommentConnection>>,
7062    /// Relations associated with this project.
7063    pub relations: Option<Box<ProjectRelationConnection>>,
7064    /// Inverse relations associated with this project.
7065    pub inverse_relations: Option<Box<ProjectRelationConnection>>,
7066    /// Customer needs associated with the project.
7067    pub needs: Option<Box<CustomerNeedConnection>>,
7068    /// `DEPRECATED` The type of the state.
7069    pub state: Option<String>,
7070    /// The priority of the project as a label.
7071    pub priority_label: Option<String>,
7072}
7073impl GraphQLFields for Project {
7074    type FullType = Self;
7075    fn selection() -> String {
7076        "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"
7077            .into()
7078    }
7079}
7080/// A generic payload return from entity archive mutations.
7081#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7082#[serde(rename_all = "camelCase", default)]
7083pub struct ProjectArchivePayload {
7084    /// The identifier of the last sync operation.
7085    pub last_sync_id: Option<f64>,
7086    /// Whether the operation was successful.
7087    pub success: Option<bool>,
7088    /// The archived/unarchived entity. Null if entity was deleted.
7089    pub entity: Option<Box<Project>>,
7090}
7091impl GraphQLFields for ProjectArchivePayload {
7092    type FullType = Self;
7093    fn selection() -> String {
7094        "lastSyncId success".into()
7095    }
7096}
7097/// Project attachment
7098#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7099#[serde(rename_all = "camelCase", default)]
7100pub struct ProjectAttachment {
7101    /// The unique identifier of the entity.
7102    pub id: Option<String>,
7103    /// The time at which the entity was created.
7104    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7105    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7106    /// been updated after creation.
7107    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7108    /// The time at which the entity was archived. Null if the entity has not been archived.
7109    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7110    /// Title of the attachment.
7111    pub title: Option<String>,
7112    /// Optional subtitle of the attachment
7113    pub subtitle: Option<String>,
7114    /// URL of the attachment.
7115    pub url: Option<String>,
7116    /// The creator of the attachment.
7117    pub creator: Option<Box<User>>,
7118    /// Custom metadata related to the attachment.
7119    pub metadata: Option<serde_json::Value>,
7120    /// Information about the external source which created the attachment.
7121    pub source: Option<serde_json::Value>,
7122    /// An accessor helper to source.type, defines the source type of the attachment.
7123    pub source_type: Option<String>,
7124    /// The project this attachment belongs to.
7125    pub project: Option<Box<Project>>,
7126    /// The body data of the attachment, if any.
7127    pub body_data: Option<String>,
7128}
7129impl GraphQLFields for ProjectAttachment {
7130    type FullType = Self;
7131    fn selection() -> String {
7132        "id createdAt updatedAt archivedAt title subtitle url metadata source sourceType bodyData"
7133            .into()
7134    }
7135}
7136#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7137#[serde(rename_all = "camelCase", default)]
7138pub struct ProjectAttachmentConnection {
7139    pub edges: Option<Box<Vec<ProjectAttachmentEdge>>>,
7140    pub nodes: Option<Box<Vec<ProjectAttachment>>>,
7141    pub page_info: Option<Box<PageInfo>>,
7142}
7143impl GraphQLFields for ProjectAttachmentConnection {
7144    type FullType = Self;
7145    fn selection() -> String {
7146        "".into()
7147    }
7148}
7149#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7150#[serde(rename_all = "camelCase", default)]
7151pub struct ProjectAttachmentEdge {
7152    pub node: Option<Box<ProjectAttachment>>,
7153    /// Used in `before` and `after` args
7154    pub cursor: Option<String>,
7155}
7156impl GraphQLFields for ProjectAttachmentEdge {
7157    type FullType = Self;
7158    fn selection() -> String {
7159        "cursor".into()
7160    }
7161}
7162#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7163#[serde(rename_all = "camelCase", default)]
7164pub struct ProjectConnection {
7165    pub edges: Option<Box<Vec<ProjectEdge>>>,
7166    pub nodes: Option<Box<Vec<Project>>>,
7167    pub page_info: Option<Box<PageInfo>>,
7168}
7169impl GraphQLFields for ProjectConnection {
7170    type FullType = Self;
7171    fn selection() -> String {
7172        "".into()
7173    }
7174}
7175#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7176#[serde(rename_all = "camelCase", default)]
7177pub struct ProjectEdge {
7178    pub node: Option<Box<Project>>,
7179    /// Used in `before` and `after` args
7180    pub cursor: Option<String>,
7181}
7182impl GraphQLFields for ProjectEdge {
7183    type FullType = Self;
7184    fn selection() -> String {
7185        "cursor".into()
7186    }
7187}
7188#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7189#[serde(rename_all = "camelCase", default)]
7190pub struct ProjectFilterSuggestionPayload {
7191    /// The json filter that is suggested.
7192    pub filter: Option<serde_json::Value>,
7193    /// The log id of the prompt, that created this filter.
7194    pub log_id: Option<String>,
7195}
7196impl GraphQLFields for ProjectFilterSuggestionPayload {
7197    type FullType = Self;
7198    fn selection() -> String {
7199        "filter logId".into()
7200    }
7201}
7202/// An history associated with a project.
7203#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7204#[serde(rename_all = "camelCase", default)]
7205pub struct ProjectHistory {
7206    /// The unique identifier of the entity.
7207    pub id: Option<String>,
7208    /// The time at which the entity was created.
7209    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7210    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7211    /// been updated after creation.
7212    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7213    /// The time at which the entity was archived. Null if the entity has not been archived.
7214    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7215    /// The events that happened while recording that history.
7216    pub entries: Option<serde_json::Value>,
7217    /// The project that the history is associated with.
7218    pub project: Option<Box<Project>>,
7219}
7220impl GraphQLFields for ProjectHistory {
7221    type FullType = Self;
7222    fn selection() -> String {
7223        "id createdAt updatedAt archivedAt entries".into()
7224    }
7225}
7226#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7227#[serde(rename_all = "camelCase", default)]
7228pub struct ProjectHistoryConnection {
7229    pub edges: Option<Box<Vec<ProjectHistoryEdge>>>,
7230    pub nodes: Option<Box<Vec<ProjectHistory>>>,
7231    pub page_info: Option<Box<PageInfo>>,
7232}
7233impl GraphQLFields for ProjectHistoryConnection {
7234    type FullType = Self;
7235    fn selection() -> String {
7236        "".into()
7237    }
7238}
7239#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7240#[serde(rename_all = "camelCase", default)]
7241pub struct ProjectHistoryEdge {
7242    pub node: Option<Box<ProjectHistory>>,
7243    /// Used in `before` and `after` args
7244    pub cursor: Option<String>,
7245}
7246impl GraphQLFields for ProjectHistoryEdge {
7247    type FullType = Self;
7248    fn selection() -> String {
7249        "cursor".into()
7250    }
7251}
7252/// Labels that can be associated with projects.
7253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7254#[serde(rename_all = "camelCase", default)]
7255pub struct ProjectLabel {
7256    /// The unique identifier of the entity.
7257    pub id: Option<String>,
7258    /// The time at which the entity was created.
7259    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7260    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7261    /// been updated after creation.
7262    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7263    /// The time at which the entity was archived. Null if the entity has not been archived.
7264    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7265    /// The label's name.
7266    pub name: Option<String>,
7267    /// The label's description.
7268    pub description: Option<String>,
7269    /// The label's color as a HEX string.
7270    pub color: Option<String>,
7271    /// Whether the label is a group.
7272    pub is_group: Option<bool>,
7273    /// The date when the label was last applied to an issue or project.
7274    pub last_applied_at: Option<chrono::DateTime<chrono::Utc>>,
7275    /// `Internal` When the label was retired.
7276    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
7277    pub organization: Option<Box<Organization>>,
7278    /// The user who created the label.
7279    pub creator: Option<Box<User>>,
7280    /// The user who retired the label.
7281    pub retired_by: Option<Box<User>>,
7282    /// The parent label.
7283    pub parent: Option<Box<ProjectLabel>>,
7284    /// Projects associated with the label.
7285    pub projects: Option<Box<ProjectConnection>>,
7286    /// Children of the label.
7287    pub children: Option<Box<ProjectLabelConnection>>,
7288}
7289impl GraphQLFields for ProjectLabel {
7290    type FullType = Self;
7291    fn selection() -> String {
7292        "id createdAt updatedAt archivedAt name description color isGroup lastAppliedAt retiredAt"
7293            .into()
7294    }
7295}
7296#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7297#[serde(rename_all = "camelCase", default)]
7298pub struct ProjectLabelConnection {
7299    pub edges: Option<Box<Vec<ProjectLabelEdge>>>,
7300    pub nodes: Option<Box<Vec<ProjectLabel>>>,
7301    pub page_info: Option<Box<PageInfo>>,
7302}
7303impl GraphQLFields for ProjectLabelConnection {
7304    type FullType = Self;
7305    fn selection() -> String {
7306        "".into()
7307    }
7308}
7309#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7310#[serde(rename_all = "camelCase", default)]
7311pub struct ProjectLabelEdge {
7312    pub node: Option<Box<ProjectLabel>>,
7313    /// Used in `before` and `after` args
7314    pub cursor: Option<String>,
7315}
7316impl GraphQLFields for ProjectLabelEdge {
7317    type FullType = Self;
7318    fn selection() -> String {
7319        "cursor".into()
7320    }
7321}
7322#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7323#[serde(rename_all = "camelCase", default)]
7324pub struct ProjectLabelPayload {
7325    /// The identifier of the last sync operation.
7326    pub last_sync_id: Option<f64>,
7327    /// The label that was created or updated.
7328    pub project_label: Option<Box<ProjectLabel>>,
7329    /// Whether the operation was successful.
7330    pub success: Option<bool>,
7331}
7332impl GraphQLFields for ProjectLabelPayload {
7333    type FullType = Self;
7334    fn selection() -> String {
7335        "lastSyncId success".into()
7336    }
7337}
7338/// A milestone for a project.
7339#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7340#[serde(rename_all = "camelCase", default)]
7341pub struct ProjectMilestone {
7342    /// The unique identifier of the entity.
7343    pub id: Option<String>,
7344    /// The time at which the entity was created.
7345    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7346    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7347    /// been updated after creation.
7348    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7349    /// The time at which the entity was archived. Null if the entity has not been archived.
7350    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7351    /// The name of the project milestone.
7352    pub name: Option<String>,
7353    /// The content of the project milestone description.
7354    pub document_content: Option<Box<DocumentContent>>,
7355    /// The planned completion date of the milestone.
7356    pub target_date: Option<chrono::NaiveDate>,
7357    /// The project of the milestone.
7358    pub project: Option<Box<Project>>,
7359    /// `Internal` The progress history of the project milestone.
7360    pub progress_history: Option<serde_json::Value>,
7361    /// `Internal` The current progress of the project milestone.
7362    pub current_progress: Option<serde_json::Value>,
7363    /// The order of the milestone in relation to other milestones within a project.
7364    pub sort_order: Option<f64>,
7365    /// The project milestone's description in markdown format.
7366    pub description: Option<String>,
7367    /// The status of the project milestone.
7368    pub status: Option<ProjectMilestoneStatus>,
7369    /// The progress % of the project milestone.
7370    pub progress: Option<f64>,
7371    /// `Internal` The project milestone's description as YJS state.
7372    pub description_state: Option<String>,
7373    /// Issues associated with the project milestone.
7374    pub issues: Option<Box<IssueConnection>>,
7375}
7376impl GraphQLFields for ProjectMilestone {
7377    type FullType = Self;
7378    fn selection() -> String {
7379        "id createdAt updatedAt archivedAt name targetDate progressHistory currentProgress sortOrder description status progress"
7380            .into()
7381    }
7382}
7383#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7384#[serde(rename_all = "camelCase", default)]
7385pub struct ProjectMilestoneConnection {
7386    pub edges: Option<Box<Vec<ProjectMilestoneEdge>>>,
7387    pub nodes: Option<Box<Vec<ProjectMilestone>>>,
7388    pub page_info: Option<Box<PageInfo>>,
7389}
7390impl GraphQLFields for ProjectMilestoneConnection {
7391    type FullType = Self;
7392    fn selection() -> String {
7393        "".into()
7394    }
7395}
7396#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7397#[serde(rename_all = "camelCase", default)]
7398pub struct ProjectMilestoneEdge {
7399    pub node: Option<Box<ProjectMilestone>>,
7400    /// Used in `before` and `after` args
7401    pub cursor: Option<String>,
7402}
7403impl GraphQLFields for ProjectMilestoneEdge {
7404    type FullType = Self;
7405    fn selection() -> String {
7406        "cursor".into()
7407    }
7408}
7409#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7410#[serde(rename_all = "camelCase", default)]
7411pub struct ProjectMilestoneMoveIssueToTeam {
7412    /// The issue id in this relationship, you can use * as wildcard if all issues are being moved to the same team
7413    pub issue_id: Option<String>,
7414    /// The team id in this relationship
7415    pub team_id: Option<String>,
7416}
7417impl GraphQLFields for ProjectMilestoneMoveIssueToTeam {
7418    type FullType = Self;
7419    fn selection() -> String {
7420        "issueId teamId".into()
7421    }
7422}
7423#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7424#[serde(rename_all = "camelCase", default)]
7425pub struct ProjectMilestoneMovePayload {
7426    /// The identifier of the last sync operation.
7427    pub last_sync_id: Option<f64>,
7428    /// The project milestone that was created or updated.
7429    pub project_milestone: Option<Box<ProjectMilestone>>,
7430    /// Whether the operation was successful.
7431    pub success: Option<bool>,
7432    /// 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.
7433    pub previous_issue_team_ids: Option<Box<Vec<ProjectMilestoneMoveIssueToTeam>>>,
7434    /// 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.
7435    pub previous_project_team_ids: Option<Box<ProjectMilestoneMoveProjectTeams>>,
7436}
7437impl GraphQLFields for ProjectMilestoneMovePayload {
7438    type FullType = Self;
7439    fn selection() -> String {
7440        "lastSyncId success".into()
7441    }
7442}
7443#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7444#[serde(rename_all = "camelCase", default)]
7445pub struct ProjectMilestoneMoveProjectTeams {
7446    /// The project id
7447    pub project_id: Option<String>,
7448    /// The team ids for the project
7449    pub team_ids: Option<Vec<String>>,
7450}
7451impl GraphQLFields for ProjectMilestoneMoveProjectTeams {
7452    type FullType = Self;
7453    fn selection() -> String {
7454        "projectId teamIds".into()
7455    }
7456}
7457#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7458#[serde(rename_all = "camelCase", default)]
7459pub struct ProjectMilestonePayload {
7460    /// The identifier of the last sync operation.
7461    pub last_sync_id: Option<f64>,
7462    /// The project milestone that was created or updated.
7463    pub project_milestone: Option<Box<ProjectMilestone>>,
7464    /// Whether the operation was successful.
7465    pub success: Option<bool>,
7466}
7467impl GraphQLFields for ProjectMilestonePayload {
7468    type FullType = Self;
7469    fn selection() -> String {
7470        "lastSyncId success".into()
7471    }
7472}
7473/// A project related notification.
7474#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7475#[serde(rename_all = "camelCase", default)]
7476pub struct ProjectNotification {
7477    /// Related comment ID. Null if the notification is not related to a comment.
7478    pub comment_id: Option<String>,
7479    /// Related parent comment ID. Null if the notification is not related to a comment.
7480    pub parent_comment_id: Option<String>,
7481    /// Name of the reaction emoji related to the notification.
7482    pub reaction_emoji: Option<String>,
7483    /// The unique identifier of the entity.
7484    pub id: Option<String>,
7485    /// The time at which the entity was created.
7486    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7487    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7488    /// been updated after creation.
7489    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7490    /// The time at which the entity was archived. Null if the entity has not been archived.
7491    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7492    /// Notification type.
7493    pub r#type: Option<String>,
7494    /// The user that caused the notification.
7495    pub actor: Option<Box<User>>,
7496    /// The external user that caused the notification.
7497    pub external_user_actor: Option<Box<ExternalUser>>,
7498    /// The user that received the notification.
7499    pub user: Option<Box<User>>,
7500    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
7501    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
7502    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
7503    /// reminder has been sent.
7504    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
7505    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
7506    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
7507    /// The time at which a notification was unsnoozed..
7508    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
7509    /// The category of the notification.
7510    pub category: Option<NotificationCategory>,
7511    /// `Internal` URL to the target of the notification.
7512    pub url: Option<String>,
7513    /// `Internal` Inbox URL for the notification.
7514    pub inbox_url: Option<String>,
7515    /// `Internal` Notification title.
7516    pub title: Option<String>,
7517    /// `Internal` Notification subtitle.
7518    pub subtitle: Option<String>,
7519    /// `Internal` If notification actor was Linear.
7520    pub is_linear_actor: Option<bool>,
7521    /// `Internal` Notification avatar URL.
7522    pub actor_avatar_url: Option<String>,
7523    /// `Internal` Notification actor initials if avatar is not available.
7524    pub actor_initials: Option<String>,
7525    /// `Internal` Notification actor initials if avatar is not available.
7526    pub actor_avatar_color: Option<String>,
7527    /// `Internal` Issue's status type for issue notifications.
7528    pub issue_status_type: Option<String>,
7529    /// `Internal` Project update health for new updates.
7530    pub project_update_health: Option<String>,
7531    /// `Internal` Initiative update health for new updates.
7532    pub initiative_update_health: Option<String>,
7533    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
7534    pub grouping_key: Option<String>,
7535    /// `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`.
7536    pub grouping_priority: Option<f64>,
7537    /// The bot that caused the notification.
7538    pub bot_actor: Option<Box<ActorBot>>,
7539    /// Related project ID.
7540    pub project_id: Option<String>,
7541    /// Related project milestone ID.
7542    pub project_milestone_id: Option<String>,
7543    /// Related project update ID.
7544    pub project_update_id: Option<String>,
7545    /// The project related to the notification.
7546    pub project: Option<Box<Project>>,
7547    /// The document related to the notification.
7548    pub document: Option<Box<Document>>,
7549    /// The project update related to the notification.
7550    pub project_update: Option<Box<ProjectUpdate>>,
7551    /// The comment related to the notification.
7552    pub comment: Option<Box<Comment>>,
7553    /// The parent comment related to the notification, if a notification is a reply comment notification.
7554    pub parent_comment: Option<Box<Comment>>,
7555}
7556impl GraphQLFields for ProjectNotification {
7557    type FullType = Self;
7558    fn selection() -> String {
7559        "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"
7560            .into()
7561    }
7562}
7563/// A project notification subscription.
7564#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7565#[serde(rename_all = "camelCase", default)]
7566pub struct ProjectNotificationSubscription {
7567    /// The unique identifier of the entity.
7568    pub id: Option<String>,
7569    /// The time at which the entity was created.
7570    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7571    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7572    /// been updated after creation.
7573    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7574    /// The time at which the entity was archived. Null if the entity has not been archived.
7575    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7576    /// The user that subscribed to receive notifications.
7577    pub subscriber: Option<Box<User>>,
7578    /// The customer associated with the notification subscription.
7579    pub customer: Option<Box<Customer>>,
7580    /// The contextual custom view associated with the notification subscription.
7581    pub custom_view: Option<Box<CustomView>>,
7582    /// The contextual cycle view associated with the notification subscription.
7583    pub cycle: Option<Box<Cycle>>,
7584    /// The contextual label view associated with the notification subscription.
7585    pub label: Option<Box<IssueLabel>>,
7586    /// The project subscribed to.
7587    pub project: Option<Box<Project>>,
7588    /// The contextual initiative view associated with the notification subscription.
7589    pub initiative: Option<Box<Initiative>>,
7590    /// The team associated with the notification subscription.
7591    pub team: Option<Box<Team>>,
7592    /// The user view associated with the notification subscription.
7593    pub user: Option<Box<User>>,
7594    /// The type of view to which the notification subscription context is associated with.
7595    pub context_view_type: Option<ContextViewType>,
7596    /// The type of user view to which the notification subscription context is associated with.
7597    pub user_context_view_type: Option<UserContextViewType>,
7598    /// Whether the subscription is active or not.
7599    pub active: Option<bool>,
7600    /// The type of subscription.
7601    pub notification_subscription_types: Option<Vec<String>>,
7602}
7603impl GraphQLFields for ProjectNotificationSubscription {
7604    type FullType = Self;
7605    fn selection() -> String {
7606        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
7607            .into()
7608    }
7609}
7610#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7611#[serde(rename_all = "camelCase", default)]
7612pub struct ProjectPayload {
7613    /// The identifier of the last sync operation.
7614    pub last_sync_id: Option<f64>,
7615    /// The project that was created or updated.
7616    pub project: Option<Box<Project>>,
7617    /// Whether the operation was successful.
7618    pub success: Option<bool>,
7619}
7620impl GraphQLFields for ProjectPayload {
7621    type FullType = Self;
7622    fn selection() -> String {
7623        "lastSyncId success".into()
7624    }
7625}
7626/// A relation between two projects.
7627#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7628#[serde(rename_all = "camelCase", default)]
7629pub struct ProjectRelation {
7630    /// The unique identifier of the entity.
7631    pub id: Option<String>,
7632    /// The time at which the entity was created.
7633    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7634    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7635    /// been updated after creation.
7636    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7637    /// The time at which the entity was archived. Null if the entity has not been archived.
7638    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7639    /// The relationship of the project with the related project.
7640    pub r#type: Option<String>,
7641    /// The project whose relationship is being described.
7642    pub project: Option<Box<Project>>,
7643    /// The milestone within the project whose relationship is being described.
7644    pub project_milestone: Option<Box<ProjectMilestone>>,
7645    /// The type of anchor on the project end of the relation.
7646    pub anchor_type: Option<String>,
7647    /// The related project.
7648    pub related_project: Option<Box<Project>>,
7649    /// The milestone within the related project whose relationship is being described.
7650    pub related_project_milestone: Option<Box<ProjectMilestone>>,
7651    /// The type of anchor on the relatedProject end of the relation.
7652    pub related_anchor_type: Option<String>,
7653    /// The last user who created or modified the relation.
7654    pub user: Option<Box<User>>,
7655}
7656impl GraphQLFields for ProjectRelation {
7657    type FullType = Self;
7658    fn selection() -> String {
7659        "id createdAt updatedAt archivedAt type anchorType relatedAnchorType".into()
7660    }
7661}
7662#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7663#[serde(rename_all = "camelCase", default)]
7664pub struct ProjectRelationConnection {
7665    pub edges: Option<Box<Vec<ProjectRelationEdge>>>,
7666    pub nodes: Option<Box<Vec<ProjectRelation>>>,
7667    pub page_info: Option<Box<PageInfo>>,
7668}
7669impl GraphQLFields for ProjectRelationConnection {
7670    type FullType = Self;
7671    fn selection() -> String {
7672        "".into()
7673    }
7674}
7675#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7676#[serde(rename_all = "camelCase", default)]
7677pub struct ProjectRelationEdge {
7678    pub node: Option<Box<ProjectRelation>>,
7679    /// Used in `before` and `after` args
7680    pub cursor: Option<String>,
7681}
7682impl GraphQLFields for ProjectRelationEdge {
7683    type FullType = Self;
7684    fn selection() -> String {
7685        "cursor".into()
7686    }
7687}
7688#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7689#[serde(rename_all = "camelCase", default)]
7690pub struct ProjectRelationPayload {
7691    /// The identifier of the last sync operation.
7692    pub last_sync_id: Option<f64>,
7693    /// The project relation that was created or updated.
7694    pub project_relation: Option<Box<ProjectRelation>>,
7695    /// Whether the operation was successful.
7696    pub success: Option<bool>,
7697}
7698impl GraphQLFields for ProjectRelationPayload {
7699    type FullType = Self;
7700    fn selection() -> String {
7701        "lastSyncId success".into()
7702    }
7703}
7704#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7705#[serde(rename_all = "camelCase", default)]
7706pub struct ProjectSearchPayload {
7707    pub edges: Option<Box<Vec<ProjectSearchResultEdge>>>,
7708    pub nodes: Option<Box<Vec<ProjectSearchResult>>>,
7709    pub page_info: Option<Box<PageInfo>>,
7710    /// Archived entities matching the search term along with all their dependencies.
7711    pub archive_payload: Option<Box<ArchiveResponse>>,
7712    /// Total number of results for query without filters applied.
7713    pub total_count: Option<f64>,
7714}
7715impl GraphQLFields for ProjectSearchPayload {
7716    type FullType = Self;
7717    fn selection() -> String {
7718        "totalCount".into()
7719    }
7720}
7721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7722#[serde(rename_all = "camelCase", default)]
7723pub struct ProjectSearchResult {
7724    /// The unique identifier of the entity.
7725    pub id: Option<String>,
7726    /// The time at which the entity was created.
7727    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7728    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7729    /// been updated after creation.
7730    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7731    /// The time at which the entity was archived. Null if the entity has not been archived.
7732    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7733    /// The n-weekly frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
7734    pub update_reminder_frequency_in_weeks: Option<f64>,
7735    /// The frequency at which to prompt for updates. When not set, reminders are inherited from workspace.
7736    pub update_reminder_frequency: Option<f64>,
7737    /// The resolution of the reminder frequency.
7738    pub frequency_resolution: Option<FrequencyResolutionType>,
7739    /// The day at which to prompt for updates.
7740    pub update_reminders_day: Option<Day>,
7741    /// The hour at which to prompt for updates.
7742    pub update_reminders_hour: Option<f64>,
7743    /// The project's name.
7744    pub name: Option<String>,
7745    /// The project's description.
7746    pub description: Option<String>,
7747    /// The project's unique URL slug.
7748    pub slug_id: Option<String>,
7749    /// The icon of the project.
7750    pub icon: Option<String>,
7751    /// The project's color.
7752    pub color: Option<String>,
7753    /// The status that the project is associated with.
7754    pub status: Option<Box<ProjectStatus>>,
7755    /// The user who created the project.
7756    pub creator: Option<Box<User>>,
7757    /// The project lead.
7758    pub lead: Option<Box<User>>,
7759    /// `Internal` Facets associated with the project.
7760    pub facets: Option<Box<Vec<Facet>>>,
7761    /// The time until which project update reminders are paused.
7762    pub project_update_reminders_paused_until_at: Option<chrono::DateTime<chrono::Utc>>,
7763    /// The estimated start date of the project.
7764    pub start_date: Option<chrono::NaiveDate>,
7765    /// The resolution of the project's start date.
7766    pub start_date_resolution: Option<DateResolutionType>,
7767    /// The estimated completion date of the project.
7768    pub target_date: Option<chrono::NaiveDate>,
7769    /// The resolution of the project's estimated completion date.
7770    pub target_date_resolution: Option<DateResolutionType>,
7771    /// The time at which the project was moved into started state.
7772    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
7773    /// The time at which the project was moved into completed state.
7774    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
7775    /// The time at which the project was moved into canceled state.
7776    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
7777    /// The time at which the project was automatically archived by the auto pruning process.
7778    pub auto_archived_at: Option<chrono::DateTime<chrono::Utc>>,
7779    /// A flag that indicates whether the project is in the trash bin.
7780    pub trashed: Option<bool>,
7781    /// The sort order for the project within the organization.
7782    pub sort_order: Option<f64>,
7783    /// The sort order for the project within the organization, when ordered by priority.
7784    pub priority_sort_order: Option<f64>,
7785    /// The project was created based on this issue.
7786    pub converted_from_issue: Option<Box<Issue>>,
7787    /// The last template that was applied to this project.
7788    pub last_applied_template: Option<Box<Template>>,
7789    /// The priority of the project. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
7790    pub priority: Option<i64>,
7791    /// The last project update posted for this project.
7792    pub last_update: Option<Box<ProjectUpdate>>,
7793    /// The health of the project.
7794    pub health: Option<ProjectUpdateHealthType>,
7795    /// The time at which the project health was updated.
7796    pub health_updated_at: Option<chrono::DateTime<chrono::Utc>>,
7797    /// The total number of issues in the project after each week.
7798    pub issue_count_history: Option<Vec<f64>>,
7799    /// The number of completed issues in the project after each week.
7800    pub completed_issue_count_history: Option<Vec<f64>>,
7801    /// The total number of estimation points after each week.
7802    pub scope_history: Option<Vec<f64>>,
7803    /// The number of completed estimation points after each week.
7804    pub completed_scope_history: Option<Vec<f64>>,
7805    /// The number of in progress estimation points after each week.
7806    pub in_progress_scope_history: Option<Vec<f64>>,
7807    /// `INTERNAL` The progress history of the project.
7808    pub progress_history: Option<serde_json::Value>,
7809    /// `INTERNAL` The current progress of the project.
7810    pub current_progress: Option<serde_json::Value>,
7811    /// Whether to send new issue notifications to Slack.
7812    pub slack_new_issue: Option<bool>,
7813    /// Whether to send new issue comment notifications to Slack.
7814    pub slack_issue_comments: Option<bool>,
7815    /// Whether to send new issue status updates to Slack.
7816    pub slack_issue_statuses: Option<bool>,
7817    /// Id of the labels associated with this project.
7818    pub label_ids: Option<Vec<String>>,
7819    /// The user's favorite associated with this project.
7820    pub favorite: Option<Box<Favorite>>,
7821    /// Project URL.
7822    pub url: Option<String>,
7823    /// Initiatives that this project belongs to.
7824    pub initiatives: Option<Box<InitiativeConnection>>,
7825    /// Associations of this project to parent initiatives.
7826    pub initiative_to_projects: Option<Box<InitiativeToProjectConnection>>,
7827    /// Teams associated with this project.
7828    pub teams: Option<Box<TeamConnection>>,
7829    /// Users that are members of the project.
7830    pub members: Option<Box<UserConnection>>,
7831    /// Project updates associated with the project.
7832    pub project_updates: Option<Box<ProjectUpdateConnection>>,
7833    /// Documents associated with the project.
7834    pub documents: Option<Box<DocumentConnection>>,
7835    /// Milestones associated with the project.
7836    pub project_milestones: Option<Box<ProjectMilestoneConnection>>,
7837    /// Issues associated with the project.
7838    pub issues: Option<Box<IssueConnection>>,
7839    /// External links associated with the project.
7840    pub external_links: Option<Box<EntityExternalLinkConnection>>,
7841    /// Attachments associated with the project.
7842    pub attachments: Option<Box<ProjectAttachmentConnection>>,
7843    /// History entries associated with the project.
7844    pub history: Option<Box<ProjectHistoryConnection>>,
7845    /// Labels associated with this project.
7846    pub labels: Option<Box<ProjectLabelConnection>>,
7847    /// The overall progress of the project. This is the (completed estimate points + 0.25 * in progress estimate points) / total estimate points.
7848    pub progress: Option<f64>,
7849    /// The overall scope (total estimate points) of the project.
7850    pub scope: Option<f64>,
7851    /// Settings for all integrations associated with that project.
7852    pub integrations_settings: Option<Box<IntegrationsSettings>>,
7853    /// The project's content in markdown format.
7854    pub content: Option<String>,
7855    /// `Internal` The project's content as YJS state.
7856    pub content_state: Option<String>,
7857    /// The content of the project description.
7858    pub document_content: Option<Box<DocumentContent>>,
7859    /// Comments associated with the project overview.
7860    pub comments: Option<Box<CommentConnection>>,
7861    /// Relations associated with this project.
7862    pub relations: Option<Box<ProjectRelationConnection>>,
7863    /// Inverse relations associated with this project.
7864    pub inverse_relations: Option<Box<ProjectRelationConnection>>,
7865    /// Customer needs associated with the project.
7866    pub needs: Option<Box<CustomerNeedConnection>>,
7867    /// `DEPRECATED` The type of the state.
7868    pub state: Option<String>,
7869    /// The priority of the project as a label.
7870    pub priority_label: Option<String>,
7871    /// Metadata related to search result.
7872    pub metadata: Option<serde_json::Value>,
7873}
7874impl GraphQLFields for ProjectSearchResult {
7875    type FullType = Self;
7876    fn selection() -> String {
7877        "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"
7878            .into()
7879    }
7880}
7881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7882#[serde(rename_all = "camelCase", default)]
7883pub struct ProjectSearchResultEdge {
7884    pub node: Option<Box<ProjectSearchResult>>,
7885    /// Used in `before` and `after` args
7886    pub cursor: Option<String>,
7887}
7888impl GraphQLFields for ProjectSearchResultEdge {
7889    type FullType = Self;
7890    fn selection() -> String {
7891        "cursor".into()
7892    }
7893}
7894/// A project status.
7895#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7896#[serde(rename_all = "camelCase", default)]
7897pub struct ProjectStatus {
7898    /// The unique identifier of the entity.
7899    pub id: Option<String>,
7900    /// The time at which the entity was created.
7901    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7902    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
7903    /// been updated after creation.
7904    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
7905    /// The time at which the entity was archived. Null if the entity has not been archived.
7906    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
7907    /// The name of the status.
7908    pub name: Option<String>,
7909    /// The UI color of the status as a HEX string.
7910    pub color: Option<String>,
7911    /// Description of the status.
7912    pub description: Option<String>,
7913    /// The position of the status in the workspace's project flow.
7914    pub position: Option<f64>,
7915    /// The type of the project status.
7916    pub r#type: Option<ProjectStatusType>,
7917    /// Whether or not a project can be in this status indefinitely.
7918    pub indefinite: Option<bool>,
7919}
7920impl GraphQLFields for ProjectStatus {
7921    type FullType = Self;
7922    fn selection() -> String {
7923        "id createdAt updatedAt archivedAt name color description position type indefinite".into()
7924    }
7925}
7926/// A generic payload return from entity archive mutations.
7927#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7928#[serde(rename_all = "camelCase", default)]
7929pub struct ProjectStatusArchivePayload {
7930    /// The identifier of the last sync operation.
7931    pub last_sync_id: Option<f64>,
7932    /// Whether the operation was successful.
7933    pub success: Option<bool>,
7934    /// The archived/unarchived entity. Null if entity was deleted.
7935    pub entity: Option<Box<ProjectStatus>>,
7936}
7937impl GraphQLFields for ProjectStatusArchivePayload {
7938    type FullType = Self;
7939    fn selection() -> String {
7940        "lastSyncId success".into()
7941    }
7942}
7943#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7944#[serde(rename_all = "camelCase", default)]
7945pub struct ProjectStatusConnection {
7946    pub edges: Option<Box<Vec<ProjectStatusEdge>>>,
7947    pub nodes: Option<Box<Vec<ProjectStatus>>>,
7948    pub page_info: Option<Box<PageInfo>>,
7949}
7950impl GraphQLFields for ProjectStatusConnection {
7951    type FullType = Self;
7952    fn selection() -> String {
7953        "".into()
7954    }
7955}
7956#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7957#[serde(rename_all = "camelCase", default)]
7958pub struct ProjectStatusCountPayload {
7959    /// Total number of projects using this project status.
7960    pub count: Option<f64>,
7961    /// Total number of projects using this project status that are not visible to the user because they are in a private team.
7962    pub private_count: Option<f64>,
7963    /// Total number of projects using this project status that are not visible to the user because they are in an archived team.
7964    pub archived_team_count: Option<f64>,
7965}
7966impl GraphQLFields for ProjectStatusCountPayload {
7967    type FullType = Self;
7968    fn selection() -> String {
7969        "count privateCount archivedTeamCount".into()
7970    }
7971}
7972#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7973#[serde(rename_all = "camelCase", default)]
7974pub struct ProjectStatusEdge {
7975    pub node: Option<Box<ProjectStatus>>,
7976    /// Used in `before` and `after` args
7977    pub cursor: Option<String>,
7978}
7979impl GraphQLFields for ProjectStatusEdge {
7980    type FullType = Self;
7981    fn selection() -> String {
7982        "cursor".into()
7983    }
7984}
7985#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7986#[serde(rename_all = "camelCase", default)]
7987pub struct ProjectStatusPayload {
7988    /// The identifier of the last sync operation.
7989    pub last_sync_id: Option<f64>,
7990    /// The project status that was created or updated.
7991    pub status: Option<Box<ProjectStatus>>,
7992    /// Whether the operation was successful.
7993    pub success: Option<bool>,
7994}
7995impl GraphQLFields for ProjectStatusPayload {
7996    type FullType = Self;
7997    fn selection() -> String {
7998        "lastSyncId success".into()
7999    }
8000}
8001/// An update associated with a project.
8002#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8003#[serde(rename_all = "camelCase", default)]
8004pub struct ProjectUpdate {
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 update content in markdown format.
8015    pub body: Option<String>,
8016    /// The time the update was edited.
8017    pub edited_at: Option<chrono::DateTime<chrono::Utc>>,
8018    /// Emoji reaction summary, grouped by emoji type.
8019    pub reaction_data: Option<serde_json::Value>,
8020    /// `Internal` The content of the update as a Prosemirror document.
8021    pub body_data: Option<String>,
8022    /// The update's unique URL slug.
8023    pub slug_id: Option<String>,
8024    /// The project that the update is associated with.
8025    pub project: Option<Box<Project>>,
8026    /// The health of the project at the time of the update.
8027    pub health: Option<ProjectUpdateHealthType>,
8028    /// The user who wrote the update.
8029    pub user: Option<Box<User>>,
8030    /// `Internal` Serialized JSON representing current state of the project properties when posting the project update.
8031    pub info_snapshot: Option<serde_json::Value>,
8032    /// Whether project update diff should be hidden.
8033    pub is_diff_hidden: Option<bool>,
8034    /// The URL to the project update.
8035    pub url: Option<String>,
8036    /// Whether the project update is stale.
8037    pub is_stale: Option<bool>,
8038    /// The diff between the current update and the previous one.
8039    pub diff: Option<serde_json::Value>,
8040    /// The diff between the current update and the previous one, formatted as markdown.
8041    pub diff_markdown: Option<String>,
8042    /// Reactions associated with the project update.
8043    pub reactions: Option<Box<Vec<Reaction>>>,
8044    /// Comments associated with the project update.
8045    pub comments: Option<Box<CommentConnection>>,
8046    /// Number of comments associated with the project update.
8047    pub comment_count: Option<i64>,
8048}
8049impl GraphQLFields for ProjectUpdate {
8050    type FullType = Self;
8051    fn selection() -> String {
8052        "id createdAt updatedAt archivedAt body editedAt reactionData bodyData slugId health infoSnapshot isDiffHidden url isStale diff diffMarkdown commentCount"
8053            .into()
8054    }
8055}
8056/// A generic payload return from entity archive mutations.
8057#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8058#[serde(rename_all = "camelCase", default)]
8059pub struct ProjectUpdateArchivePayload {
8060    /// The identifier of the last sync operation.
8061    pub last_sync_id: Option<f64>,
8062    /// Whether the operation was successful.
8063    pub success: Option<bool>,
8064    /// The archived/unarchived entity. Null if entity was deleted.
8065    pub entity: Option<Box<ProjectUpdate>>,
8066}
8067impl GraphQLFields for ProjectUpdateArchivePayload {
8068    type FullType = Self;
8069    fn selection() -> String {
8070        "lastSyncId success".into()
8071    }
8072}
8073#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8074#[serde(rename_all = "camelCase", default)]
8075pub struct ProjectUpdateConnection {
8076    pub edges: Option<Box<Vec<ProjectUpdateEdge>>>,
8077    pub nodes: Option<Box<Vec<ProjectUpdate>>>,
8078    pub page_info: Option<Box<PageInfo>>,
8079}
8080impl GraphQLFields for ProjectUpdateConnection {
8081    type FullType = Self;
8082    fn selection() -> String {
8083        "".into()
8084    }
8085}
8086#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8087#[serde(rename_all = "camelCase", default)]
8088pub struct ProjectUpdateEdge {
8089    pub node: Option<Box<ProjectUpdate>>,
8090    /// Used in `before` and `after` args
8091    pub cursor: Option<String>,
8092}
8093impl GraphQLFields for ProjectUpdateEdge {
8094    type FullType = Self;
8095    fn selection() -> String {
8096        "cursor".into()
8097    }
8098}
8099#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8100#[serde(rename_all = "camelCase", default)]
8101pub struct ProjectUpdatePayload {
8102    /// The identifier of the last sync operation.
8103    pub last_sync_id: Option<f64>,
8104    /// The project update that was created or updated.
8105    pub project_update: Option<Box<ProjectUpdate>>,
8106    /// Whether the operation was successful.
8107    pub success: Option<bool>,
8108}
8109impl GraphQLFields for ProjectUpdatePayload {
8110    type FullType = Self;
8111    fn selection() -> String {
8112        "lastSyncId success".into()
8113    }
8114}
8115#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8116#[serde(rename_all = "camelCase", default)]
8117pub struct ProjectUpdateReminderPayload {
8118    /// The identifier of the last sync operation.
8119    pub last_sync_id: Option<f64>,
8120    /// Whether the operation was successful.
8121    pub success: Option<bool>,
8122}
8123impl GraphQLFields for ProjectUpdateReminderPayload {
8124    type FullType = Self;
8125    fn selection() -> String {
8126        "lastSyncId success".into()
8127    }
8128}
8129/// `Internal` A pull request in a version control system.
8130#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8131#[serde(rename_all = "camelCase", default)]
8132pub struct PullRequest {
8133    /// The unique identifier of the entity.
8134    pub id: Option<String>,
8135    /// The time at which the entity was created.
8136    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8137    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8138    /// been updated after creation.
8139    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8140    /// The time at which the entity was archived. Null if the entity has not been archived.
8141    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8142    /// The pull request's unique URL slug.
8143    pub slug_id: Option<String>,
8144    /// The title of the pull request.
8145    pub title: Option<String>,
8146    /// The number of the pull request in the version control system.
8147    pub number: Option<f64>,
8148    /// The source branch of the pull request.
8149    pub source_branch: Option<String>,
8150    /// The target branch of the pull request.
8151    pub target_branch: Option<String>,
8152    /// The URL of the pull request in the version control system.
8153    pub url: Option<String>,
8154    /// The status of the pull request.
8155    pub status: Option<PullRequestStatus>,
8156    /// Merge settings for this pull request.
8157    pub merge_settings: Option<Box<PullRequestMergeSettings>>,
8158    /// The merge commit created when the PR was merged.
8159    pub merge_commit: Option<Box<PullRequestCommit>>,
8160    /// `Internal` The checks associated with the pull request.
8161    pub checks: Option<Box<Vec<PullRequestCheck>>>,
8162    /// `ALPHA` The commits associated with the pull request.
8163    pub commits: Option<Box<Vec<PullRequestCommit>>>,
8164    /// `Internal` The user who created the pull request.
8165    pub creator: Option<Box<User>>,
8166    /// Agent sessions associated with this pull request.
8167    pub agent_sessions: Option<Box<AgentSessionToPullRequestConnection>>,
8168    /// Pull request URL to the Linear app
8169    pub app_url: Option<String>,
8170    /// The pull request's description in markdown format.
8171    pub description: Option<String>,
8172    /// The pull request's description as a Prosemirror document.
8173    pub description_data: Option<serde_json::Value>,
8174    /// Integration type that created this pull request, if applicable.
8175    pub integration_source_type: Option<IntegrationService>,
8176    /// Diff statistics for the pull request including file count, additions, deletions, and changes.
8177    pub diff_stats: Option<Box<PullRequestDiffStats>>,
8178}
8179impl GraphQLFields for PullRequest {
8180    type FullType = Self;
8181    fn selection() -> String {
8182        "id createdAt updatedAt archivedAt slugId title number sourceBranch targetBranch url status appUrl description descriptionData integrationSourceType"
8183            .into()
8184    }
8185}
8186/// `ALPHA` A pull request check.
8187#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8188#[serde(rename_all = "camelCase", default)]
8189pub struct PullRequestCheck {
8190    /// The name of the check.
8191    pub name: Option<String>,
8192    /// The name of the workflow that triggered the check.
8193    pub workflow_name: Option<String>,
8194    /// The status of the check.
8195    pub status: Option<String>,
8196    /// The URL of the check.
8197    pub url: Option<String>,
8198    /// Whether the check is required.
8199    pub is_required: Option<bool>,
8200    /// The date/time at which when the check was started.
8201    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
8202    /// The date/time at which when the check was completed.
8203    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
8204}
8205impl GraphQLFields for PullRequestCheck {
8206    type FullType = Self;
8207    fn selection() -> String {
8208        "name workflowName status url isRequired startedAt completedAt".into()
8209    }
8210}
8211/// `ALPHA` A pull request commit.
8212#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8213#[serde(rename_all = "camelCase", default)]
8214pub struct PullRequestCommit {
8215    /// The Git commit SHA.
8216    pub sha: Option<String>,
8217    /// The full commit message.
8218    pub message: Option<String>,
8219    /// The timestamp when the commit was committed (ISO 8601 string).
8220    pub committed_at: Option<String>,
8221    /// Number of additions in this commit.
8222    pub additions: Option<f64>,
8223    /// Number of deletions in this commit.
8224    pub deletions: Option<f64>,
8225    /// The number of changed files if available.
8226    pub changed_files: Option<f64>,
8227    /// Linear user IDs for commit authors (includes co-authors).
8228    pub author_user_ids: Option<Vec<String>>,
8229    /// External user IDs for commit authors (includes co-authors).
8230    pub author_external_user_ids: Option<Vec<String>>,
8231}
8232impl GraphQLFields for PullRequestCommit {
8233    type FullType = Self;
8234    fn selection() -> String {
8235        "sha message committedAt additions deletions changedFiles authorUserIds authorExternalUserIds"
8236            .into()
8237    }
8238}
8239/// Diff statistics for a pull request.
8240#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8241#[serde(rename_all = "camelCase", default)]
8242pub struct PullRequestDiffStats {
8243    /// The number of files changed in the pull request.
8244    pub file_count: Option<f64>,
8245    /// The number of lines added in the pull request.
8246    pub additions: Option<f64>,
8247    /// The number of lines changed in the pull request.
8248    pub changes: Option<f64>,
8249    /// The number of lines deleted in the pull request.
8250    pub deletions: Option<f64>,
8251}
8252impl GraphQLFields for PullRequestDiffStats {
8253    type FullType = Self;
8254    fn selection() -> String {
8255        "fileCount additions changes deletions".into()
8256    }
8257}
8258/// `Internal` Merge settings for a pull request
8259#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8260#[serde(rename_all = "camelCase", default)]
8261pub struct PullRequestMergeSettings {
8262    /// Whether merge queue is enabled for this repository.
8263    pub is_merge_queue_enabled: Option<bool>,
8264    /// Whether squash merge is allowed for this pull request's repository.
8265    pub squash_merge_allowed: Option<bool>,
8266    /// Whether auto-merge is allowed for the PR's repository.
8267    pub auto_merge_allowed: Option<bool>,
8268    /// Whether rebase merge is allowed for pull requests PR's repository.
8269    pub rebase_merge_allowed: Option<bool>,
8270    /// Whether merge commits are allowed for pull requests PR's repository.
8271    pub merge_commit_allowed: Option<bool>,
8272    /// Whether the branch will be deleted when the pull request is merged.
8273    pub delete_branch_on_merge: Option<bool>,
8274    /// The method used to merge a pull request.
8275    pub merge_queue_merge_method: Option<PullRequestMergeMethod>,
8276}
8277impl GraphQLFields for PullRequestMergeSettings {
8278    type FullType = Self;
8279    fn selection() -> String {
8280        "isMergeQueueEnabled squashMergeAllowed autoMergeAllowed rebaseMergeAllowed mergeCommitAllowed deleteBranchOnMerge mergeQueueMergeMethod"
8281            .into()
8282    }
8283}
8284/// A pull request related notification.
8285#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8286#[serde(rename_all = "camelCase", default)]
8287pub struct PullRequestNotification {
8288    /// The unique identifier of the entity.
8289    pub id: Option<String>,
8290    /// The time at which the entity was created.
8291    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8292    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8293    /// been updated after creation.
8294    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8295    /// The time at which the entity was archived. Null if the entity has not been archived.
8296    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8297    /// Notification type.
8298    pub r#type: Option<String>,
8299    /// The user that caused the notification.
8300    pub actor: Option<Box<User>>,
8301    /// The external user that caused the notification.
8302    pub external_user_actor: Option<Box<ExternalUser>>,
8303    /// The user that received the notification.
8304    pub user: Option<Box<User>>,
8305    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
8306    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
8307    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
8308    /// reminder has been sent.
8309    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
8310    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
8311    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
8312    /// The time at which a notification was unsnoozed..
8313    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
8314    /// The category of the notification.
8315    pub category: Option<NotificationCategory>,
8316    /// `Internal` URL to the target of the notification.
8317    pub url: Option<String>,
8318    /// `Internal` Inbox URL for the notification.
8319    pub inbox_url: Option<String>,
8320    /// `Internal` Notification title.
8321    pub title: Option<String>,
8322    /// `Internal` Notification subtitle.
8323    pub subtitle: Option<String>,
8324    /// `Internal` If notification actor was Linear.
8325    pub is_linear_actor: Option<bool>,
8326    /// `Internal` Notification avatar URL.
8327    pub actor_avatar_url: Option<String>,
8328    /// `Internal` Notification actor initials if avatar is not available.
8329    pub actor_initials: Option<String>,
8330    /// `Internal` Notification actor initials if avatar is not available.
8331    pub actor_avatar_color: Option<String>,
8332    /// `Internal` Issue's status type for issue notifications.
8333    pub issue_status_type: Option<String>,
8334    /// `Internal` Project update health for new updates.
8335    pub project_update_health: Option<String>,
8336    /// `Internal` Initiative update health for new updates.
8337    pub initiative_update_health: Option<String>,
8338    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
8339    pub grouping_key: Option<String>,
8340    /// `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`.
8341    pub grouping_priority: Option<f64>,
8342    /// The bot that caused the notification.
8343    pub bot_actor: Option<Box<ActorBot>>,
8344    /// Related pull request.
8345    pub pull_request_id: Option<String>,
8346    /// Related pull request comment ID. Null if the notification is not related to a pull request comment.
8347    pub pull_request_comment_id: Option<String>,
8348    /// The pull request related to the notification.
8349    pub pull_request: Option<Box<PullRequest>>,
8350}
8351impl GraphQLFields for PullRequestNotification {
8352    type FullType = Self;
8353    fn selection() -> String {
8354        "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"
8355            .into()
8356    }
8357}
8358/// A user's web or mobile push notification subscription.
8359#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8360#[serde(rename_all = "camelCase", default)]
8361pub struct PushSubscription {
8362    /// The unique identifier of the entity.
8363    pub id: Option<String>,
8364    /// The time at which the entity was created.
8365    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8366    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8367    /// been updated after creation.
8368    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8369    /// The time at which the entity was archived. Null if the entity has not been archived.
8370    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8371}
8372impl GraphQLFields for PushSubscription {
8373    type FullType = Self;
8374    fn selection() -> String {
8375        "id createdAt updatedAt archivedAt".into()
8376    }
8377}
8378#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8379#[serde(rename_all = "camelCase", default)]
8380pub struct PushSubscriptionPayload {
8381    /// The identifier of the last sync operation.
8382    pub last_sync_id: Option<f64>,
8383    /// The push subscription that was created or updated.
8384    pub entity: Option<Box<PushSubscription>>,
8385    /// Whether the operation was successful.
8386    pub success: Option<bool>,
8387}
8388impl GraphQLFields for PushSubscriptionPayload {
8389    type FullType = Self;
8390    fn selection() -> String {
8391        "lastSyncId success".into()
8392    }
8393}
8394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8395#[serde(rename_all = "camelCase", default)]
8396pub struct PushSubscriptionTestPayload {
8397    /// Whether the operation was successful.
8398    pub success: Option<bool>,
8399}
8400impl GraphQLFields for PushSubscriptionTestPayload {
8401    type FullType = Self;
8402    fn selection() -> String {
8403        "success".into()
8404    }
8405}
8406#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8407#[serde(rename_all = "camelCase", default)]
8408pub struct RateLimitPayload {
8409    /// The identifier we rate limit on.
8410    pub identifier: Option<String>,
8411    /// The kind of rate limit selected for this request.
8412    pub kind: Option<String>,
8413    /// The state of the rate limit.
8414    pub limits: Option<Box<Vec<RateLimitResultPayload>>>,
8415}
8416impl GraphQLFields for RateLimitPayload {
8417    type FullType = Self;
8418    fn selection() -> String {
8419        "identifier kind".into()
8420    }
8421}
8422#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8423#[serde(rename_all = "camelCase", default)]
8424pub struct RateLimitResultPayload {
8425    /// What is being rate limited.
8426    pub r#type: Option<String>,
8427    /// The requested quantity for this type of limit.
8428    pub requested_amount: Option<f64>,
8429    /// The total allowed quantity for this type of limit.
8430    pub allowed_amount: Option<f64>,
8431    /// The period in which the rate limit is fully replenished in ms.
8432    pub period: Option<f64>,
8433    /// The remaining quantity for this type of limit after this request.
8434    pub remaining_amount: Option<f64>,
8435    /// The timestamp after the rate limit is fully replenished as a UNIX timestamp.
8436    pub reset: Option<f64>,
8437}
8438impl GraphQLFields for RateLimitResultPayload {
8439    type FullType = Self;
8440    fn selection() -> String {
8441        "type requestedAmount allowedAmount period remainingAmount reset".into()
8442    }
8443}
8444/// A reaction associated with a comment or a project update.
8445#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8446#[serde(rename_all = "camelCase", default)]
8447pub struct Reaction {
8448    /// The unique identifier of the entity.
8449    pub id: Option<String>,
8450    /// The time at which the entity was created.
8451    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8452    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8453    /// been updated after creation.
8454    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8455    /// The time at which the entity was archived. Null if the entity has not been archived.
8456    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8457    /// Name of the reaction's emoji.
8458    pub emoji: Option<String>,
8459    /// The issue that the reaction is associated with.
8460    pub issue: Option<Box<Issue>>,
8461    /// The comment that the reaction is associated with.
8462    pub comment: Option<Box<Comment>>,
8463    /// The project update that the reaction is associated with.
8464    pub project_update: Option<Box<ProjectUpdate>>,
8465    /// The initiative update that the reaction is associated with.
8466    pub initiative_update: Option<Box<InitiativeUpdate>>,
8467    /// The post that the reaction is associated with.
8468    pub post: Option<Box<Post>>,
8469    /// The user that created the reaction.
8470    pub user: Option<Box<User>>,
8471    /// The external user that created the reaction.
8472    pub external_user: Option<Box<ExternalUser>>,
8473}
8474impl GraphQLFields for Reaction {
8475    type FullType = Self;
8476    fn selection() -> String {
8477        "id createdAt updatedAt archivedAt emoji".into()
8478    }
8479}
8480#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8481#[serde(rename_all = "camelCase", default)]
8482pub struct ReactionPayload {
8483    /// The identifier of the last sync operation.
8484    pub last_sync_id: Option<f64>,
8485    pub reaction: Option<Box<Reaction>>,
8486    pub success: Option<bool>,
8487}
8488impl GraphQLFields for ReactionPayload {
8489    type FullType = Self;
8490    fn selection() -> String {
8491        "lastSyncId success".into()
8492    }
8493}
8494/// `Internal` A release.
8495#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8496#[serde(rename_all = "camelCase", default)]
8497pub struct Release {
8498    /// The unique identifier of the entity.
8499    pub id: Option<String>,
8500    /// The time at which the entity was created.
8501    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8502    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8503    /// been updated after creation.
8504    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8505    /// The time at which the entity was archived. Null if the entity has not been archived.
8506    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8507    /// The name of the release.
8508    pub name: Option<String>,
8509    /// The release's description.
8510    pub description: Option<String>,
8511    /// The version of the release.
8512    pub version: Option<String>,
8513    /// The commit SHA associated with this release.
8514    pub commit_sha: Option<String>,
8515    /// The pipeline this release belongs to.
8516    pub pipeline: Option<Box<ReleasePipeline>>,
8517    /// The current stage of the release.
8518    pub stage: Option<Box<ReleaseStage>>,
8519    /// The release's unique URL slug.
8520    pub slug_id: Option<String>,
8521    /// The estimated start date of the release.
8522    pub start_date: Option<chrono::NaiveDate>,
8523    /// The estimated completion date of the release.
8524    pub target_date: Option<chrono::NaiveDate>,
8525    /// The time at which the release was started.
8526    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
8527    /// The time at which the release was completed.
8528    pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
8529    /// The time at which the release was canceled.
8530    pub canceled_at: Option<chrono::DateTime<chrono::Utc>>,
8531    /// Release URL.
8532    pub url: Option<String>,
8533    /// `Internal` Documents associated with the release.
8534    pub documents: Option<Box<DocumentConnection>>,
8535    /// `Internal` Links associated with the release.
8536    pub links: Option<Box<EntityExternalLinkConnection>>,
8537}
8538impl GraphQLFields for Release {
8539    type FullType = Self;
8540    fn selection() -> String {
8541        "id createdAt updatedAt archivedAt name description version commitSha slugId startDate targetDate startedAt completedAt canceledAt url"
8542            .into()
8543    }
8544}
8545/// A generic payload return from entity archive mutations.
8546#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8547#[serde(rename_all = "camelCase", default)]
8548pub struct ReleaseArchivePayload {
8549    /// The identifier of the last sync operation.
8550    pub last_sync_id: Option<f64>,
8551    /// Whether the operation was successful.
8552    pub success: Option<bool>,
8553    /// The archived/unarchived entity. Null if entity was deleted.
8554    pub entity: Option<Box<Release>>,
8555}
8556impl GraphQLFields for ReleaseArchivePayload {
8557    type FullType = Self;
8558    fn selection() -> String {
8559        "lastSyncId success".into()
8560    }
8561}
8562#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8563#[serde(rename_all = "camelCase", default)]
8564pub struct ReleaseConnection {
8565    pub edges: Option<Box<Vec<ReleaseEdge>>>,
8566    pub nodes: Option<Box<Vec<Release>>>,
8567    pub page_info: Option<Box<PageInfo>>,
8568}
8569impl GraphQLFields for ReleaseConnection {
8570    type FullType = Self;
8571    fn selection() -> String {
8572        "".into()
8573    }
8574}
8575#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8576#[serde(rename_all = "camelCase", default)]
8577pub struct ReleaseEdge {
8578    pub node: Option<Box<Release>>,
8579    /// Used in `before` and `after` args
8580    pub cursor: Option<String>,
8581}
8582impl GraphQLFields for ReleaseEdge {
8583    type FullType = Self;
8584    fn selection() -> String {
8585        "cursor".into()
8586    }
8587}
8588#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8589#[serde(rename_all = "camelCase", default)]
8590pub struct ReleasePayload {
8591    /// The identifier of the last sync operation.
8592    pub last_sync_id: Option<f64>,
8593    /// The release that was created or updated.
8594    pub release: Option<Box<Release>>,
8595    /// Whether the operation was successful.
8596    pub success: Option<bool>,
8597}
8598impl GraphQLFields for ReleasePayload {
8599    type FullType = Self;
8600    fn selection() -> String {
8601        "lastSyncId success".into()
8602    }
8603}
8604/// `Internal` A release pipeline.
8605#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8606#[serde(rename_all = "camelCase", default)]
8607pub struct ReleasePipeline {
8608    /// The unique identifier of the entity.
8609    pub id: Option<String>,
8610    /// The time at which the entity was created.
8611    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8612    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8613    /// been updated after creation.
8614    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8615    /// The time at which the entity was archived. Null if the entity has not been archived.
8616    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8617    /// The name of the pipeline.
8618    pub name: Option<String>,
8619    /// The pipeline's unique slug identifier.
8620    pub slug_id: Option<String>,
8621    /// The type of the pipeline.
8622    pub r#type: Option<ReleasePipelineType>,
8623    /// Glob patterns to include commits affecting matching file paths.
8624    pub include_path_patterns: Option<Vec<String>>,
8625    /// `ALPHA` The active access key for this pipeline.
8626    pub access_key: Option<Box<AccessKey>>,
8627    /// `ALPHA` Stages associated with this pipeline.
8628    pub stages: Option<Box<ReleaseStageConnection>>,
8629    /// `ALPHA` Releases associated with this pipeline.
8630    pub releases: Option<Box<ReleaseConnection>>,
8631}
8632impl GraphQLFields for ReleasePipeline {
8633    type FullType = Self;
8634    fn selection() -> String {
8635        "id createdAt updatedAt archivedAt name slugId type includePathPatterns".into()
8636    }
8637}
8638/// A generic payload return from entity archive mutations.
8639#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8640#[serde(rename_all = "camelCase", default)]
8641pub struct ReleasePipelineArchivePayload {
8642    /// The identifier of the last sync operation.
8643    pub last_sync_id: Option<f64>,
8644    /// Whether the operation was successful.
8645    pub success: Option<bool>,
8646    /// The archived/unarchived entity. Null if entity was deleted.
8647    pub entity: Option<Box<ReleasePipeline>>,
8648}
8649impl GraphQLFields for ReleasePipelineArchivePayload {
8650    type FullType = Self;
8651    fn selection() -> String {
8652        "lastSyncId success".into()
8653    }
8654}
8655#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8656#[serde(rename_all = "camelCase", default)]
8657pub struct ReleasePipelineConnection {
8658    pub edges: Option<Box<Vec<ReleasePipelineEdge>>>,
8659    pub nodes: Option<Box<Vec<ReleasePipeline>>>,
8660    pub page_info: Option<Box<PageInfo>>,
8661}
8662impl GraphQLFields for ReleasePipelineConnection {
8663    type FullType = Self;
8664    fn selection() -> String {
8665        "".into()
8666    }
8667}
8668#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8669#[serde(rename_all = "camelCase", default)]
8670pub struct ReleasePipelineEdge {
8671    pub node: Option<Box<ReleasePipeline>>,
8672    /// Used in `before` and `after` args
8673    pub cursor: Option<String>,
8674}
8675impl GraphQLFields for ReleasePipelineEdge {
8676    type FullType = Self;
8677    fn selection() -> String {
8678        "cursor".into()
8679    }
8680}
8681#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8682#[serde(rename_all = "camelCase", default)]
8683pub struct ReleasePipelinePayload {
8684    /// The identifier of the last sync operation.
8685    pub last_sync_id: Option<f64>,
8686    /// The release pipeline that was created or updated.
8687    pub release_pipeline: Option<Box<ReleasePipeline>>,
8688    /// Whether the operation was successful.
8689    pub success: Option<bool>,
8690}
8691impl GraphQLFields for ReleasePipelinePayload {
8692    type FullType = Self;
8693    fn selection() -> String {
8694        "lastSyncId success".into()
8695    }
8696}
8697/// `Internal` A release stage.
8698#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8699#[serde(rename_all = "camelCase", default)]
8700pub struct ReleaseStage {
8701    /// The unique identifier of the entity.
8702    pub id: Option<String>,
8703    /// The time at which the entity was created.
8704    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8705    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8706    /// been updated after creation.
8707    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8708    /// The time at which the entity was archived. Null if the entity has not been archived.
8709    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8710    /// The name of the stage.
8711    pub name: Option<String>,
8712    /// The UI color of the stage as a HEX string.
8713    pub color: Option<String>,
8714    /// The type of the stage.
8715    pub r#type: Option<ReleaseStageType>,
8716    /// The position of the stage.
8717    pub position: Option<f64>,
8718    /// Whether this stage is frozen. Only applicable to started type stages.
8719    pub frozen: Option<bool>,
8720    /// The pipeline this stage belongs to.
8721    pub pipeline: Option<Box<ReleasePipeline>>,
8722    /// `ALPHA` Releases associated with this stage.
8723    pub releases: Option<Box<ReleaseConnection>>,
8724}
8725impl GraphQLFields for ReleaseStage {
8726    type FullType = Self;
8727    fn selection() -> String {
8728        "id createdAt updatedAt archivedAt name color type position frozen".into()
8729    }
8730}
8731/// A generic payload return from entity archive mutations.
8732#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8733#[serde(rename_all = "camelCase", default)]
8734pub struct ReleaseStageArchivePayload {
8735    /// The identifier of the last sync operation.
8736    pub last_sync_id: Option<f64>,
8737    /// Whether the operation was successful.
8738    pub success: Option<bool>,
8739    /// The archived/unarchived entity. Null if entity was deleted.
8740    pub entity: Option<Box<ReleaseStage>>,
8741}
8742impl GraphQLFields for ReleaseStageArchivePayload {
8743    type FullType = Self;
8744    fn selection() -> String {
8745        "lastSyncId success".into()
8746    }
8747}
8748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8749#[serde(rename_all = "camelCase", default)]
8750pub struct ReleaseStageConnection {
8751    pub edges: Option<Box<Vec<ReleaseStageEdge>>>,
8752    pub nodes: Option<Box<Vec<ReleaseStage>>>,
8753    pub page_info: Option<Box<PageInfo>>,
8754}
8755impl GraphQLFields for ReleaseStageConnection {
8756    type FullType = Self;
8757    fn selection() -> String {
8758        "".into()
8759    }
8760}
8761#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8762#[serde(rename_all = "camelCase", default)]
8763pub struct ReleaseStageEdge {
8764    pub node: Option<Box<ReleaseStage>>,
8765    /// Used in `before` and `after` args
8766    pub cursor: Option<String>,
8767}
8768impl GraphQLFields for ReleaseStageEdge {
8769    type FullType = Self;
8770    fn selection() -> String {
8771        "cursor".into()
8772    }
8773}
8774#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8775#[serde(rename_all = "camelCase", default)]
8776pub struct ReleaseStagePayload {
8777    /// The identifier of the last sync operation.
8778    pub last_sync_id: Option<f64>,
8779    /// The release stage that was created or updated.
8780    pub release_stage: Option<Box<ReleaseStage>>,
8781    /// Whether the operation was successful.
8782    pub success: Option<bool>,
8783}
8784impl GraphQLFields for ReleaseStagePayload {
8785    type FullType = Self;
8786    fn selection() -> String {
8787        "lastSyncId success".into()
8788    }
8789}
8790#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8791#[serde(rename_all = "camelCase", default)]
8792pub struct RepositorySuggestion {
8793    /// The full name of the repository in owner/name format (e.g., 'acme/backend').
8794    pub repository_full_name: Option<String>,
8795    /// Hostname of the Git service (e.g., 'github.com', 'github.company.com').
8796    pub hostname: Option<String>,
8797    /// Confidence score from 0.0 to 1.0.
8798    pub confidence: Option<f64>,
8799}
8800impl GraphQLFields for RepositorySuggestion {
8801    type FullType = Self;
8802    fn selection() -> String {
8803        "repositoryFullName hostname confidence".into()
8804    }
8805}
8806#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8807#[serde(rename_all = "camelCase", default)]
8808pub struct RepositorySuggestionsPayload {
8809    /// The suggested repositories.
8810    pub suggestions: Option<Box<Vec<RepositorySuggestion>>>,
8811}
8812impl GraphQLFields for RepositorySuggestionsPayload {
8813    type FullType = Self;
8814    fn selection() -> String {
8815        "".into()
8816    }
8817}
8818/// `Deprecated` A roadmap for projects.
8819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8820#[serde(rename_all = "camelCase", default)]
8821pub struct Roadmap {
8822    /// The unique identifier of the entity.
8823    pub id: Option<String>,
8824    /// The time at which the entity was created.
8825    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8826    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8827    /// been updated after creation.
8828    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8829    /// The time at which the entity was archived. Null if the entity has not been archived.
8830    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8831    /// The name of the roadmap.
8832    pub name: Option<String>,
8833    /// The description of the roadmap.
8834    pub description: Option<String>,
8835    /// The organization of the roadmap.
8836    pub organization: Option<Box<Organization>>,
8837    /// The user who created the roadmap.
8838    pub creator: Option<Box<User>>,
8839    /// The user who owns the roadmap.
8840    pub owner: Option<Box<User>>,
8841    /// The roadmap's unique URL slug.
8842    pub slug_id: Option<String>,
8843    /// The sort order of the roadmap within the organization.
8844    pub sort_order: Option<f64>,
8845    /// The roadmap's color.
8846    pub color: Option<String>,
8847    /// Projects associated with the roadmap.
8848    pub projects: Option<Box<ProjectConnection>>,
8849    /// The canonical url for the roadmap.
8850    pub url: Option<String>,
8851}
8852impl GraphQLFields for Roadmap {
8853    type FullType = Self;
8854    fn selection() -> String {
8855        "id createdAt updatedAt archivedAt name description slugId sortOrder color url".into()
8856    }
8857}
8858/// A generic payload return from entity archive mutations.
8859#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8860#[serde(rename_all = "camelCase", default)]
8861pub struct RoadmapArchivePayload {
8862    /// The identifier of the last sync operation.
8863    pub last_sync_id: Option<f64>,
8864    /// Whether the operation was successful.
8865    pub success: Option<bool>,
8866    /// The archived/unarchived entity. Null if entity was deleted.
8867    pub entity: Option<Box<Roadmap>>,
8868}
8869impl GraphQLFields for RoadmapArchivePayload {
8870    type FullType = Self;
8871    fn selection() -> String {
8872        "lastSyncId success".into()
8873    }
8874}
8875#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8876#[serde(rename_all = "camelCase", default)]
8877pub struct RoadmapConnection {
8878    pub edges: Option<Box<Vec<RoadmapEdge>>>,
8879    pub nodes: Option<Box<Vec<Roadmap>>>,
8880    pub page_info: Option<Box<PageInfo>>,
8881}
8882impl GraphQLFields for RoadmapConnection {
8883    type FullType = Self;
8884    fn selection() -> String {
8885        "".into()
8886    }
8887}
8888#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8889#[serde(rename_all = "camelCase", default)]
8890pub struct RoadmapEdge {
8891    pub node: Option<Box<Roadmap>>,
8892    /// Used in `before` and `after` args
8893    pub cursor: Option<String>,
8894}
8895impl GraphQLFields for RoadmapEdge {
8896    type FullType = Self;
8897    fn selection() -> String {
8898        "cursor".into()
8899    }
8900}
8901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8902#[serde(rename_all = "camelCase", default)]
8903pub struct RoadmapPayload {
8904    /// The identifier of the last sync operation.
8905    pub last_sync_id: Option<f64>,
8906    /// The roadmap that was created or updated.
8907    pub roadmap: Option<Box<Roadmap>>,
8908    /// Whether the operation was successful.
8909    pub success: Option<bool>,
8910}
8911impl GraphQLFields for RoadmapPayload {
8912    type FullType = Self;
8913    fn selection() -> String {
8914        "lastSyncId success".into()
8915    }
8916}
8917/// `Deprecated` Join table between projects and roadmaps.
8918#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8919#[serde(rename_all = "camelCase", default)]
8920pub struct RoadmapToProject {
8921    /// The unique identifier of the entity.
8922    pub id: Option<String>,
8923    /// The time at which the entity was created.
8924    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8925    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
8926    /// been updated after creation.
8927    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
8928    /// The time at which the entity was archived. Null if the entity has not been archived.
8929    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
8930    /// The project that the roadmap is associated with.
8931    pub project: Option<Box<Project>>,
8932    /// The roadmap that the project is associated with.
8933    pub roadmap: Option<Box<Roadmap>>,
8934    /// The sort order of the project within the roadmap.
8935    pub sort_order: Option<String>,
8936}
8937impl GraphQLFields for RoadmapToProject {
8938    type FullType = Self;
8939    fn selection() -> String {
8940        "id createdAt updatedAt archivedAt sortOrder".into()
8941    }
8942}
8943#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8944#[serde(rename_all = "camelCase", default)]
8945pub struct RoadmapToProjectConnection {
8946    pub edges: Option<Box<Vec<RoadmapToProjectEdge>>>,
8947    pub nodes: Option<Box<Vec<RoadmapToProject>>>,
8948    pub page_info: Option<Box<PageInfo>>,
8949}
8950impl GraphQLFields for RoadmapToProjectConnection {
8951    type FullType = Self;
8952    fn selection() -> String {
8953        "".into()
8954    }
8955}
8956#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8957#[serde(rename_all = "camelCase", default)]
8958pub struct RoadmapToProjectEdge {
8959    pub node: Option<Box<RoadmapToProject>>,
8960    /// Used in `before` and `after` args
8961    pub cursor: Option<String>,
8962}
8963impl GraphQLFields for RoadmapToProjectEdge {
8964    type FullType = Self;
8965    fn selection() -> String {
8966        "cursor".into()
8967    }
8968}
8969#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8970#[serde(rename_all = "camelCase", default)]
8971pub struct RoadmapToProjectPayload {
8972    /// The identifier of the last sync operation.
8973    pub last_sync_id: Option<f64>,
8974    /// The roadmapToProject that was created or updated.
8975    pub roadmap_to_project: Option<Box<RoadmapToProject>>,
8976    /// Whether the operation was successful.
8977    pub success: Option<bool>,
8978}
8979impl GraphQLFields for RoadmapToProjectPayload {
8980    type FullType = Self;
8981    fn selection() -> String {
8982        "lastSyncId success".into()
8983    }
8984}
8985/// Payload returned by semantic search.
8986#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8987#[serde(rename_all = "camelCase", default)]
8988pub struct SemanticSearchPayload {
8989    /// Whether the semantic search is enabled.
8990    pub enabled: Option<bool>,
8991    pub results: Option<Box<Vec<SemanticSearchResult>>>,
8992}
8993impl GraphQLFields for SemanticSearchPayload {
8994    type FullType = Self;
8995    fn selection() -> String {
8996        "enabled".into()
8997    }
8998}
8999/// A semantic search result reference.
9000#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9001#[serde(rename_all = "camelCase", default)]
9002pub struct SemanticSearchResult {
9003    /// The unique identifier of the entity.
9004    pub id: Option<String>,
9005    /// The type of the semantic search result.
9006    pub r#type: Option<SemanticSearchResultType>,
9007    /// The issue related to the semantic search result.
9008    pub issue: Option<Box<Issue>>,
9009    /// The project related to the semantic search result.
9010    pub project: Option<Box<Project>>,
9011    /// The initiative related to the semantic search result.
9012    pub initiative: Option<Box<Initiative>>,
9013    /// The document related to the semantic search result.
9014    pub document: Option<Box<Document>>,
9015}
9016impl GraphQLFields for SemanticSearchResult {
9017    type FullType = Self;
9018    fn selection() -> String {
9019        "id type".into()
9020    }
9021}
9022/// SES domain identity used for sending emails from a custom domain.
9023#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9024#[serde(rename_all = "camelCase", default)]
9025pub struct SesDomainIdentity {
9026    /// The unique identifier of the entity.
9027    pub id: Option<String>,
9028    /// The time at which the entity was created.
9029    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9030    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9031    /// been updated after creation.
9032    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9033    /// The time at which the entity was archived. Null if the entity has not been archived.
9034    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9035    /// The domain of the SES domain identity.
9036    pub domain: Option<String>,
9037    /// The AWS region of the SES domain identity.
9038    pub region: Option<String>,
9039    /// The organization of the SES domain identity.
9040    pub organization: Option<Box<Organization>>,
9041    /// The user who created the SES domain identity.
9042    pub creator: Option<Box<User>>,
9043    /// Whether the domain is fully verified and can be used for sending emails.
9044    pub can_send_from_custom_domain: Option<bool>,
9045    /// The DNS records for the SES domain identity.
9046    pub dns_records: Option<Box<Vec<SesDomainIdentityDnsRecord>>>,
9047}
9048impl GraphQLFields for SesDomainIdentity {
9049    type FullType = Self;
9050    fn selection() -> String {
9051        "id createdAt updatedAt archivedAt domain region canSendFromCustomDomain".into()
9052    }
9053}
9054/// A DNS record for a SES domain identity.
9055#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9056#[serde(rename_all = "camelCase", default)]
9057pub struct SesDomainIdentityDnsRecord {
9058    /// The type of the DNS record.
9059    pub r#type: Option<String>,
9060    /// The name of the DNS record.
9061    pub name: Option<String>,
9062    /// The content of the DNS record.
9063    pub content: Option<String>,
9064    /// Whether the DNS record is verified in the domain's DNS configuration.
9065    pub is_verified: Option<bool>,
9066}
9067impl GraphQLFields for SesDomainIdentityDnsRecord {
9068    type FullType = Self;
9069    fn selection() -> String {
9070        "type name content isVerified".into()
9071    }
9072}
9073/// Tuple for mapping Slack channel IDs to names.
9074#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9075#[serde(rename_all = "camelCase", default)]
9076pub struct SlackAsksTeamSettings {
9077    /// The Linear team ID.
9078    pub id: Option<String>,
9079    /// Whether the default Asks template is enabled in the given channel for this team.
9080    pub has_default_ask: Option<bool>,
9081}
9082impl GraphQLFields for SlackAsksTeamSettings {
9083    type FullType = Self;
9084    fn selection() -> String {
9085        "id hasDefaultAsk".into()
9086    }
9087}
9088#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9089#[serde(rename_all = "camelCase", default)]
9090pub struct SlackChannelConnectPayload {
9091    /// The identifier of the last sync operation.
9092    pub last_sync_id: Option<f64>,
9093    /// The integration that was created or updated.
9094    pub integration: Option<Box<Integration>>,
9095    /// Whether the operation was successful.
9096    pub success: Option<bool>,
9097    /// Whether the bot needs to be manually added to the channel.
9098    pub add_bot: Option<bool>,
9099    /// Whether it's recommended to connect main Slack integration.
9100    pub nudge_to_connect_main_slack_integration: Option<bool>,
9101    /// Whether it's recommended to update main Slack integration.
9102    pub nudge_to_update_main_slack_integration: Option<bool>,
9103}
9104impl GraphQLFields for SlackChannelConnectPayload {
9105    type FullType = Self;
9106    fn selection() -> String {
9107        "lastSyncId success addBot nudgeToConnectMainSlackIntegration nudgeToUpdateMainSlackIntegration"
9108            .into()
9109    }
9110}
9111/// Object for mapping Slack channel IDs to names and other settings.
9112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9113#[serde(rename_all = "camelCase", default)]
9114pub struct SlackChannelNameMapping {
9115    /// The Slack channel ID.
9116    pub id: Option<String>,
9117    /// The Slack channel name.
9118    pub name: Option<String>,
9119    /// Whether or not the Slack channel is private.
9120    pub is_private: Option<bool>,
9121    /// Whether or not the Slack channel is shared with an external org.
9122    pub is_shared: Option<bool>,
9123    /// Whether or not the Linear Asks bot has been added to this Slack channel.
9124    pub bot_added: Option<bool>,
9125    /// Which teams are connected to the channel and settings for those teams.
9126    pub teams: Option<Box<Vec<SlackAsksTeamSettings>>>,
9127    /// Whether or not top-level messages in this channel should automatically create Asks.
9128    pub auto_create_on_message: Option<bool>,
9129    /// Whether or not using the :ticket: emoji in this channel should automatically create Asks.
9130    pub auto_create_on_emoji: Option<bool>,
9131    /// Whether or not @-mentioning the bot should automatically create an Ask with the message.
9132    pub auto_create_on_bot_mention: Option<bool>,
9133    /// The optional template ID to use for Asks auto-created in this channel. If not set, auto-created Asks won't use any template.
9134    pub auto_create_template_id: Option<String>,
9135    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is canceled.
9136    pub post_cancellation_updates: Option<bool>,
9137    /// Whether or not synced Slack threads should be updated with a message and emoji when their Ask is completed.
9138    pub post_completion_updates: Option<bool>,
9139    /// Whether or not synced Slack threads should be updated with a message when their Ask is accepted from triage.
9140    pub post_accepted_from_triage_updates: Option<bool>,
9141    /// Whether or not to use AI to generate titles for Asks created in this channel.
9142    pub ai_titles: Option<bool>,
9143}
9144impl GraphQLFields for SlackChannelNameMapping {
9145    type FullType = Self;
9146    fn selection() -> String {
9147        "id name isPrivate isShared botAdded autoCreateOnMessage autoCreateOnEmoji autoCreateOnBotMention autoCreateTemplateId postCancellationUpdates postCompletionUpdates postAcceptedFromTriageUpdates aiTitles"
9148            .into()
9149    }
9150}
9151#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9152#[serde(rename_all = "camelCase", default)]
9153pub struct SsoUrlFromEmailResponse {
9154    /// Whether the operation was successful.
9155    pub success: Option<bool>,
9156    /// SAML SSO sign-in URL.
9157    pub saml_sso_url: Option<String>,
9158}
9159impl GraphQLFields for SsoUrlFromEmailResponse {
9160    type FullType = Self;
9161    fn selection() -> String {
9162        "success samlSsoUrl".into()
9163    }
9164}
9165#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9166#[serde(rename_all = "camelCase", default)]
9167pub struct SuccessPayload {
9168    /// The identifier of the last sync operation.
9169    pub last_sync_id: Option<f64>,
9170    /// Whether the operation was successful.
9171    pub success: Option<bool>,
9172}
9173impl GraphQLFields for SuccessPayload {
9174    type FullType = Self;
9175    fn selection() -> String {
9176        "lastSyncId success".into()
9177    }
9178}
9179/// An AI-generated summary.
9180#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9181#[serde(rename_all = "camelCase", default)]
9182pub struct Summary {
9183    /// The unique identifier of the entity.
9184    pub id: Option<String>,
9185    /// The time at which the entity was created.
9186    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9187    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9188    /// been updated after creation.
9189    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9190    /// The time at which the entity was archived. Null if the entity has not been archived.
9191    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9192    /// The issue this summary belongs to.
9193    pub issue: Option<Box<Issue>>,
9194    /// The summary content as a Prosemirror document.
9195    pub content: Option<serde_json::Value>,
9196    /// The evaluation log id for this summary generation.
9197    pub eval_log_id: Option<String>,
9198    /// The generation status of the summary.
9199    pub generation_status: Option<SummaryGenerationStatus>,
9200    /// The time at which the summary was generated.
9201    pub generated_at: Option<chrono::DateTime<chrono::Utc>>,
9202}
9203impl GraphQLFields for Summary {
9204    type FullType = Self;
9205    fn selection() -> String {
9206        "id createdAt updatedAt archivedAt content evalLogId generationStatus generatedAt".into()
9207    }
9208}
9209/// A comment thread that is synced with an external source.
9210#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9211#[serde(rename_all = "camelCase", default)]
9212pub struct SyncedExternalThread {
9213    pub id: Option<String>,
9214    /// The type of the external source.
9215    pub r#type: Option<String>,
9216    /// The sub type of the external source.
9217    pub sub_type: Option<String>,
9218    /// The display name of the source.
9219    pub name: Option<String>,
9220    /// The display name of the thread.
9221    pub display_name: Option<String>,
9222    /// The external url of the thread.
9223    pub url: Option<String>,
9224    /// Whether this thread is syncing with the external service.
9225    pub is_connected: Option<bool>,
9226    /// Whether the current user has the corresponding personal integration connected for the external service.
9227    pub is_personal_integration_connected: Option<bool>,
9228    /// Whether a connected personal integration is required to comment in this thread.
9229    pub is_personal_integration_required: Option<bool>,
9230}
9231impl GraphQLFields for SyncedExternalThread {
9232    type FullType = Self;
9233    fn selection() -> String {
9234        "id type subType name displayName url isConnected isPersonalIntegrationConnected isPersonalIntegrationRequired"
9235            .into()
9236    }
9237}
9238/// An organizational unit that contains issues.
9239#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9240#[serde(rename_all = "camelCase", default)]
9241pub struct Team {
9242    /// The unique identifier of the entity.
9243    pub id: Option<String>,
9244    /// The time at which the entity was created.
9245    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9246    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9247    /// been updated after creation.
9248    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9249    /// The time at which the entity was archived. Null if the entity has not been archived.
9250    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9251    /// The team's name.
9252    pub name: Option<String>,
9253    /// The team's unique key. The key is used in URLs.
9254    pub key: Option<String>,
9255    /// The team's description.
9256    pub description: Option<String>,
9257    /// The icon of the team.
9258    pub icon: Option<String>,
9259    /// The team's color.
9260    pub color: Option<String>,
9261    /// The time at which the team was retired. Null if the team has not been retired.
9262    pub retired_at: Option<chrono::DateTime<chrono::Utc>>,
9263    /// The organization that the team is associated with.
9264    pub organization: Option<Box<Organization>>,
9265    /// `Internal` The team's parent team.
9266    pub parent: Option<Box<Team>>,
9267    /// `Internal` The team's sub-teams.
9268    pub children: Option<Box<Vec<Team>>>,
9269    /// Whether the team uses cycles.
9270    pub cycles_enabled: Option<bool>,
9271    /// The day of the week that a new cycle starts.
9272    pub cycle_start_day: Option<f64>,
9273    /// The duration of a cycle in weeks.
9274    pub cycle_duration: Option<f64>,
9275    /// The cooldown time after each cycle in weeks.
9276    pub cycle_cooldown_time: Option<f64>,
9277    /// Auto assign started issues to current cycle.
9278    pub cycle_issue_auto_assign_started: Option<bool>,
9279    /// Auto assign completed issues to current cycle.
9280    pub cycle_issue_auto_assign_completed: Option<bool>,
9281    /// Auto assign issues to current cycle if in active status.
9282    pub cycle_lock_to_active: Option<bool>,
9283    /// How many upcoming cycles to create.
9284    pub upcoming_cycle_count: Option<f64>,
9285    /// The timezone of the team. Defaults to "America/Los_Angeles"
9286    pub timezone: Option<String>,
9287    /// Whether the team should inherit its workflow statuses from its parent. Only applies to sub-teams.
9288    pub inherit_workflow_statuses: Option<bool>,
9289    /// Whether the team should inherit its estimation settings from its parent. Only applies to sub-teams.
9290    pub inherit_issue_estimation: Option<bool>,
9291    /// The issue estimation type to use. Must be one of "notUsed", "exponential", "fibonacci", "linear", "tShirt".
9292    pub issue_estimation_type: Option<String>,
9293    /// `DEPRECATED` Whether issues without priority should be sorted first.
9294    pub issue_ordering_no_priority_first: Option<bool>,
9295    /// Whether to allow zeros in issues estimates.
9296    pub issue_estimation_allow_zero: Option<bool>,
9297    /// Where to move issues when changing state.
9298    pub set_issue_sort_order_on_state_change: Option<String>,
9299    /// Whether to add additional points to the estimate scale.
9300    pub issue_estimation_extended: Option<bool>,
9301    /// What to use as a default estimate for unestimated issues.
9302    pub default_issue_estimate: Option<f64>,
9303    /// Whether triage mode is enabled for the team or not.
9304    pub triage_enabled: Option<bool>,
9305    /// Whether an issue needs to have a priority set before leaving triage.
9306    pub require_priority_to_leave_triage: Option<bool>,
9307    /// The default workflow state into which issues are set when they are opened by team members.
9308    pub default_issue_state: Option<Box<WorkflowState>>,
9309    /// The default template to use for new issues created by members of the team.
9310    pub default_template_for_members: Option<Box<Template>>,
9311    /// The id of the default template to use for new issues created by members of the team.
9312    pub default_template_for_members_id: Option<String>,
9313    /// The default template to use for new issues created by non-members of the team.
9314    pub default_template_for_non_members: Option<Box<Template>>,
9315    /// The id of the default template to use for new issues created by non-members of the team.
9316    pub default_template_for_non_members_id: Option<String>,
9317    /// The default template to use for new projects created for the team.
9318    pub default_project_template: Option<Box<Template>>,
9319    /// The workflow state into which issues are set when they are opened by non-team members or integrations if triage is enabled.
9320    pub triage_issue_state: Option<Box<WorkflowState>>,
9321    /// Whether the team is private or not.
9322    pub private: Option<bool>,
9323    /// Whether all members in the workspace can join the team. Only used for public teams.
9324    pub all_members_can_join: Option<bool>,
9325    /// Security settings for the team.
9326    pub security_settings: Option<serde_json::Value>,
9327    /// `Internal` Facets associated with the team.
9328    pub facets: Option<Box<Vec<Facet>>>,
9329    /// `Internal` Posts associated with the team.
9330    pub posts: Option<Box<Vec<Post>>>,
9331    /// Whether the team is managed by SCIM integration.
9332    pub scim_managed: Option<bool>,
9333    /// The SCIM group name for the team.
9334    pub scim_group_name: Option<String>,
9335    /// `Internal` The progress history of the team.
9336    pub progress_history: Option<serde_json::Value>,
9337    /// `Internal` The current progress of the team.
9338    pub current_progress: Option<serde_json::Value>,
9339    /// The workflow state into which issues are moved when a PR has been opened as draft.
9340    pub draft_workflow_state: Option<Box<WorkflowState>>,
9341    /// The workflow state into which issues are moved when a PR has been opened.
9342    pub start_workflow_state: Option<Box<WorkflowState>>,
9343    /// The workflow state into which issues are moved when a review has been requested for the PR.
9344    pub review_workflow_state: Option<Box<WorkflowState>>,
9345    /// The workflow state into which issues are moved when a PR is ready to be merged.
9346    pub mergeable_workflow_state: Option<Box<WorkflowState>>,
9347    /// The workflow state into which issues are moved when a PR has been merged.
9348    pub merge_workflow_state: Option<Box<WorkflowState>>,
9349    /// Whether to group recent issue history entries.
9350    pub group_issue_history: Option<bool>,
9351    /// Whether to enable resolved thread AI summaries.
9352    pub ai_thread_summaries_enabled: Option<bool>,
9353    /// Whether to enable AI discussion summaries for issues in this team.
9354    pub ai_discussion_summaries_enabled: Option<bool>,
9355    /// Whether to send new issue notifications to Slack.
9356    pub slack_new_issue: Option<bool>,
9357    /// Whether to send new issue comment notifications to Slack.
9358    pub slack_issue_comments: Option<bool>,
9359    /// Whether to send new issue status updates to Slack.
9360    pub slack_issue_statuses: Option<bool>,
9361    /// Period after which issues are automatically closed in months. Null/undefined means disabled.
9362    pub auto_close_period: Option<f64>,
9363    /// The canceled workflow state which auto closed issues will be set to. Defaults to the first canceled state.
9364    pub auto_close_state_id: Option<String>,
9365    /// Period after which automatically closed and completed issues are automatically archived in months.
9366    pub auto_archive_period: Option<f64>,
9367    /// Whether parent issues should automatically close when all child issues are closed
9368    pub auto_close_parent_issues: Option<bool>,
9369    /// Whether child issues should automatically close when their parent issue is closed
9370    pub auto_close_child_issues: Option<bool>,
9371    /// The workflow state into which issues are moved when they are marked as a duplicate of another issue. Defaults to the first canceled state.
9372    pub marked_as_duplicate_workflow_state: Option<Box<WorkflowState>>,
9373    /// `Internal` Whether new users should join this team by default.
9374    pub join_by_default: Option<bool>,
9375    /// Calendar feed URL (iCal) for cycles.
9376    pub cycle_calender_url: Option<String>,
9377    /// The name of the team including its parent team name if it has one.
9378    pub display_name: Option<String>,
9379    /// Issues associated with the team.
9380    pub issues: Option<Box<IssueConnection>>,
9381    /// Number of issues in the team.
9382    pub issue_count: Option<i64>,
9383    /// Cycles associated with the team.
9384    pub cycles: Option<Box<CycleConnection>>,
9385    /// Team's currently active cycle.
9386    pub active_cycle: Option<Box<Cycle>>,
9387    /// Team's triage responsibility.
9388    pub triage_responsibility: Option<Box<TriageResponsibility>>,
9389    /// Users who are members of this team.
9390    pub members: Option<Box<UserConnection>>,
9391    /// `ALPHA` The membership of the given user in the team.
9392    pub membership: Option<Box<TeamMembership>>,
9393    /// Memberships associated with the team. For easier access of the same data, use `members` query.
9394    pub memberships: Option<Box<TeamMembershipConnection>>,
9395    /// Projects associated with the team.
9396    pub projects: Option<Box<ProjectConnection>>,
9397    /// The states that define the workflow associated with the team.
9398    pub states: Option<Box<WorkflowStateConnection>>,
9399    /// The Git automation states for the team.
9400    pub git_automation_states: Option<Box<GitAutomationStateConnection>>,
9401    /// Templates associated with the team.
9402    pub templates: Option<Box<TemplateConnection>>,
9403    /// Labels associated with the team.
9404    pub labels: Option<Box<IssueLabelConnection>>,
9405    /// Webhooks associated with the team.
9406    pub webhooks: Option<Box<WebhookConnection>>,
9407    /// Settings for all integrations associated with that team.
9408    pub integrations_settings: Option<Box<IntegrationsSettings>>,
9409    /// `DEPRECATED` Whether to move issues to bottom of the column when changing state.
9410    pub issue_sort_order_default_to_bottom: Option<bool>,
9411    /// `DEPRECATED` Unique hash for the team to be used in invite URLs.
9412    pub invite_hash: Option<String>,
9413}
9414impl GraphQLFields for Team {
9415    type FullType = Self;
9416    fn selection() -> String {
9417        "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"
9418            .into()
9419    }
9420}
9421/// A generic payload return from entity archive mutations.
9422#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9423#[serde(rename_all = "camelCase", default)]
9424pub struct TeamArchivePayload {
9425    /// The identifier of the last sync operation.
9426    pub last_sync_id: Option<f64>,
9427    /// Whether the operation was successful.
9428    pub success: Option<bool>,
9429    /// The archived/unarchived entity. Null if entity was deleted.
9430    pub entity: Option<Box<Team>>,
9431}
9432impl GraphQLFields for TeamArchivePayload {
9433    type FullType = Self;
9434    fn selection() -> String {
9435        "lastSyncId success".into()
9436    }
9437}
9438#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9439#[serde(rename_all = "camelCase", default)]
9440pub struct TeamConnection {
9441    pub edges: Option<Box<Vec<TeamEdge>>>,
9442    pub nodes: Option<Box<Vec<Team>>>,
9443    pub page_info: Option<Box<PageInfo>>,
9444}
9445impl GraphQLFields for TeamConnection {
9446    type FullType = Self;
9447    fn selection() -> String {
9448        "".into()
9449    }
9450}
9451#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9452#[serde(rename_all = "camelCase", default)]
9453pub struct TeamEdge {
9454    pub node: Option<Box<Team>>,
9455    /// Used in `before` and `after` args
9456    pub cursor: Option<String>,
9457}
9458impl GraphQLFields for TeamEdge {
9459    type FullType = Self;
9460    fn selection() -> String {
9461        "cursor".into()
9462    }
9463}
9464/// Defines the membership of a user to a team.
9465#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9466#[serde(rename_all = "camelCase", default)]
9467pub struct TeamMembership {
9468    /// The unique identifier of the entity.
9469    pub id: Option<String>,
9470    /// The time at which the entity was created.
9471    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9472    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9473    /// been updated after creation.
9474    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9475    /// The time at which the entity was archived. Null if the entity has not been archived.
9476    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9477    /// The user that the membership is associated with.
9478    pub user: Option<Box<User>>,
9479    /// The team that the membership is associated with.
9480    pub team: Option<Box<Team>>,
9481    /// Whether the user is an owner of the team.
9482    pub owner: Option<bool>,
9483    /// The order of the item in the users team list.
9484    pub sort_order: Option<f64>,
9485}
9486impl GraphQLFields for TeamMembership {
9487    type FullType = Self;
9488    fn selection() -> String {
9489        "id createdAt updatedAt archivedAt owner sortOrder".into()
9490    }
9491}
9492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9493#[serde(rename_all = "camelCase", default)]
9494pub struct TeamMembershipConnection {
9495    pub edges: Option<Box<Vec<TeamMembershipEdge>>>,
9496    pub nodes: Option<Box<Vec<TeamMembership>>>,
9497    pub page_info: Option<Box<PageInfo>>,
9498}
9499impl GraphQLFields for TeamMembershipConnection {
9500    type FullType = Self;
9501    fn selection() -> String {
9502        "".into()
9503    }
9504}
9505#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9506#[serde(rename_all = "camelCase", default)]
9507pub struct TeamMembershipEdge {
9508    pub node: Option<Box<TeamMembership>>,
9509    /// Used in `before` and `after` args
9510    pub cursor: Option<String>,
9511}
9512impl GraphQLFields for TeamMembershipEdge {
9513    type FullType = Self;
9514    fn selection() -> String {
9515        "cursor".into()
9516    }
9517}
9518#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9519#[serde(rename_all = "camelCase", default)]
9520pub struct TeamMembershipPayload {
9521    /// The identifier of the last sync operation.
9522    pub last_sync_id: Option<f64>,
9523    /// The team membership that was created or updated.
9524    pub team_membership: Option<Box<TeamMembership>>,
9525    /// Whether the operation was successful.
9526    pub success: Option<bool>,
9527}
9528impl GraphQLFields for TeamMembershipPayload {
9529    type FullType = Self;
9530    fn selection() -> String {
9531        "lastSyncId success".into()
9532    }
9533}
9534/// A team notification subscription.
9535#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9536#[serde(rename_all = "camelCase", default)]
9537pub struct TeamNotificationSubscription {
9538    /// The unique identifier of the entity.
9539    pub id: Option<String>,
9540    /// The time at which the entity was created.
9541    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9542    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9543    /// been updated after creation.
9544    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9545    /// The time at which the entity was archived. Null if the entity has not been archived.
9546    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9547    /// The user that subscribed to receive notifications.
9548    pub subscriber: Option<Box<User>>,
9549    /// The customer associated with the notification subscription.
9550    pub customer: Option<Box<Customer>>,
9551    /// The contextual custom view associated with the notification subscription.
9552    pub custom_view: Option<Box<CustomView>>,
9553    /// The contextual cycle view associated with the notification subscription.
9554    pub cycle: Option<Box<Cycle>>,
9555    /// The contextual label view associated with the notification subscription.
9556    pub label: Option<Box<IssueLabel>>,
9557    /// The contextual project view associated with the notification subscription.
9558    pub project: Option<Box<Project>>,
9559    /// The contextual initiative view associated with the notification subscription.
9560    pub initiative: Option<Box<Initiative>>,
9561    /// The team subscribed to.
9562    pub team: Option<Box<Team>>,
9563    /// The user view associated with the notification subscription.
9564    pub user: Option<Box<User>>,
9565    /// The type of view to which the notification subscription context is associated with.
9566    pub context_view_type: Option<ContextViewType>,
9567    /// The type of user view to which the notification subscription context is associated with.
9568    pub user_context_view_type: Option<UserContextViewType>,
9569    /// Whether the subscription is active or not.
9570    pub active: Option<bool>,
9571    /// The type of subscription.
9572    pub notification_subscription_types: Option<Vec<String>>,
9573}
9574impl GraphQLFields for TeamNotificationSubscription {
9575    type FullType = Self;
9576    fn selection() -> String {
9577        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
9578            .into()
9579    }
9580}
9581#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9582#[serde(rename_all = "camelCase", default)]
9583pub struct TeamPayload {
9584    /// The identifier of the last sync operation.
9585    pub last_sync_id: Option<f64>,
9586    /// The team that was created or updated.
9587    pub team: Option<Box<Team>>,
9588    /// Whether the operation was successful.
9589    pub success: Option<bool>,
9590}
9591impl GraphQLFields for TeamPayload {
9592    type FullType = Self;
9593    fn selection() -> String {
9594        "lastSyncId success".into()
9595    }
9596}
9597/// A template object used for creating entities faster.
9598#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9599#[serde(rename_all = "camelCase", default)]
9600pub struct Template {
9601    /// The unique identifier of the entity.
9602    pub id: Option<String>,
9603    /// The time at which the entity was created.
9604    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9605    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9606    /// been updated after creation.
9607    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9608    /// The time at which the entity was archived. Null if the entity has not been archived.
9609    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9610    /// The entity type this template is for.
9611    pub r#type: Option<String>,
9612    /// The name of the template.
9613    pub name: Option<String>,
9614    /// Template description.
9615    pub description: Option<String>,
9616    /// Template data.
9617    pub template_data: Option<serde_json::Value>,
9618    /// The sort order of the template.
9619    pub sort_order: Option<f64>,
9620    /// The date when the template was last applied.
9621    pub last_applied_at: Option<chrono::DateTime<chrono::Utc>>,
9622    /// The organization that the template is associated with. If null, the template is associated with a particular team.
9623    pub organization: Option<Box<Organization>>,
9624    /// The team that the template is associated with. If null, the template is global to the workspace.
9625    pub team: Option<Box<Team>>,
9626    /// The user who created the template.
9627    pub creator: Option<Box<User>>,
9628    /// The user who last updated the template.
9629    pub last_updated_by: Option<Box<User>>,
9630    /// The original template inherited from.
9631    pub inherited_from: Option<Box<Template>>,
9632    /// `Internal` Whether the template has form fields
9633    pub has_form_fields: Option<bool>,
9634}
9635impl GraphQLFields for Template {
9636    type FullType = Self;
9637    fn selection() -> String {
9638        "id createdAt updatedAt archivedAt type name description templateData sortOrder lastAppliedAt hasFormFields"
9639            .into()
9640    }
9641}
9642#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9643#[serde(rename_all = "camelCase", default)]
9644pub struct TemplateConnection {
9645    pub edges: Option<Box<Vec<TemplateEdge>>>,
9646    pub nodes: Option<Box<Vec<Template>>>,
9647    pub page_info: Option<Box<PageInfo>>,
9648}
9649impl GraphQLFields for TemplateConnection {
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 TemplateEdge {
9658    pub node: Option<Box<Template>>,
9659    /// Used in `before` and `after` args
9660    pub cursor: Option<String>,
9661}
9662impl GraphQLFields for TemplateEdge {
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 TemplatePayload {
9671    /// The identifier of the last sync operation.
9672    pub last_sync_id: Option<f64>,
9673    /// The template that was created or updated.
9674    pub template: Option<Box<Template>>,
9675    /// Whether the operation was successful.
9676    pub success: Option<bool>,
9677}
9678impl GraphQLFields for TemplatePayload {
9679    type FullType = Self;
9680    fn selection() -> String {
9681        "lastSyncId success".into()
9682    }
9683}
9684/// A time schedule.
9685#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9686#[serde(rename_all = "camelCase", default)]
9687pub struct TimeSchedule {
9688    /// The unique identifier of the entity.
9689    pub id: Option<String>,
9690    /// The time at which the entity was created.
9691    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9692    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9693    /// been updated after creation.
9694    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9695    /// The time at which the entity was archived. Null if the entity has not been archived.
9696    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9697    /// The name of the schedule.
9698    pub name: Option<String>,
9699    /// The schedule entries.
9700    pub entries: Option<Box<Vec<TimeScheduleEntry>>>,
9701    /// The identifier of the external schedule.
9702    pub external_id: Option<String>,
9703    /// The URL to the external schedule.
9704    pub external_url: Option<String>,
9705    /// The organization of the schedule.
9706    pub organization: Option<Box<Organization>>,
9707    /// The identifier of the Linear integration populating the schedule.
9708    pub integration: Option<Box<Integration>>,
9709}
9710impl GraphQLFields for TimeSchedule {
9711    type FullType = Self;
9712    fn selection() -> String {
9713        "id createdAt updatedAt archivedAt name externalId externalUrl".into()
9714    }
9715}
9716#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9717#[serde(rename_all = "camelCase", default)]
9718pub struct TimeScheduleConnection {
9719    pub edges: Option<Box<Vec<TimeScheduleEdge>>>,
9720    pub nodes: Option<Box<Vec<TimeSchedule>>>,
9721    pub page_info: Option<Box<PageInfo>>,
9722}
9723impl GraphQLFields for TimeScheduleConnection {
9724    type FullType = Self;
9725    fn selection() -> String {
9726        "".into()
9727    }
9728}
9729#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9730#[serde(rename_all = "camelCase", default)]
9731pub struct TimeScheduleEdge {
9732    pub node: Option<Box<TimeSchedule>>,
9733    /// Used in `before` and `after` args
9734    pub cursor: Option<String>,
9735}
9736impl GraphQLFields for TimeScheduleEdge {
9737    type FullType = Self;
9738    fn selection() -> String {
9739        "cursor".into()
9740    }
9741}
9742#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9743#[serde(rename_all = "camelCase", default)]
9744pub struct TimeScheduleEntry {
9745    /// The start date of the schedule in ISO 8601 date-time format.
9746    pub starts_at: Option<chrono::DateTime<chrono::Utc>>,
9747    /// The end date of the schedule in ISO 8601 date-time format.
9748    pub ends_at: Option<chrono::DateTime<chrono::Utc>>,
9749    /// 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.
9750    pub user_id: Option<String>,
9751    /// 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.
9752    pub user_email: Option<String>,
9753}
9754impl GraphQLFields for TimeScheduleEntry {
9755    type FullType = Self;
9756    fn selection() -> String {
9757        "startsAt endsAt userId userEmail".into()
9758    }
9759}
9760#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9761#[serde(rename_all = "camelCase", default)]
9762pub struct TimeSchedulePayload {
9763    /// The identifier of the last sync operation.
9764    pub last_sync_id: Option<f64>,
9765    pub time_schedule: Option<Box<TimeSchedule>>,
9766    /// Whether the operation was successful.
9767    pub success: Option<bool>,
9768}
9769impl GraphQLFields for TimeSchedulePayload {
9770    type FullType = Self;
9771    fn selection() -> String {
9772        "lastSyncId success".into()
9773    }
9774}
9775/// A team's triage responsibility.
9776#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9777#[serde(rename_all = "camelCase", default)]
9778pub struct TriageResponsibility {
9779    /// The unique identifier of the entity.
9780    pub id: Option<String>,
9781    /// The time at which the entity was created.
9782    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9783    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9784    /// been updated after creation.
9785    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9786    /// The time at which the entity was archived. Null if the entity has not been archived.
9787    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9788    /// The action to take when an issue is added to triage.
9789    pub action: Option<TriageResponsibilityAction>,
9790    /// Set of users used for triage responsibility.
9791    pub manual_selection: Option<Box<TriageResponsibilityManualSelection>>,
9792    /// The team to which the triage responsibility belongs to.
9793    pub team: Option<Box<Team>>,
9794    /// The time schedule used for scheduling.
9795    pub time_schedule: Option<Box<TimeSchedule>>,
9796    /// The user currently responsible for triage.
9797    pub current_user: Option<Box<User>>,
9798}
9799impl GraphQLFields for TriageResponsibility {
9800    type FullType = Self;
9801    fn selection() -> String {
9802        "id createdAt updatedAt archivedAt action".into()
9803    }
9804}
9805#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9806#[serde(rename_all = "camelCase", default)]
9807pub struct TriageResponsibilityConnection {
9808    pub edges: Option<Box<Vec<TriageResponsibilityEdge>>>,
9809    pub nodes: Option<Box<Vec<TriageResponsibility>>>,
9810    pub page_info: Option<Box<PageInfo>>,
9811}
9812impl GraphQLFields for TriageResponsibilityConnection {
9813    type FullType = Self;
9814    fn selection() -> String {
9815        "".into()
9816    }
9817}
9818#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9819#[serde(rename_all = "camelCase", default)]
9820pub struct TriageResponsibilityEdge {
9821    pub node: Option<Box<TriageResponsibility>>,
9822    /// Used in `before` and `after` args
9823    pub cursor: Option<String>,
9824}
9825impl GraphQLFields for TriageResponsibilityEdge {
9826    type FullType = Self;
9827    fn selection() -> String {
9828        "cursor".into()
9829    }
9830}
9831#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9832#[serde(rename_all = "camelCase", default)]
9833pub struct TriageResponsibilityManualSelection {
9834    /// The set of users responsible for triage.
9835    pub user_ids: Option<Vec<String>>,
9836    /// `Internal` The index of the current userId used for the assign action when having more than one user.
9837    pub assignment_index: Option<i64>,
9838}
9839impl GraphQLFields for TriageResponsibilityManualSelection {
9840    type FullType = Self;
9841    fn selection() -> String {
9842        "userIds assignmentIndex".into()
9843    }
9844}
9845#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9846#[serde(rename_all = "camelCase", default)]
9847pub struct TriageResponsibilityPayload {
9848    /// The identifier of the last sync operation.
9849    pub last_sync_id: Option<f64>,
9850    pub triage_responsibility: Option<Box<TriageResponsibility>>,
9851    /// Whether the operation was successful.
9852    pub success: Option<bool>,
9853}
9854impl GraphQLFields for TriageResponsibilityPayload {
9855    type FullType = Self;
9856    fn selection() -> String {
9857        "lastSyncId success".into()
9858    }
9859}
9860/// Object representing Google Cloud upload policy, plus additional data.
9861#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9862#[serde(rename_all = "camelCase", default)]
9863pub struct UploadFile {
9864    /// The filename.
9865    pub filename: Option<String>,
9866    /// The content type.
9867    pub content_type: Option<String>,
9868    /// The size of the uploaded file.
9869    pub size: Option<i64>,
9870    /// The signed URL the for the uploaded file. (assigned automatically).
9871    pub upload_url: Option<String>,
9872    /// The asset URL for the uploaded file. (assigned automatically).
9873    pub asset_url: Option<String>,
9874    pub meta_data: Option<serde_json::Value>,
9875    pub headers: Option<Box<Vec<UploadFileHeader>>>,
9876}
9877impl GraphQLFields for UploadFile {
9878    type FullType = Self;
9879    fn selection() -> String {
9880        "filename contentType size uploadUrl assetUrl metaData".into()
9881    }
9882}
9883#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9884#[serde(rename_all = "camelCase", default)]
9885pub struct UploadFileHeader {
9886    /// Upload file header key.
9887    pub key: Option<String>,
9888    /// Upload file header value.
9889    pub value: Option<String>,
9890}
9891impl GraphQLFields for UploadFileHeader {
9892    type FullType = Self;
9893    fn selection() -> String {
9894        "key value".into()
9895    }
9896}
9897#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9898#[serde(rename_all = "camelCase", default)]
9899pub struct UploadPayload {
9900    /// The identifier of the last sync operation.
9901    pub last_sync_id: Option<f64>,
9902    /// Object describing the file to be uploaded.
9903    pub upload_file: Option<Box<UploadFile>>,
9904    /// Whether the operation was successful.
9905    pub success: Option<bool>,
9906}
9907impl GraphQLFields for UploadPayload {
9908    type FullType = Self;
9909    fn selection() -> String {
9910        "lastSyncId success".into()
9911    }
9912}
9913/// A user that has access to the the resources of an organization.
9914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9915#[serde(rename_all = "camelCase", default)]
9916pub struct User {
9917    /// The unique identifier of the entity.
9918    pub id: Option<String>,
9919    /// The time at which the entity was created.
9920    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9921    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
9922    /// been updated after creation.
9923    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9924    /// The time at which the entity was archived. Null if the entity has not been archived.
9925    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
9926    /// The user's full name.
9927    pub name: Option<String>,
9928    /// The user's display (nick) name. Unique within each organization.
9929    pub display_name: Option<String>,
9930    /// The user's email address.
9931    pub email: Option<String>,
9932    /// An URL to the user's avatar image.
9933    pub avatar_url: Option<String>,
9934    /// Reason why is the account disabled.
9935    pub disable_reason: Option<String>,
9936    /// `DEPRECATED` Hash for the user to be used in calendar URLs.
9937    pub calendar_hash: Option<String>,
9938    /// A short description of the user, either its title or bio.
9939    pub description: Option<String>,
9940    /// The emoji to represent the user current status.
9941    pub status_emoji: Option<String>,
9942    /// The label of the user current status.
9943    pub status_label: Option<String>,
9944    /// A date at which the user current status should be cleared.
9945    pub status_until_at: Option<chrono::DateTime<chrono::Utc>>,
9946    /// The local timezone of the user.
9947    pub timezone: Option<String>,
9948    /// Organization the user belongs to.
9949    pub organization: Option<Box<Organization>>,
9950    /// The last time the user was seen online.
9951    pub last_seen: Option<chrono::DateTime<chrono::Utc>>,
9952    /// `INTERNAL` Identity provider the user is managed by.
9953    pub identity_provider: Option<Box<IdentityProvider>>,
9954    /// The initials of the user.
9955    pub initials: Option<String>,
9956    /// The background color of the avatar for users without set avatar.
9957    pub avatar_background_color: Option<String>,
9958    /// Whether the user is a guest in the workspace and limited to accessing a subset of teams.
9959    pub guest: Option<bool>,
9960    /// Whether the user is an app.
9961    pub app: Option<bool>,
9962    /// Whether the user is mentionable.
9963    pub is_mentionable: Option<bool>,
9964    /// Whether the user is assignable.
9965    pub is_assignable: Option<bool>,
9966    /// Whether the user account is active or disabled (suspended).
9967    pub active: Option<bool>,
9968    /// Enabled feature flags for the user.
9969    pub feature_flags: Option<Vec<String>>,
9970    /// The user's issue drafts
9971    pub issue_drafts: Option<Box<IssueDraftConnection>>,
9972    /// The user's drafts
9973    pub drafts: Option<Box<DraftConnection>>,
9974    /// User's profile URL.
9975    pub url: Option<String>,
9976    /// Issues assigned to the user.
9977    pub assigned_issues: Option<Box<IssueConnection>>,
9978    /// Issues delegated to this user.
9979    pub delegated_issues: Option<Box<IssueConnection>>,
9980    /// Issues created by the user.
9981    pub created_issues: Option<Box<IssueConnection>>,
9982    /// Number of issues created.
9983    pub created_issue_count: Option<i64>,
9984    /// Teams the user is part of.
9985    pub teams: Option<Box<TeamConnection>>,
9986    /// Memberships associated with the user. For easier access of the same data, use `teams` query.
9987    pub team_memberships: Option<Box<TeamMembershipConnection>>,
9988    /// `INTERNAL` The user's pinned feeds.
9989    pub feed_facets: Option<Box<FacetConnection>>,
9990    /// Whether this user can access any public team in the organization.
9991    pub can_access_any_public_team: Option<bool>,
9992    /// Whether the user is the currently authenticated user.
9993    pub is_me: Option<bool>,
9994    /// Whether the user is an organization administrator.
9995    pub admin: Option<bool>,
9996    /// Whether the user is an organization owner.
9997    pub owner: Option<bool>,
9998    /// Whether this agent user supports agent sessions.
9999    pub supports_agent_sessions: Option<bool>,
10000    /// `DEPRECATED` Unique hash for the user to be used in invite URLs.
10001    pub invite_hash: Option<String>,
10002    /// The user's GitHub user ID.
10003    pub git_hub_user_id: Option<String>,
10004}
10005impl GraphQLFields for User {
10006    type FullType = Self;
10007    fn selection() -> String {
10008        "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"
10009            .into()
10010    }
10011}
10012#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10013#[serde(rename_all = "camelCase", default)]
10014pub struct UserAdminPayload {
10015    /// Whether the operation was successful.
10016    pub success: Option<bool>,
10017}
10018impl GraphQLFields for UserAdminPayload {
10019    type FullType = Self;
10020    fn selection() -> String {
10021        "success".into()
10022    }
10023}
10024#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10025#[serde(rename_all = "camelCase", default)]
10026pub struct UserConnection {
10027    pub edges: Option<Box<Vec<UserEdge>>>,
10028    pub nodes: Option<Box<Vec<User>>>,
10029    pub page_info: Option<Box<PageInfo>>,
10030}
10031impl GraphQLFields for UserConnection {
10032    type FullType = Self;
10033    fn selection() -> String {
10034        "".into()
10035    }
10036}
10037#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10038#[serde(rename_all = "camelCase", default)]
10039pub struct UserEdge {
10040    pub node: Option<Box<User>>,
10041    /// Used in `before` and `after` args
10042    pub cursor: Option<String>,
10043}
10044impl GraphQLFields for UserEdge {
10045    type FullType = Self;
10046    fn selection() -> String {
10047        "cursor".into()
10048    }
10049}
10050/// A user notification subscription.
10051#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10052#[serde(rename_all = "camelCase", default)]
10053pub struct UserNotificationSubscription {
10054    /// The unique identifier of the entity.
10055    pub id: Option<String>,
10056    /// The time at which the entity was created.
10057    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10058    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10059    /// been updated after creation.
10060    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10061    /// The time at which the entity was archived. Null if the entity has not been archived.
10062    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10063    /// The user that subscribed to receive notifications.
10064    pub subscriber: Option<Box<User>>,
10065    /// The customer associated with the notification subscription.
10066    pub customer: Option<Box<Customer>>,
10067    /// The contextual custom view associated with the notification subscription.
10068    pub custom_view: Option<Box<CustomView>>,
10069    /// The contextual cycle view associated with the notification subscription.
10070    pub cycle: Option<Box<Cycle>>,
10071    /// The contextual label view associated with the notification subscription.
10072    pub label: Option<Box<IssueLabel>>,
10073    /// The contextual project view associated with the notification subscription.
10074    pub project: Option<Box<Project>>,
10075    /// The contextual initiative view associated with the notification subscription.
10076    pub initiative: Option<Box<Initiative>>,
10077    /// The team associated with the notification subscription.
10078    pub team: Option<Box<Team>>,
10079    /// The user subscribed to.
10080    pub user: Option<Box<User>>,
10081    /// The type of view to which the notification subscription context is associated with.
10082    pub context_view_type: Option<ContextViewType>,
10083    /// The type of user view to which the notification subscription context is associated with.
10084    pub user_context_view_type: Option<UserContextViewType>,
10085    /// Whether the subscription is active or not.
10086    pub active: Option<bool>,
10087    /// The type of subscription.
10088    pub notification_subscription_types: Option<Vec<String>>,
10089}
10090impl GraphQLFields for UserNotificationSubscription {
10091    type FullType = Self;
10092    fn selection() -> String {
10093        "id createdAt updatedAt archivedAt contextViewType userContextViewType active notificationSubscriptionTypes"
10094            .into()
10095    }
10096}
10097#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10098#[serde(rename_all = "camelCase", default)]
10099pub struct UserPayload {
10100    /// The identifier of the last sync operation.
10101    pub last_sync_id: Option<f64>,
10102    /// The user that was created or updated.
10103    pub user: Option<Box<User>>,
10104    /// Whether the operation was successful.
10105    pub success: Option<bool>,
10106}
10107impl GraphQLFields for UserPayload {
10108    type FullType = Self;
10109    fn selection() -> String {
10110        "lastSyncId success".into()
10111    }
10112}
10113/// The settings of a user as a JSON object.
10114#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10115#[serde(rename_all = "camelCase", default)]
10116pub struct UserSettings {
10117    /// The unique identifier of the entity.
10118    pub id: Option<String>,
10119    /// The time at which the entity was created.
10120    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10121    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10122    /// been updated after creation.
10123    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10124    /// The time at which the entity was archived. Null if the entity has not been archived.
10125    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10126    /// The notification delivery preferences for the user. Note: notificationDisabled field is deprecated in favor of notificationChannelPreferences.
10127    pub notification_delivery_preferences: Option<Box<NotificationDeliveryPreferences>>,
10128    /// The email types the user has unsubscribed from.
10129    pub unsubscribed_from: Option<Vec<String>>,
10130    /// The user associated with these settings.
10131    pub user: Option<Box<User>>,
10132    /// Hash for the user to be used in calendar URLs.
10133    pub calendar_hash: Option<String>,
10134    /// Whether this user is subscribed to changelog email or not.
10135    pub subscribed_to_changelog: Option<bool>,
10136    /// Whether this user is subscribed to DPA emails or not.
10137    pub subscribed_to_dpa: Option<bool>,
10138    /// Whether this user is subscribed to invite accepted emails or not.
10139    pub subscribed_to_invite_accepted: Option<bool>,
10140    /// Whether this user is subscribed to privacy and legal update emails or not.
10141    pub subscribed_to_privacy_legal_updates: Option<bool>,
10142    /// The user's feed summary schedule preference.
10143    pub feed_summary_schedule: Option<FeedSummarySchedule>,
10144    /// Whether to show full user names instead of display names.
10145    pub show_full_user_names: Option<bool>,
10146    /// The user's last seen time for the pulse feed.
10147    pub feed_last_seen_time: Option<chrono::DateTime<chrono::Utc>>,
10148    /// Whether to auto-assign newly created issues to the current user by default.
10149    pub auto_assign_to_self: Option<bool>,
10150    /// The user's notification category preferences.
10151    pub notification_category_preferences: Option<Box<NotificationCategoryPreferences>>,
10152    /// The user's notification channel preferences.
10153    pub notification_channel_preferences: Option<Box<NotificationChannelPreferences>>,
10154    /// The user's theme for a given mode and device type.
10155    pub theme: Option<Box<UserSettingsTheme>>,
10156}
10157impl GraphQLFields for UserSettings {
10158    type FullType = Self;
10159    fn selection() -> String {
10160        "id createdAt updatedAt archivedAt unsubscribedFrom calendarHash subscribedToChangelog subscribedToDPA subscribedToInviteAccepted subscribedToPrivacyLegalUpdates feedSummarySchedule showFullUserNames feedLastSeenTime autoAssignToSelf"
10161            .into()
10162    }
10163}
10164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10165#[serde(rename_all = "camelCase", default)]
10166pub struct UserSettingsCustomSidebarTheme {
10167    /// The accent color in LCH format.
10168    pub accent: Option<Vec<f64>>,
10169    /// The base color in LCH format.
10170    pub base: Option<Vec<f64>>,
10171    /// The contrast value.
10172    pub contrast: Option<i64>,
10173}
10174impl GraphQLFields for UserSettingsCustomSidebarTheme {
10175    type FullType = Self;
10176    fn selection() -> String {
10177        "accent base contrast".into()
10178    }
10179}
10180#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10181#[serde(rename_all = "camelCase", default)]
10182pub struct UserSettingsCustomTheme {
10183    /// The accent color in LCH format.
10184    pub accent: Option<Vec<f64>>,
10185    /// The base color in LCH format.
10186    pub base: Option<Vec<f64>>,
10187    /// The contrast value.
10188    pub contrast: Option<i64>,
10189    /// Optional sidebar theme colors.
10190    pub sidebar: Option<Box<UserSettingsCustomSidebarTheme>>,
10191}
10192impl GraphQLFields for UserSettingsCustomTheme {
10193    type FullType = Self;
10194    fn selection() -> String {
10195        "accent base contrast".into()
10196    }
10197}
10198#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10199#[serde(rename_all = "camelCase", default)]
10200pub struct UserSettingsFlagPayload {
10201    /// The identifier of the last sync operation.
10202    pub last_sync_id: Option<f64>,
10203    /// The flag key which was updated.
10204    pub flag: Option<String>,
10205    /// The flag value after update.
10206    pub value: Option<i64>,
10207    /// Whether the operation was successful.
10208    pub success: Option<bool>,
10209}
10210impl GraphQLFields for UserSettingsFlagPayload {
10211    type FullType = Self;
10212    fn selection() -> String {
10213        "lastSyncId flag value success".into()
10214    }
10215}
10216#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10217#[serde(rename_all = "camelCase", default)]
10218pub struct UserSettingsFlagsResetPayload {
10219    /// The identifier of the last sync operation.
10220    pub last_sync_id: Option<f64>,
10221    /// Whether the operation was successful.
10222    pub success: Option<bool>,
10223}
10224impl GraphQLFields for UserSettingsFlagsResetPayload {
10225    type FullType = Self;
10226    fn selection() -> String {
10227        "lastSyncId success".into()
10228    }
10229}
10230#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10231#[serde(rename_all = "camelCase", default)]
10232pub struct UserSettingsPayload {
10233    /// The identifier of the last sync operation.
10234    pub last_sync_id: Option<f64>,
10235    /// The user's settings.
10236    pub user_settings: Option<Box<UserSettings>>,
10237    /// Whether the operation was successful.
10238    pub success: Option<bool>,
10239}
10240impl GraphQLFields for UserSettingsPayload {
10241    type FullType = Self;
10242    fn selection() -> String {
10243        "lastSyncId success".into()
10244    }
10245}
10246#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10247#[serde(rename_all = "camelCase", default)]
10248pub struct UserSettingsTheme {
10249    /// The theme preset.
10250    pub preset: Option<UserSettingsThemePreset>,
10251    /// The custom theme definition, only present when preset is 'custom'.
10252    pub custom: Option<Box<UserSettingsCustomTheme>>,
10253}
10254impl GraphQLFields for UserSettingsTheme {
10255    type FullType = Self;
10256    fn selection() -> String {
10257        "preset".into()
10258    }
10259}
10260/// View preferences.
10261#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10262#[serde(rename_all = "camelCase", default)]
10263pub struct ViewPreferences {
10264    /// The unique identifier of the entity.
10265    pub id: Option<String>,
10266    /// The time at which the entity was created.
10267    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10268    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10269    /// been updated after creation.
10270    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10271    /// The time at which the entity was archived. Null if the entity has not been archived.
10272    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10273    /// The view preference type.
10274    pub r#type: Option<String>,
10275    /// The view type.
10276    pub view_type: Option<String>,
10277    /// The view preferences
10278    pub preferences: Option<Box<ViewPreferencesValues>>,
10279}
10280impl GraphQLFields for ViewPreferences {
10281    type FullType = Self;
10282    fn selection() -> String {
10283        "id createdAt updatedAt archivedAt type viewType".into()
10284    }
10285}
10286#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10287#[serde(rename_all = "camelCase", default)]
10288pub struct ViewPreferencesPayload {
10289    /// The identifier of the last sync operation.
10290    pub last_sync_id: Option<f64>,
10291    /// The view preferences entity being mutated.
10292    pub view_preferences: Option<Box<ViewPreferences>>,
10293    /// Whether the operation was successful.
10294    pub success: Option<bool>,
10295}
10296impl GraphQLFields for ViewPreferencesPayload {
10297    type FullType = Self;
10298    fn selection() -> String {
10299        "lastSyncId success".into()
10300    }
10301}
10302#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10303#[serde(rename_all = "camelCase", default)]
10304pub struct ViewPreferencesValues {
10305    /// The issue ordering.
10306    pub view_ordering: Option<String>,
10307    /// The issue grouping.
10308    pub issue_grouping: Option<String>,
10309    /// The issue sub grouping.
10310    pub issue_sub_grouping: Option<String>,
10311    /// Whether to show completed issues.
10312    pub show_completed_issues: Option<String>,
10313}
10314impl GraphQLFields for ViewPreferencesValues {
10315    type FullType = Self;
10316    fn selection() -> String {
10317        "viewOrdering issueGrouping issueSubGrouping showCompletedIssues".into()
10318    }
10319}
10320/// A webhook used to send HTTP notifications over data updates.
10321#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10322#[serde(rename_all = "camelCase", default)]
10323pub struct Webhook {
10324    /// The unique identifier of the entity.
10325    pub id: Option<String>,
10326    /// The time at which the entity was created.
10327    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10328    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10329    /// been updated after creation.
10330    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10331    /// The time at which the entity was archived. Null if the entity has not been archived.
10332    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10333    /// Webhook label.
10334    pub label: Option<String>,
10335    /// Webhook URL.
10336    pub url: Option<String>,
10337    /// Whether the Webhook is enabled.
10338    pub enabled: Option<bool>,
10339    /// The team that the webhook is associated with. If null, the webhook is associated with all public teams of the organization or multiple teams.
10340    pub team: Option<Box<Team>>,
10341    /// `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.
10342    pub team_ids: Option<Vec<String>>,
10343    /// Whether the Webhook is enabled for all public teams, including teams created after the webhook was created.
10344    pub all_public_teams: Option<bool>,
10345    /// The user who created the webhook.
10346    pub creator: Option<Box<User>>,
10347    /// Secret token for verifying the origin on the recipient side.
10348    pub secret: Option<String>,
10349    /// The resource types this webhook is subscribed to.
10350    pub resource_types: Option<Vec<String>>,
10351    /// `INTERNAL` Webhook failure events associated with the webhook (last 50).
10352    pub failures: Option<Box<Vec<WebhookFailureEvent>>>,
10353}
10354impl GraphQLFields for Webhook {
10355    type FullType = Self;
10356    fn selection() -> String {
10357        "id createdAt updatedAt archivedAt label url enabled teamIds allPublicTeams secret resourceTypes"
10358            .into()
10359    }
10360}
10361#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10362#[serde(rename_all = "camelCase", default)]
10363pub struct WebhookConnection {
10364    pub edges: Option<Box<Vec<WebhookEdge>>>,
10365    pub nodes: Option<Box<Vec<Webhook>>>,
10366    pub page_info: Option<Box<PageInfo>>,
10367}
10368impl GraphQLFields for WebhookConnection {
10369    type FullType = Self;
10370    fn selection() -> String {
10371        "".into()
10372    }
10373}
10374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10375#[serde(rename_all = "camelCase", default)]
10376pub struct WebhookEdge {
10377    pub node: Option<Box<Webhook>>,
10378    /// Used in `before` and `after` args
10379    pub cursor: Option<String>,
10380}
10381impl GraphQLFields for WebhookEdge {
10382    type FullType = Self;
10383    fn selection() -> String {
10384        "cursor".into()
10385    }
10386}
10387/// Entity representing a webhook execution failure.
10388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10389#[serde(rename_all = "camelCase", default)]
10390pub struct WebhookFailureEvent {
10391    /// The unique identifier of the entity.
10392    pub id: Option<String>,
10393    /// The time at which the entity was created.
10394    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10395    /// The webhook that this failure event is associated with.
10396    pub webhook: Option<Box<Webhook>>,
10397    /// The URL that the webhook was trying to push to.
10398    pub url: Option<String>,
10399    /// The HTTP status code returned by the recipient.
10400    pub http_status: Option<f64>,
10401    /// The HTTP response body returned by the recipient or error occured.
10402    pub response_or_error: Option<String>,
10403    /// The unique execution ID of the webhook push. This is retained between retries of the same push.
10404    pub execution_id: Option<String>,
10405}
10406impl GraphQLFields for WebhookFailureEvent {
10407    type FullType = Self;
10408    fn selection() -> String {
10409        "id createdAt url httpStatus responseOrError executionId".into()
10410    }
10411}
10412#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10413#[serde(rename_all = "camelCase", default)]
10414pub struct WebhookPayload {
10415    /// The identifier of the last sync operation.
10416    pub last_sync_id: Option<f64>,
10417    /// The webhook entity being mutated.
10418    pub webhook: Option<Box<Webhook>>,
10419    /// Whether the operation was successful.
10420    pub success: Option<bool>,
10421}
10422impl GraphQLFields for WebhookPayload {
10423    type FullType = Self;
10424    fn selection() -> String {
10425        "lastSyncId success".into()
10426    }
10427}
10428#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10429#[serde(rename_all = "camelCase", default)]
10430pub struct WebhookRotateSecretPayload {
10431    /// The identifier of the last sync operation.
10432    pub last_sync_id: Option<f64>,
10433    /// Whether the operation was successful.
10434    pub success: Option<bool>,
10435    /// The new webhook signing secret.
10436    pub secret: Option<String>,
10437}
10438impl GraphQLFields for WebhookRotateSecretPayload {
10439    type FullType = Self;
10440    fn selection() -> String {
10441        "lastSyncId success secret".into()
10442    }
10443}
10444/// A welcome message for new users joining the workspace.
10445#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10446#[serde(rename_all = "camelCase", default)]
10447pub struct WelcomeMessage {
10448    /// The unique identifier of the entity.
10449    pub id: Option<String>,
10450    /// The time at which the entity was created.
10451    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10452    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10453    /// been updated after creation.
10454    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10455    /// The time at which the entity was archived. Null if the entity has not been archived.
10456    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10457    /// The title of the welcome message notification.
10458    pub title: Option<String>,
10459    /// Whether the welcome message is enabled.
10460    pub enabled: Option<bool>,
10461    /// The user who last updated the welcome message.
10462    pub updated_by: Option<Box<User>>,
10463}
10464impl GraphQLFields for WelcomeMessage {
10465    type FullType = Self;
10466    fn selection() -> String {
10467        "id createdAt updatedAt archivedAt title enabled".into()
10468    }
10469}
10470/// A welcome message related notification.
10471#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10472#[serde(rename_all = "camelCase", default)]
10473pub struct WelcomeMessageNotification {
10474    /// The unique identifier of the entity.
10475    pub id: Option<String>,
10476    /// The time at which the entity was created.
10477    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10478    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10479    /// been updated after creation.
10480    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10481    /// The time at which the entity was archived. Null if the entity has not been archived.
10482    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10483    /// Notification type.
10484    pub r#type: Option<String>,
10485    /// The user that caused the notification.
10486    pub actor: Option<Box<User>>,
10487    /// The external user that caused the notification.
10488    pub external_user_actor: Option<Box<ExternalUser>>,
10489    /// The user that received the notification.
10490    pub user: Option<Box<User>>,
10491    /// The time at when the user marked the notification as read. Null, if the the user hasn't read the notification
10492    pub read_at: Option<chrono::DateTime<chrono::Utc>>,
10493    /// The time at when an email reminder for this notification was sent to the user. Null, if no email
10494    /// reminder has been sent.
10495    pub emailed_at: Option<chrono::DateTime<chrono::Utc>>,
10496    /// The time until a notification will be snoozed. After that it will appear in the inbox again.
10497    pub snoozed_until_at: Option<chrono::DateTime<chrono::Utc>>,
10498    /// The time at which a notification was unsnoozed..
10499    pub unsnoozed_at: Option<chrono::DateTime<chrono::Utc>>,
10500    /// The category of the notification.
10501    pub category: Option<NotificationCategory>,
10502    /// `Internal` URL to the target of the notification.
10503    pub url: Option<String>,
10504    /// `Internal` Inbox URL for the notification.
10505    pub inbox_url: Option<String>,
10506    /// `Internal` Notification title.
10507    pub title: Option<String>,
10508    /// `Internal` Notification subtitle.
10509    pub subtitle: Option<String>,
10510    /// `Internal` If notification actor was Linear.
10511    pub is_linear_actor: Option<bool>,
10512    /// `Internal` Notification avatar URL.
10513    pub actor_avatar_url: Option<String>,
10514    /// `Internal` Notification actor initials if avatar is not available.
10515    pub actor_initials: Option<String>,
10516    /// `Internal` Notification actor initials if avatar is not available.
10517    pub actor_avatar_color: Option<String>,
10518    /// `Internal` Issue's status type for issue notifications.
10519    pub issue_status_type: Option<String>,
10520    /// `Internal` Project update health for new updates.
10521    pub project_update_health: Option<String>,
10522    /// `Internal` Initiative update health for new updates.
10523    pub initiative_update_health: Option<String>,
10524    /// `Internal` Notifications with the same grouping key will be grouped together in the UI.
10525    pub grouping_key: Option<String>,
10526    /// `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`.
10527    pub grouping_priority: Option<f64>,
10528    /// The bot that caused the notification.
10529    pub bot_actor: Option<Box<ActorBot>>,
10530    /// Related welcome message.
10531    pub welcome_message_id: Option<String>,
10532}
10533impl GraphQLFields for WelcomeMessageNotification {
10534    type FullType = Self;
10535    fn selection() -> String {
10536        "id createdAt updatedAt archivedAt type readAt emailedAt snoozedUntilAt unsnoozedAt category url inboxUrl title subtitle isLinearActor actorAvatarUrl actorInitials actorAvatarColor issueStatusType projectUpdateHealth initiativeUpdateHealth groupingKey groupingPriority welcomeMessageId"
10537            .into()
10538    }
10539}
10540#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10541#[serde(rename_all = "camelCase", default)]
10542pub struct WorkflowDefinition {
10543    /// The unique identifier of the entity.
10544    pub id: Option<String>,
10545    /// The time at which the entity was created.
10546    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10547    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10548    /// been updated after creation.
10549    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10550    /// The time at which the entity was archived. Null if the entity has not been archived.
10551    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10552    /// The name of the workflow.
10553    pub name: Option<String>,
10554    /// The name of the group that the workflow belongs to.
10555    pub group_name: Option<String>,
10556    /// The description of the workflow.
10557    pub description: Option<String>,
10558    /// The type of the workflow.
10559    pub r#type: Option<WorkflowType>,
10560    /// The type of the event that triggers off the workflow.
10561    pub trigger: Option<WorkflowTrigger>,
10562    /// The object type (e.g. Issue) that triggers this workflow.
10563    pub trigger_type: Option<WorkflowTriggerType>,
10564    /// The conditions that need to be match for the workflow to be triggered.
10565    pub conditions: Option<serde_json::Value>,
10566    pub enabled: Option<bool>,
10567    /// The team associated with the workflow. If not set, the workflow is associated with the entire organization.
10568    pub team: Option<Box<Team>>,
10569    /// The user who created the workflow.
10570    pub creator: Option<Box<User>>,
10571    /// An array of activities that will be executed as part of the workflow.
10572    pub activities: Option<serde_json::Value>,
10573    /// The sort order of the workflow definition within its siblings.
10574    pub sort_order: Option<String>,
10575    /// The date when the workflow was last executed.
10576    pub last_executed_at: Option<chrono::DateTime<chrono::Utc>>,
10577    /// The user who last updated the workflow.
10578    pub last_updated_by: Option<Box<User>>,
10579    /// The contextual label view associated with the workflow.
10580    pub label: Option<Box<IssueLabel>>,
10581    /// The contextual cycle view associated with the workflow.
10582    pub cycle: Option<Box<Cycle>>,
10583    /// The contextual user view associated with the workflow.
10584    pub user: Option<Box<User>>,
10585    /// The contextual project view associated with the workflow.
10586    pub project: Option<Box<Project>>,
10587    /// The contextual initiative view associated with the workflow.
10588    pub initiative: Option<Box<Initiative>>,
10589    /// The context custom view associated with the workflow.
10590    pub custom_view: Option<Box<CustomView>>,
10591    /// The type of view to which this workflow's context is associated with.
10592    pub context_view_type: Option<ContextViewType>,
10593    /// The type of user view to which this workflow's context is associated with.
10594    pub user_context_view_type: Option<UserContextViewType>,
10595}
10596impl GraphQLFields for WorkflowDefinition {
10597    type FullType = Self;
10598    fn selection() -> String {
10599        "id createdAt updatedAt archivedAt name groupName description type trigger triggerType conditions enabled activities sortOrder lastExecutedAt contextViewType userContextViewType"
10600            .into()
10601    }
10602}
10603/// A state in a team workflow.
10604#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10605#[serde(rename_all = "camelCase", default)]
10606pub struct WorkflowState {
10607    /// The unique identifier of the entity.
10608    pub id: Option<String>,
10609    /// The time at which the entity was created.
10610    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
10611    /// The last time at which the entity was meaningfully updated. This is the same as the creation time if the entity hasn't
10612    /// been updated after creation.
10613    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
10614    /// The time at which the entity was archived. Null if the entity has not been archived.
10615    pub archived_at: Option<chrono::DateTime<chrono::Utc>>,
10616    /// The state's name.
10617    pub name: Option<String>,
10618    /// The state's UI color as a HEX string.
10619    pub color: Option<String>,
10620    /// Description of the state.
10621    pub description: Option<String>,
10622    /// The position of the state in the team flow.
10623    pub position: Option<f64>,
10624    /// The type of the state. One of "triage", "backlog", "unstarted", "started", "completed", "canceled".
10625    pub r#type: Option<String>,
10626    /// The team to which this state belongs to.
10627    pub team: Option<Box<Team>>,
10628    /// The state inherited from
10629    pub inherited_from: Option<Box<WorkflowState>>,
10630    /// Issues belonging in this state.
10631    pub issues: Option<Box<IssueConnection>>,
10632}
10633impl GraphQLFields for WorkflowState {
10634    type FullType = Self;
10635    fn selection() -> String {
10636        "id createdAt updatedAt archivedAt name color description position type".into()
10637    }
10638}
10639/// A generic payload return from entity archive mutations.
10640#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10641#[serde(rename_all = "camelCase", default)]
10642pub struct WorkflowStateArchivePayload {
10643    /// The identifier of the last sync operation.
10644    pub last_sync_id: Option<f64>,
10645    /// Whether the operation was successful.
10646    pub success: Option<bool>,
10647    /// The archived/unarchived entity. Null if entity was deleted.
10648    pub entity: Option<Box<WorkflowState>>,
10649}
10650impl GraphQLFields for WorkflowStateArchivePayload {
10651    type FullType = Self;
10652    fn selection() -> String {
10653        "lastSyncId success".into()
10654    }
10655}
10656#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10657#[serde(rename_all = "camelCase", default)]
10658pub struct WorkflowStateConnection {
10659    pub edges: Option<Box<Vec<WorkflowStateEdge>>>,
10660    pub nodes: Option<Box<Vec<WorkflowState>>>,
10661    pub page_info: Option<Box<PageInfo>>,
10662}
10663impl GraphQLFields for WorkflowStateConnection {
10664    type FullType = Self;
10665    fn selection() -> String {
10666        "".into()
10667    }
10668}
10669#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10670#[serde(rename_all = "camelCase", default)]
10671pub struct WorkflowStateEdge {
10672    pub node: Option<Box<WorkflowState>>,
10673    /// Used in `before` and `after` args
10674    pub cursor: Option<String>,
10675}
10676impl GraphQLFields for WorkflowStateEdge {
10677    type FullType = Self;
10678    fn selection() -> String {
10679        "cursor".into()
10680    }
10681}
10682#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10683#[serde(rename_all = "camelCase", default)]
10684pub struct WorkflowStatePayload {
10685    /// The identifier of the last sync operation.
10686    pub last_sync_id: Option<f64>,
10687    /// The state that was created or updated.
10688    pub workflow_state: Option<Box<WorkflowState>>,
10689    /// Whether the operation was successful.
10690    pub success: Option<bool>,
10691}
10692impl GraphQLFields for WorkflowStatePayload {
10693    type FullType = Self;
10694    fn selection() -> String {
10695        "lastSyncId success".into()
10696    }
10697}