Skip to content

Instantly share code, notes, and snippets.

@mmmpa
Created September 15, 2019 02:14
Show Gist options
  • Select an option

  • Save mmmpa/3f449668d5d85c5a63fec9c7e9a879e9 to your computer and use it in GitHub Desktop.

Select an option

Save mmmpa/3f449668d5d85c5a63fec9c7e9a879e9 to your computer and use it in GitHub Desktop.

Revisions

  1. mmmpa created this gist Sep 15, 2019.
    1,357 changes: 1,357 additions & 0 deletions kibela_schema.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1357 @@
    package kibela

    type ID interface{}

    // The top-level query type to Kibela resources
    type Query struct {
    AccessToken AccessToken `json:"accessToken" validate:"required"`
    AccessTokens AccessTokenConnection `json:"accessTokens" validate:"required"`
    ArchivedGroups GroupConnection `json:"archivedGroups" validate:"required"`
    AttachmentByPath Attachment `json:"attachmentByPath" validate:"required"`
    AttachmentFromPath Attachment `json:"attachmentFromPath" validate:"required"`
    Budget Budget `json:"budget" validate:"required"`
    Comment Comment `json:"comment"`
    CurrentUser User `json:"currentUser"`
    DefaultGroup Group `json:"defaultGroup"`
    FeedSections FeedSectionSimpleConnection `json:"feedSections" validate:"required"`
    Folder Folder `json:"folder"`
    Folders FolderConnection `json:"folders" validate:"required"`
    Group Group `json:"group" validate:"required"`
    Groups GroupConnection `json:"groups" validate:"required"`
    ImportableUsers ImportableUserConnection `json:"importableUsers" validate:"required"`
    Node Node `json:"node"`
    Nodes []Node `json:"nodes" validate:"required"`
    Note Note `json:"note"`
    NoteBrowsingHistries NoteBrowsingHistoryConnection `json:"noteBrowsingHistries" validate:"required"`
    NoteFromPath Note `json:"noteFromPath" validate:"required"`
    NoteTemplate NoteTemplate `json:"noteTemplate"`
    NoteTemplates NoteTemplateConnection `json:"noteTemplates" validate:"required"`
    Notes NoteConnection `json:"notes" validate:"required"`
    Notifications NotificationConnection `json:"notifications"`
    RenderMarkdownToHtml string `json:"renderMarkdownToHtml" validate:"required"`
    Search SearchResultConnection `json:"search" validate:"required"`
    TeamAccessTokenLogs AccessTokenLogConnection `json:"teamAccessTokenLogs" validate:"required"`
    User User `json:"user"`
    UserByAccount User `json:"userByAccount"`
    UserFromAccount User `json:"userFromAccount"`
    Users UserConnection `json:"users" validate:"required"`
    ValidateToMove bool `json:"validateToMove" validate:"required"`
    }

    // Personal access tokens
    type AccessToken struct {
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    Description string `json:"description" validate:"required"`
    DescriptionHtml string `json:"descriptionHtml" validate:"required"`
    Id ID `json:"id" validate:"required"`
    IsActive bool `json:"isActive" validate:"required"`
    IsRevoked bool `json:"isRevoked" validate:"required"`
    LastUsedAt DateTime `json:"lastUsedAt"`
    Logs AccessTokenLogConnection `json:"logs" validate:"required"`
    Path string `json:"path" validate:"required"`
    Scopes []AccessTokenScope `json:"scopes" validate:"required"`
    Title string `json:"title" validate:"required"`
    Token string `json:"token"`
    UpdatedAt DateTime `json:"updatedAt" validate:"required"`
    User User `json:"user" validate:"required"`
    }

    // An object with an ID.
    type Node interface{}

    // A datetime type, encoded in ISO 8601 string in JSON, or timestamp type in MessagePack
    type DateTime interface{}

    // The connection type for AccessTokenLog.
    type AccessTokenLogConnection struct {
    Edges []AccessTokenLogEdge `json:"edges"`
    Nodes []AccessTokenLog `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type AccessTokenLogEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node AccessTokenLog `json:"node"`
    }

    // Usage logs for personal access tokens
    type AccessTokenLog struct {
    AccessToken AccessToken `json:"accessToken" validate:"required"`
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    Id ID `json:"id" validate:"required"`
    IpAddress string `json:"ipAddress" validate:"required"`
    OperationType string `json:"operationType" validate:"required"`
    Query string `json:"query" validate:"required"`
    User User `json:"user" validate:"required"`
    UserAgent string `json:"userAgent" validate:"required"`
    }

    // A user, which is an individual account of a team
    type User struct {
    Account string `json:"account"`
    Avatar UserAvatarImage `json:"avatar" validate:"required"`
    AvatarImage UserAvatarImage `json:"avatarImage" validate:"required"`
    Biography string `json:"biography"`
    Cover UserCoverImage `json:"cover"`
    CoverImage UserCoverImage `json:"coverImage"`
    Email string `json:"email" validate:"required"`
    Groups GroupConnection `json:"groups"`
    Id ID `json:"id" validate:"required"`
    LatestNotes NoteConnection `json:"latestNotes" validate:"required"`
    Locale string `json:"locale" validate:"required"`
    Path string `json:"path"`
    PopularNotes NoteConnection `json:"popularNotes" validate:"required"`
    PrivateNotes NoteConnection `json:"privateNotes" validate:"required"`
    RealName string `json:"realName"`
    Role Role `json:"role" validate:"required"`
    ShortBio string `json:"shortBio"`
    Url string `json:"url"`
    }

    // The size class of user avatar images
    type UserAvatarImageSize string

    const (
    USER_AVATAR_IMAGE_SIZE_LARGE = UserAvatarImageSize("LARGE")
    USER_AVATAR_IMAGE_SIZE_MEDIUM = UserAvatarImageSize("MEDIUM")
    USER_AVATAR_IMAGE_SIZE_SMALL = UserAvatarImageSize("SMALL")
    )

    // An avatar image of users
    type UserAvatarImage struct {
    Density int64 `json:"density" validate:"required"`
    Height int64 `json:"height" validate:"required"`
    Url string `json:"url" validate:"required"`
    Width int64 `json:"width" validate:"required"`
    }

    // The size class of user cover images
    type UserCoverImageSize string

    const (
    USER_COVER_IMAGE_SIZE_MEDIUM = UserCoverImageSize("MEDIUM")
    USER_COVER_IMAGE_SIZE_ORIGINAL = UserCoverImageSize("ORIGINAL")
    USER_COVER_IMAGE_SIZE_SMALL = UserCoverImageSize("SMALL")
    )

    // A cover image of users
    type UserCoverImage struct {
    Density int64 `json:"density" validate:"required"`
    Height int64 `json:"height" validate:"required"`
    Key string `json:"key" validate:"required"`
    Size UserCoverImageSize `json:"size" validate:"required"`
    Url string `json:"url" validate:"required"`
    Width int64 `json:"width" validate:"required"`
    }

    // The connection type for Group.
    type GroupConnection struct {
    Edges []GroupEdge `json:"edges"`
    Nodes []Group `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type GroupEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node Group `json:"node"`
    }

    // undefined
    type Group struct {
    ArchivedAt DateTime `json:"archivedAt"`
    CanBeDestroyed bool `json:"canBeDestroyed" validate:"required"`
    CanBeManaged bool `json:"canBeManaged" validate:"required"`
    CoverImage GroupCoverImage `json:"coverImage" validate:"required"`
    CoverImageKey string `json:"coverImageKey"`
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    DatabaseId int64 `json:"databaseId" validate:"required"`
    Description string `json:"description" validate:"required"`
    FeedSections FeedSectionSimpleConnection `json:"feedSections" validate:"required"`
    FeedUpdatedAt DateTime `json:"feedUpdatedAt"`
    Id ID `json:"id" validate:"required"`
    IsArchived bool `json:"isArchived" validate:"required"`
    IsDefault bool `json:"isDefault" validate:"required"`
    IsJoined bool `json:"isJoined" validate:"required"`
    IsPrivate bool `json:"isPrivate" validate:"required"`
    Name string `json:"name" validate:"required"`
    Notes NoteConnection `json:"notes" validate:"required"`
    Path string `json:"path" validate:"required"`
    PinnedNotes []Note `json:"pinnedNotes" validate:"required"`
    TodayContributors UserConnection `json:"todayContributors" validate:"required"`
    TrendNotes NoteConnection `json:"trendNotes" validate:"required"`
    UpdatedAt DateTime `json:"updatedAt" validate:"required"`
    Users UserConnection `json:"users" validate:"required"`
    }

    // The size class of group cover images
    type GroupCoverImageSize string

    const (
    GROUP_COVER_IMAGE_SIZE_LARGE = GroupCoverImageSize("LARGE")
    GROUP_COVER_IMAGE_SIZE_MEDIUM = GroupCoverImageSize("MEDIUM")
    )

    // Cover image of a group
    type GroupCoverImage struct {
    Density int64 `json:"density" validate:"required"`
    Height int64 `json:"height" validate:"required"`
    Url string `json:"url" validate:"required"`
    Width int64 `json:"width" validate:"required"`
    }

    // undefined
    type FeedSectionSimpleConnection struct {
    Edges []FeedSectionSimpleEdge `json:"edges" validate:"required"`
    PageInfo FeedSectionSimplePageInfo `json:"pageInfo" validate:"required"`
    }

    // undefined
    type FeedSectionSimpleEdge struct {
    Node FeedSection `json:"node" validate:"required"`
    }

    // A section of feed, which includes one or more notes
    type FeedSection interface{}

    // A section of a feed, which includes notes in a folder
    type FeedFolderParcel struct {
    Date DateTime `json:"date" validate:"required"`
    Folder Folder `json:"folder" validate:"required"`
    Notes NoteConnection `json:"notes" validate:"required"`
    }

    // undefined
    type Folder struct {
    ArchivedAt DateTime `json:"archivedAt"`
    Components []Folder `json:"components" validate:"required"`
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    Folders FolderConnection `json:"folders" validate:"required"`
    FullName string `json:"fullName" validate:"required"`
    Id ID `json:"id" validate:"required"`
    LastModifiedAt DateTime `json:"lastModifiedAt"`
    Name string `json:"name" validate:"required"`
    NewNotePath string `json:"newNotePath" validate:"required"`
    Notes NoteConnection `json:"notes" validate:"required"`
    Path string `json:"path" validate:"required"`
    PinnedNotes NoteConnection `json:"pinnedNotes" validate:"required"`
    UpdatedAt DateTime `json:"updatedAt" validate:"required"`
    }

    // The connection type for Folder.
    type FolderConnection struct {
    Edges []FolderEdge `json:"edges"`
    Nodes []Folder `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type FolderEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node Folder `json:"node"`
    }

    // Information about pagination in a connection.
    type PageInfo struct {
    EndCursor string `json:"endCursor"`
    HasNextPage bool `json:"hasNextPage" validate:"required"`
    HasPreviousPage bool `json:"hasPreviousPage" validate:"required"`
    StartCursor string `json:"startCursor"`
    }

    // undefined
    type NoteOrder struct {
    Direction OrderDirection `json:"direction"`
    Field NoteOrderField `json:"field"`
    }

    // undefined
    type OrderDirection string

    const (
    ORDER_DIRECTION_ASC = OrderDirection("ASC")
    ORDER_DIRECTION_DESC = OrderDirection("DESC")
    )

    // Properties by which notes can be ordered.
    type NoteOrderField string

    const (
    NOTE_ORDER_FIELD_CONTENT_UPDATED_AT = NoteOrderField("CONTENT_UPDATED_AT")
    NOTE_ORDER_FIELD_PUBLISHED_AT = NoteOrderField("PUBLISHED_AT")
    NOTE_ORDER_FIELD_TITLE = NoteOrderField("TITLE")
    )

    // The connection type for Note.
    type NoteConnection struct {
    Edges []NoteEdge `json:"edges"`
    Nodes []Note `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type NoteEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node Note `json:"node"`
    }

    // The Note type
    type Note struct {
    Author User `json:"author"`
    CanBeDestroyed bool `json:"canBeDestroyed" validate:"required"`
    CanBeUpdated bool `json:"canBeUpdated" validate:"required"`
    Coediting bool `json:"coediting" validate:"required"`
    Comments CommentConnection `json:"comments" validate:"required"`
    Content string `json:"content" validate:"required"`
    ContentHtml string `json:"contentHtml" validate:"required"`
    ContentSummaryHtml string `json:"contentSummaryHtml" validate:"required"`
    ContentTocHtml string `json:"contentTocHtml" validate:"required"`
    ContentUpdatedAt DateTime `json:"contentUpdatedAt" validate:"required"`
    Contributors UserConnection `json:"contributors" validate:"required"`
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    DatabaseId int64 `json:"databaseId" validate:"required"`
    EditPath string `json:"editPath" validate:"required"`
    Folder Folder `json:"folder"`
    FolderName string `json:"folderName"`
    Groups []Group `json:"groups" validate:"required"`
    Id ID `json:"id" validate:"required"`
    IsLikedByCurrentUser bool `json:"isLikedByCurrentUser" validate:"required"`
    Likers UserConnection `json:"likers" validate:"required"`
    Path string `json:"path" validate:"required"`
    PublishedAt DateTime `json:"publishedAt"`
    RelatedNotes SearchResultConnection `json:"relatedNotes" validate:"required"`
    Title string `json:"title" validate:"required"`
    TitleHtml string `json:"titleHtml" validate:"required"`
    TrackbackNotes NoteConnection `json:"trackbackNotes" validate:"required"`
    UpdatedAt DateTime `json:"updatedAt" validate:"required"`
    Url string `json:"url" validate:"required"`
    }

    // The connection type for Comment.
    type CommentConnection struct {
    Edges []CommentEdge `json:"edges"`
    Nodes []Comment `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type CommentEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node Comment `json:"node"`
    }

    // A comment that belongs to a Note
    type Comment struct {
    Anchor string `json:"anchor" validate:"required"`
    Author User `json:"author" validate:"required"`
    Content string `json:"content" validate:"required"`
    ContentHtml string `json:"contentHtml" validate:"required"`
    ContentSummaryHtml string `json:"contentSummaryHtml" validate:"required"`
    ContentUpdatedAt DateTime `json:"contentUpdatedAt" validate:"required"`
    Contributors UserConnection `json:"contributors" validate:"required"`
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    EditedAt DateTime `json:"editedAt"`
    Id ID `json:"id" validate:"required"`
    IsEdited bool `json:"isEdited" validate:"required"`
    IsLikedByCurrentUser bool `json:"isLikedByCurrentUser" validate:"required"`
    Likers UserConnection `json:"likers" validate:"required"`
    Path string `json:"path" validate:"required"`
    PublishedAt DateTime `json:"publishedAt"`
    UpdatedAt DateTime `json:"updatedAt" validate:"required"`
    }

    // undefined
    type ContributorOrder struct {
    Direction OrderDirection `json:"direction"`
    Field ContributorOrderField `json:"field"`
    }

    // Properties by which contributors can be ordered.
    type ContributorOrderField string

    const (
    CONTRIBUTOR_ORDER_FIELD_CONTRIBUTED_AT = ContributorOrderField("CONTRIBUTED_AT")
    )

    // The connection type for User.
    type UserConnection struct {
    Edges []UserEdge `json:"edges"`
    Nodes []User `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type UserEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node User `json:"node"`
    }

    // The connection type for SearchResult.
    type SearchResultConnection struct {
    Edges []SearchResultEdge `json:"edges"`
    Nodes []SearchResult `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type SearchResultEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node SearchResult `json:"node"`
    }

    // A search result that refers to a document
    type SearchResult struct {
    Author User `json:"author" validate:"required"`
    ContentSummaryHtml string `json:"contentSummaryHtml" validate:"required"`
    ContentUpdatedAt DateTime `json:"contentUpdatedAt" validate:"required"`
    Document SearchableDocument `json:"document" validate:"required"`
    Folder Folder `json:"folder"`
    Path string `json:"path" validate:"required"`
    Title string `json:"title" validate:"required"`
    TitleHtml string `json:"titleHtml" validate:"required"`
    Url string `json:"url" validate:"required"`
    }

    //
    type SearchableDocument interface{}

    // A section of feed, which includes a note
    type FeedNote struct {
    Date DateTime `json:"date" validate:"required"`
    Note Note `json:"note" validate:"required"`
    }

    // A section of feed, which includes notes written by a user
    type FeedUserParcel struct {
    Date DateTime `json:"date" validate:"required"`
    Notes NoteConnection `json:"notes" validate:"required"`
    User User `json:"user" validate:"required"`
    }

    // undefined
    type FeedSectionSimplePageInfo struct {
    EndCursor string `json:"endCursor" validate:"required"`
    }

    // A role of a user
    type Role string

    const (
    ROLE_ADMIN = Role("ADMIN")
    ROLE_FULL_MEMBER = Role("FULL_MEMBER")
    ROLE_GUEST = Role("GUEST")
    ROLE_OWNER = Role("OWNER")
    )

    // undefined
    type AccessTokenScope string

    const (
    ACCESS_TOKEN_SCOPE_ADMINISTER = AccessTokenScope("ADMINISTER")
    ACCESS_TOKEN_SCOPE_READ = AccessTokenScope("READ")
    ACCESS_TOKEN_SCOPE_WRITE = AccessTokenScope("WRITE")
    )

    // The connection type for AccessToken.
    type AccessTokenConnection struct {
    Edges []AccessTokenEdge `json:"edges"`
    Nodes []AccessToken `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type AccessTokenEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node AccessToken `json:"node"`
    }

    // undefined
    type Attachment struct {
    Author User `json:"author" validate:"required"`
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    Data Blob `json:"data" validate:"required"`
    DataUrl string `json:"dataUrl" validate:"required"`
    Id ID `json:"id" validate:"required"`
    Key string `json:"key" validate:"required"`
    Kind AttachmentKind `json:"kind" validate:"required"`
    MimeType string `json:"mimeType" validate:"required"`
    Name string `json:"name" validate:"required"`
    Path string `json:"path" validate:"required"`
    Size int64 `json:"size" validate:"required"`
    Url string `json:"url" validate:"required"`
    }

    //
    type Blob interface{}

    // How and where the attachment is used.
    type AttachmentKind string

    const (
    ATTACHMENT_KIND_GENERAL = AttachmentKind("GENERAL")
    ATTACHMENT_KIND_GROUP_COVER_IMAGE = AttachmentKind("GROUP_COVER_IMAGE")
    ATTACHMENT_KIND_USER_AVATAR_IMAGE = AttachmentKind("USER_AVATAR_IMAGE")
    ATTACHMENT_KIND_USER_COVER_IMAGE = AttachmentKind("USER_COVER_IMAGE")
    )

    // Kibela Web API budget like RateLimit of RESTful API
    type Budget struct {
    Consumed BigInt `json:"consumed" validate:"required"`
    Cost BigInt `json:"cost" validate:"required"`
    Remaining BigInt `json:"remaining" validate:"required"`
    }

    // Represents non-fractional signed whole numeric values. Since the value may exceed the size of a 32-bit integer, it's encoded as a string.
    type BigInt interface{}

    // The kind to indicate what the feed is
    type FeedKind string

    const (
    FEED_KIND_ALL = FeedKind("ALL")
    FEED_KIND_GROUP = FeedKind("GROUP")
    FEED_KIND_MY_FEED = FeedKind("MY_FEED")
    )

    // The connection type for ImportableUser.
    type ImportableUserConnection struct {
    Edges []ImportableUserEdge `json:"edges"`
    Nodes []ImportableUser `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type ImportableUserEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node ImportableUser `json:"node"`
    }

    // A user representation from importable services
    type ImportableUser struct {
    Account string `json:"account" validate:"required"`
    AvatarUrl string `json:"avatarUrl" validate:"required"`
    RealName string `json:"realName" validate:"required"`
    }

    // The connection type for NoteBrowsingHistory.
    type NoteBrowsingHistoryConnection struct {
    Edges []NoteBrowsingHistoryEdge `json:"edges"`
    Nodes []NoteBrowsingHistory `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type NoteBrowsingHistoryEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node NoteBrowsingHistory `json:"node"`
    }

    // Browsing history of notes
    type NoteBrowsingHistory struct {
    Id ID `json:"id" validate:"required"`
    Note Note `json:"note"`
    }

    // Template of note
    type NoteTemplate struct {
    Content string `json:"content" validate:"required"`
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    EvaluatedTitle string `json:"evaluatedTitle" validate:"required"`
    FolderEvaluatedFullName string `json:"folderEvaluatedFullName"`
    FolderFullName string `json:"folderFullName"`
    Groups []Group `json:"groups" validate:"required"`
    Id ID `json:"id" validate:"required"`
    Name string `json:"name" validate:"required"`
    Title string `json:"title" validate:"required"`
    UpdatedAt DateTime `json:"updatedAt" validate:"required"`
    }

    // The connection type for NoteTemplate.
    type NoteTemplateConnection struct {
    Edges []NoteTemplateEdge `json:"edges"`
    Nodes []NoteTemplate `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type NoteTemplateEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node NoteTemplate `json:"node"`
    }

    // The state of notifications
    type NotificationState string

    const (
    NOTIFICATION_STATE_READ = NotificationState("READ")
    NOTIFICATION_STATE_UNREAD = NotificationState("UNREAD")
    )

    // The connection type for Notification.
    type NotificationConnection struct {
    Edges []NotificationEdge `json:"edges"`
    Nodes []Notification `json:"nodes"`
    PageInfo PageInfo `json:"pageInfo" validate:"required"`
    TotalCount int64 `json:"totalCount" validate:"required"`
    }

    // An edge in a connection.
    type NotificationEdge struct {
    Cursor string `json:"cursor" validate:"required"`
    Node Notification `json:"node"`
    }

    // Notifications you get in a Kibela team
    type Notification struct {
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    Id ID `json:"id" validate:"required"`
    MessageHtml string `json:"messageHtml" validate:"required"`
    Sender User `json:"sender" validate:"required"`
    SourcePath string `json:"sourcePath" validate:"required"`
    State NotificationState `json:"state" validate:"required"`
    UpdatedAt DateTime `json:"updatedAt" validate:"required"`
    }

    // The top-level mutation type to mutate resources
    type Mutation struct {
    ArchiveFolder ArchiveFolderPayload `json:"archiveFolder"`
    ArchiveGroup ArchiveGroupPayload `json:"archiveGroup"`
    CloseAnnouncement CloseAnnouncementPayload `json:"closeAnnouncement"`
    CreateAccessToken CreateAccessTokenPayload `json:"createAccessToken"`
    CreateComment CreateCommentPayload `json:"createComment"`
    CreateDisabledUser CreateDisabledUserPayload `json:"createDisabledUser"`
    CreateFolderPin CreateFolderPinPayload `json:"createFolderPin"`
    CreateGroup CreateGroupPayload `json:"createGroup"`
    CreateGroupPin CreateGroupPinPayload `json:"createGroupPin"`
    CreateNote CreateNotePayload `json:"createNote"`
    CreateNoteTemplate CreateNoteTemplatePayload `json:"createNoteTemplate"`
    DeleteAttachment DeleteAttachmentPayload `json:"deleteAttachment"`
    DeleteComment DeleteCommentPayload `json:"deleteComment"`
    DeleteGroup DeleteGroupPayload `json:"deleteGroup"`
    DeleteNote DeleteNotePayload `json:"deleteNote"`
    DisableSharedEntry DisableSharedEntryPayload `json:"disableSharedEntry"`
    DisableUser DisableUserPayload `json:"disableUser"`
    EnableSharedEntry EnableSharedEntryPayload `json:"enableSharedEntry"`
    IgnoreMultiFactorAuthn IgnoreMultiFactorAuthnPayload `json:"ignoreMultiFactorAuthn"`
    Invite InvitePayload `json:"invite"`
    JoinGroup JoinGroupPayload `json:"joinGroup"`
    LeaveGroup LeaveGroupPayload `json:"leaveGroup"`
    Like LikePayload `json:"like"`
    MarkNotificationsAsRead MarkNotificationsAsReadPayload `json:"markNotificationsAsRead"`
    RemoveFolderPin RemoveFolderPinPayload `json:"removeFolderPin"`
    RemoveGroupPin RemoveGroupPinPayload `json:"removeGroupPin"`
    RestoreFolder RestoreFolderPayload `json:"restoreFolder"`
    RestoreGroup RestoreGroupPayload `json:"restoreGroup"`
    RevokeAccessToken RevokeAccessTokenPayload `json:"revokeAccessToken"`
    TransferGroupNotes TransferGroupNotesPayload `json:"transferGroupNotes"`
    Unlike UnlikePayload `json:"unlike"`
    UnwatchNote UnwatchNotePayload `json:"unwatchNote"`
    UpdateAccessToken UpdateAccessTokenPayload `json:"updateAccessToken"`
    UpdateComment UpdateCommentPayload `json:"updateComment"`
    UpdateDashboard UpdateDashboardPayload `json:"updateDashboard"`
    UpdateDashboardContent UpdateDashboardContentPayload `json:"updateDashboardContent"`
    UpdateFolderName UpdateFolderNamePayload `json:"updateFolderName"`
    UpdateFolderParent UpdateFolderParentPayload `json:"updateFolderParent"`
    UpdateGroup UpdateGroupPayload `json:"updateGroup"`
    UpdateNote UpdateNotePayload `json:"updateNote"`
    UpdateNoteContent UpdateNoteContentPayload `json:"updateNoteContent"`
    UpdateNoteFolder UpdateNoteFolderPayload `json:"updateNoteFolder"`
    UpdateNoteTemplate UpdateNoteTemplatePayload `json:"updateNoteTemplate"`
    UpdateNoteTitle UpdateNoteTitlePayload `json:"updateNoteTitle"`
    UpdateTeamSetting UpdateTeamSettingPayload `json:"updateTeamSetting"`
    UploadAttachment UploadAttachmentPayload `json:"uploadAttachment"`
    UploadAttachmentWithDataUrl UploadAttachmentWithDataUrlPayload `json:"uploadAttachmentWithDataUrl"`
    WatchNote WatchNotePayload `json:"watchNote"`
    }

    // Autogenerated input type of ArchiveFolder
    type ArchiveFolderInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    }

    // Autogenerated return type of ArchiveFolder
    type ArchiveFolderPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Folder Folder `json:"folder" validate:"required"`
    }

    // Autogenerated input type of ArchiveGroup
    type ArchiveGroupInput struct {
    ClientMutationId string `json:"clientMutationId"`
    GroupId ID `json:"groupId" validate:"required"`
    }

    // Autogenerated return type of ArchiveGroup
    type ArchiveGroupPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Group Group `json:"group" validate:"required"`
    }

    // Autogenerated input type of CloseAnnouncement
    type CloseAnnouncementInput struct {
    AnnouncementKey string `json:"announcementKey" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated return type of CloseAnnouncement
    type CloseAnnouncementPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of CreateAccessToken
    type CreateAccessTokenInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Description string `json:"description" validate:"required"`
    Scopes []AccessTokenScope `json:"scopes" validate:"required"`
    Title string `json:"title" validate:"required"`
    }

    // Autogenerated return type of CreateAccessToken
    type CreateAccessTokenPayload struct {
    AccessToken AccessToken `json:"accessToken" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of CreateComment
    type CreateCommentInput struct {
    AuthorId ID `json:"authorId"`
    ClientMutationId string `json:"clientMutationId"`
    CommentableId ID `json:"commentableId" validate:"required"`
    Content string `json:"content" validate:"required"`
    PublishedAt DateTime `json:"publishedAt"`
    }

    // Autogenerated return type of CreateComment
    type CreateCommentPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Comment Comment `json:"comment" validate:"required"`
    }

    // Autogenerated input type of CreateDisabledUser
    type CreateDisabledUserInput struct {
    Account string `json:"account" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    Email string `json:"email" validate:"required"`
    RealName string `json:"realName" validate:"required"`
    Role Role `json:"role"`
    }

    // Autogenerated return type of CreateDisabledUser
    type CreateDisabledUserPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    User User `json:"user" validate:"required"`
    }

    // Autogenerated input type of CreateFolderPin
    type CreateFolderPinInput struct {
    ClientMutationId string `json:"clientMutationId"`
    NoteId ID `json:"noteId" validate:"required"`
    }

    // Autogenerated return type of CreateFolderPin
    type CreateFolderPinPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Folder Folder `json:"folder" validate:"required"`
    }

    // Autogenerated input type of CreateGroup
    type CreateGroupInput struct {
    ClientMutationId string `json:"clientMutationId"`
    CoverImageKey string `json:"coverImageKey"`
    Description string `json:"description" validate:"required"`
    IsPrivate bool `json:"isPrivate" validate:"required"`
    Name string `json:"name" validate:"required"`
    }

    // Autogenerated return type of CreateGroup
    type CreateGroupPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Group Group `json:"group" validate:"required"`
    }

    // Autogenerated input type of CreateGroupPin
    type CreateGroupPinInput struct {
    ClientMutationId string `json:"clientMutationId"`
    GroupId ID `json:"groupId" validate:"required"`
    NoteId ID `json:"noteId" validate:"required"`
    }

    // Autogenerated return type of CreateGroupPin
    type CreateGroupPinPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Group Group `json:"group" validate:"required"`
    }

    // Autogenerated input type of CreateNote
    type CreateNoteInput struct {
    AuthorId ID `json:"authorId"`
    ClientMutationId string `json:"clientMutationId"`
    Coediting bool `json:"coediting" validate:"required"`
    Content string `json:"content" validate:"required"`
    Draft bool `json:"draft"`
    FolderName string `json:"folderName"`
    GroupIds []ID `json:"groupIds" validate:"required"`
    PublishedAt DateTime `json:"publishedAt"`
    Title string `json:"title" validate:"required"`
    }

    // Autogenerated return type of CreateNote
    type CreateNotePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Note Note `json:"note" validate:"required"`
    }

    // Autogenerated input type of CreateNoteTemplate
    type CreateNoteTemplateInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Coediting bool `json:"coediting" validate:"required"`
    Content string `json:"content" validate:"required"`
    FolderFullName string `json:"folderFullName"`
    GroupIds []ID `json:"groupIds" validate:"required"`
    Name string `json:"name" validate:"required"`
    Title string `json:"title" validate:"required"`
    }

    // Autogenerated return type of CreateNoteTemplate
    type CreateNoteTemplatePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    NoteTemplate NoteTemplate `json:"noteTemplate" validate:"required"`
    }

    // Autogenerated input type of DeleteAttachment
    type DeleteAttachmentInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    }

    // Autogenerated return type of DeleteAttachment
    type DeleteAttachmentPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of DeleteComment
    type DeleteCommentInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    }

    // Autogenerated return type of DeleteComment
    type DeleteCommentPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of DeleteGroup
    type DeleteGroupInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    MergeToId ID `json:"mergeToId"`
    }

    // Autogenerated return type of DeleteGroup
    type DeleteGroupPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of DeleteNote
    type DeleteNoteInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    }

    // Autogenerated return type of DeleteNote
    type DeleteNotePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of DisableSharedEntry
    type DisableSharedEntryInput struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated return type of DisableSharedEntry
    type DisableSharedEntryPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of DisableUser
    type DisableUserInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    }

    // Autogenerated return type of DisableUser
    type DisableUserPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of EnableSharedEntry
    type EnableSharedEntryInput struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated return type of EnableSharedEntry
    type EnableSharedEntryPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of IgnoreMultiFactorAuthn
    type IgnoreMultiFactorAuthnInput struct {
    ClientMutationId string `json:"clientMutationId"`
    UserId ID `json:"userId" validate:"required"`
    }

    // Autogenerated return type of IgnoreMultiFactorAuthn
    type IgnoreMultiFactorAuthnPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of Invite
    type InviteInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Email string `json:"email" validate:"required"`
    Role Role `json:"role"`
    }

    // Autogenerated return type of Invite
    type InvitePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Email string `json:"email" validate:"required"`
    Hint InvitationHint `json:"hint" validate:"required"`
    Role Role `json:"role" validate:"required"`
    }

    // Message hints that suggest what happens in sending invitations
    type InvitationHint string

    const (
    INVITATION_HINT_ALREADY_JOINED = InvitationHint("ALREADY_JOINED")
    INVITATION_HINT_INVITED = InvitationHint("INVITED")
    INVITATION_HINT_RE_ENABLED = InvitationHint("RE_ENABLED")
    )

    // Autogenerated input type of JoinGroup
    type JoinGroupInput struct {
    ClientMutationId string `json:"clientMutationId"`
    GroupId ID `json:"groupId" validate:"required"`
    UserId ID `json:"userId" validate:"required"`
    }

    // Autogenerated return type of JoinGroup
    type JoinGroupPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of LeaveGroup
    type LeaveGroupInput struct {
    ClientMutationId string `json:"clientMutationId"`
    GroupId ID `json:"groupId" validate:"required"`
    UserId ID `json:"userId" validate:"required"`
    }

    // Autogenerated return type of LeaveGroup
    type LeaveGroupPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of Like
    type LikeInput struct {
    ClientMutationId string `json:"clientMutationId"`
    LikableId ID `json:"likableId" validate:"required"`
    }

    // Autogenerated return type of Like
    type LikePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Likers UserConnection `json:"likers" validate:"required"`
    }

    // Autogenerated input type of MarkNotificationsAsRead
    type MarkNotificationsAsReadInput struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated return type of MarkNotificationsAsRead
    type MarkNotificationsAsReadPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of RemoveFolderPin
    type RemoveFolderPinInput struct {
    ClientMutationId string `json:"clientMutationId"`
    NoteId ID `json:"noteId" validate:"required"`
    }

    // Autogenerated return type of RemoveFolderPin
    type RemoveFolderPinPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Folder Folder `json:"folder" validate:"required"`
    }

    // Autogenerated input type of RemoveGroupPin
    type RemoveGroupPinInput struct {
    ClientMutationId string `json:"clientMutationId"`
    GroupId ID `json:"groupId" validate:"required"`
    NoteId ID `json:"noteId" validate:"required"`
    }

    // Autogenerated return type of RemoveGroupPin
    type RemoveGroupPinPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Group Group `json:"group" validate:"required"`
    }

    // Autogenerated input type of RestoreFolder
    type RestoreFolderInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    }

    // Autogenerated return type of RestoreFolder
    type RestoreFolderPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Folder Folder `json:"folder" validate:"required"`
    }

    // Autogenerated input type of RestoreGroup
    type RestoreGroupInput struct {
    ClientMutationId string `json:"clientMutationId"`
    GroupId ID `json:"groupId" validate:"required"`
    }

    // Autogenerated return type of RestoreGroup
    type RestoreGroupPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Group Group `json:"group" validate:"required"`
    }

    // Autogenerated input type of RevokeAccessToken
    type RevokeAccessTokenInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    }

    // Autogenerated return type of RevokeAccessToken
    type RevokeAccessTokenPayload struct {
    AccessToken AccessToken `json:"accessToken" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of TransferGroupNotes
    type TransferGroupNotesInput struct {
    ClientMutationId string `json:"clientMutationId"`
    FromGroupId ID `json:"fromGroupId" validate:"required"`
    ToGroupId ID `json:"toGroupId" validate:"required"`
    }

    // Autogenerated return type of TransferGroupNotes
    type TransferGroupNotesPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    From Group `json:"from" validate:"required"`
    To Group `json:"to" validate:"required"`
    }

    // Autogenerated input type of Unlike
    type UnlikeInput struct {
    ClientMutationId string `json:"clientMutationId"`
    LikableId ID `json:"likableId" validate:"required"`
    }

    // Autogenerated return type of Unlike
    type UnlikePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Likers UserConnection `json:"likers" validate:"required"`
    }

    // Autogenerated input type of UnwatchNote
    type UnwatchNoteInput struct {
    ClientMutationId string `json:"clientMutationId"`
    NoteId ID `json:"noteId" validate:"required"`
    }

    // Autogenerated return type of UnwatchNote
    type UnwatchNotePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of UpdateAccessToken
    type UpdateAccessTokenInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Description string `json:"description" validate:"required"`
    Id ID `json:"id" validate:"required"`
    Scopes []AccessTokenScope `json:"scopes" validate:"required"`
    Title string `json:"title" validate:"required"`
    }

    // Autogenerated return type of UpdateAccessToken
    type UpdateAccessTokenPayload struct {
    AccessToken AccessToken `json:"accessToken" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of UpdateComment
    type UpdateCommentInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Content string `json:"content" validate:"required"`
    Id ID `json:"id" validate:"required"`
    Touch bool `json:"touch"`
    }

    // Autogenerated return type of UpdateComment
    type UpdateCommentPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Comment Comment `json:"comment" validate:"required"`
    }

    // Autogenerated input type of UpdateDashboard
    type UpdateDashboardInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Content string `json:"content" validate:"required"`
    GroupId ID `json:"groupId" validate:"required"`
    }

    // Autogenerated return type of UpdateDashboard
    type UpdateDashboardPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Dashboard Dashboard `json:"dashboard" validate:"required"`
    }

    // A dashboard of a group
    type Dashboard struct {
    Content string `json:"content" validate:"required"`
    ContentHtml string `json:"contentHtml" validate:"required"`
    CreatedAt DateTime `json:"createdAt" validate:"required"`
    Group Group `json:"group" validate:"required"`
    Id ID `json:"id" validate:"required"`
    UpdatedAt DateTime `json:"updatedAt" validate:"required"`
    }

    // Autogenerated input type of UpdateDashboardContent
    type UpdateDashboardContentInput struct {
    BaseContent string `json:"baseContent" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    GroupId ID `json:"groupId" validate:"required"`
    NewContent string `json:"newContent" validate:"required"`
    }

    // Autogenerated return type of UpdateDashboardContent
    type UpdateDashboardContentPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Dashboard Dashboard `json:"dashboard" validate:"required"`
    }

    // Autogenerated input type of UpdateFolderName
    type UpdateFolderNameInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    Name string `json:"name" validate:"required"`
    }

    // Autogenerated return type of UpdateFolderName
    type UpdateFolderNamePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Folder Folder `json:"folder" validate:"required"`
    }

    // Autogenerated input type of UpdateFolderParent
    type UpdateFolderParentInput struct {
    ClientMutationId string `json:"clientMutationId"`
    FolderFullName string `json:"folderFullName"`
    FolderId ID `json:"folderId" validate:"required"`
    }

    // Autogenerated return type of UpdateFolderParent
    type UpdateFolderParentPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Folder Folder `json:"folder" validate:"required"`
    }

    // Autogenerated input type of UpdateGroup
    type UpdateGroupInput struct {
    ClientMutationId string `json:"clientMutationId"`
    CoverImageKey string `json:"coverImageKey"`
    Description string `json:"description"`
    Id ID `json:"id" validate:"required"`
    IsPrivate bool `json:"isPrivate"`
    Name string `json:"name"`
    }

    // Autogenerated return type of UpdateGroup
    type UpdateGroupPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Group Group `json:"group" validate:"required"`
    }

    // Autogenerated input type of UpdateNote
    type UpdateNoteInput struct {
    BaseNote NoteInput `json:"baseNote" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    Draft bool `json:"draft" validate:"required"`
    Id ID `json:"id" validate:"required"`
    NewNote NoteInput `json:"newNote" validate:"required"`
    }

    // Note input struct, used to updateNote mutation
    type NoteInput struct {
    Coediting bool `json:"coediting" validate:"required"`
    Content string `json:"content" validate:"required"`
    FolderName string `json:"folderName"`
    GroupIds []ID `json:"groupIds" validate:"required"`
    Title string `json:"title" validate:"required"`
    }

    // Autogenerated return type of UpdateNote
    type UpdateNotePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Note Note `json:"note" validate:"required"`
    }

    // Autogenerated input type of UpdateNoteContent
    type UpdateNoteContentInput struct {
    BaseContent string `json:"baseContent" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    NewContent string `json:"newContent" validate:"required"`
    Touch bool `json:"touch"`
    }

    // Autogenerated return type of UpdateNoteContent
    type UpdateNoteContentPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Note Note `json:"note" validate:"required"`
    }

    // Autogenerated input type of UpdateNoteFolder
    type UpdateNoteFolderInput struct {
    ClientMutationId string `json:"clientMutationId"`
    FolderFullName string `json:"folderFullName"`
    NoteId ID `json:"noteId" validate:"required"`
    }

    // Autogenerated return type of UpdateNoteFolder
    type UpdateNoteFolderPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Note Note `json:"note" validate:"required"`
    }

    // Autogenerated input type of UpdateNoteTemplate
    type UpdateNoteTemplateInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Coediting bool `json:"coediting" validate:"required"`
    Content string `json:"content" validate:"required"`
    FolderFullName string `json:"folderFullName"`
    GroupIds []ID `json:"groupIds" validate:"required"`
    Id ID `json:"id" validate:"required"`
    Name string `json:"name" validate:"required"`
    Title string `json:"title" validate:"required"`
    }

    // Autogenerated return type of UpdateNoteTemplate
    type UpdateNoteTemplatePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    NoteTemplate NoteTemplate `json:"noteTemplate" validate:"required"`
    }

    // Autogenerated input type of UpdateNoteTitle
    type UpdateNoteTitleInput struct {
    BaseTitle string `json:"baseTitle" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    Id ID `json:"id" validate:"required"`
    NewTitle string `json:"newTitle" validate:"required"`
    }

    // Autogenerated return type of UpdateNoteTitle
    type UpdateNoteTitlePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    Note Note `json:"note" validate:"required"`
    }

    // Autogenerated input type of UpdateTeamSetting
    type UpdateTeamSettingInput struct {
    City string `json:"city"`
    ClientMutationId string `json:"clientMutationId"`
    Country string `json:"country"`
    DepartmentName string `json:"departmentName"`
    InChargeUserId ID `json:"inChargeUserId"`
    OrganizationKind OrganizationKind `json:"organizationKind"`
    OrganizationName string `json:"organizationName"`
    PhoneNumber string `json:"phoneNumber"`
    PostalCode string `json:"postalCode"`
    State string `json:"state"`
    StreetAddress string `json:"streetAddress"`
    }

    // Kind of the organization
    type OrganizationKind string

    const (
    ORGANIZATION_KIND_COMPANY = OrganizationKind("COMPANY")
    ORGANIZATION_KIND_OTHER = OrganizationKind("OTHER")
    ORGANIZATION_KIND_PERSONAL = OrganizationKind("PERSONAL")
    ORGANIZATION_KIND_UNKNOWN = OrganizationKind("UNKNOWN")
    )

    // Autogenerated return type of UpdateTeamSetting
    type UpdateTeamSettingPayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of UploadAttachment
    type UploadAttachmentInput struct {
    ClientMutationId string `json:"clientMutationId"`
    Data Blob `json:"data" validate:"required"`
    Kind AttachmentKind `json:"kind" validate:"required"`
    Name string `json:"name" validate:"required"`
    }

    // Autogenerated return type of UploadAttachment
    type UploadAttachmentPayload struct {
    Attachment Attachment `json:"attachment" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of UploadAttachmentWithDataUrl
    type UploadAttachmentWithDataUrlInput struct {
    ClientMutationId string `json:"clientMutationId"`
    DataUrl string `json:"dataUrl" validate:"required"`
    Kind AttachmentKind `json:"kind" validate:"required"`
    Name string `json:"name" validate:"required"`
    }

    // Autogenerated return type of UploadAttachmentWithDataUrl
    type UploadAttachmentWithDataUrlPayload struct {
    Attachment Attachment `json:"attachment" validate:"required"`
    ClientMutationId string `json:"clientMutationId"`
    }

    // Autogenerated input type of WatchNote
    type WatchNoteInput struct {
    ClientMutationId string `json:"clientMutationId"`
    NoteId ID `json:"noteId" validate:"required"`
    WatchedAction WatchState `json:"watchedAction" validate:"required"`
    }

    // State of watching note
    type WatchState string

    const (
    WATCH_STATE_WATCH_COMMENT = WatchState("WATCH_COMMENT")
    WATCH_STATE_WATCH_NOTE_UPDATE = WatchState("WATCH_NOTE_UPDATE")
    )

    // Autogenerated return type of WatchNote
    type WatchNotePayload struct {
    ClientMutationId string `json:"clientMutationId"`
    }