// Code generated by github.com/Khan/genqlient, DO NOT EDIT.

package query

import (
	"context"
	"encoding/json"
	"fmt"

	"github.com/Khan/genqlient/graphql"
	"github.com/stateful/runme/internal/client/graphql/schema/model"
)

// AddNoteCreateUserAnnotationCreateUserAnnotationPayload includes the requested fields of the GraphQL type CreateUserAnnotationPayload.
type AddNoteCreateUserAnnotationCreateUserAnnotationPayload struct {
	UserAnnotation UserAnnotation                       `json:"userAnnotation"`
	Errors         []UserErrorCreateUserAnnotationError `json:"errors"`
}

// GetUserAnnotation returns AddNoteCreateUserAnnotationCreateUserAnnotationPayload.UserAnnotation, and is useful for accessing the field via an interface.
func (v *AddNoteCreateUserAnnotationCreateUserAnnotationPayload) GetUserAnnotation() UserAnnotation {
	return v.UserAnnotation
}

// GetErrors returns AddNoteCreateUserAnnotationCreateUserAnnotationPayload.Errors, and is useful for accessing the field via an interface.
func (v *AddNoteCreateUserAnnotationCreateUserAnnotationPayload) GetErrors() []UserErrorCreateUserAnnotationError {
	return v.Errors
}

// AddNoteResponse is returned by AddNote on success.
type AddNoteResponse struct {
	CreateUserAnnotation AddNoteCreateUserAnnotationCreateUserAnnotationPayload `json:"createUserAnnotation"`
	Track                AddNoteTrackTrackPayload                               `json:"track"`
}

// GetCreateUserAnnotation returns AddNoteResponse.CreateUserAnnotation, and is useful for accessing the field via an interface.
func (v *AddNoteResponse) GetCreateUserAnnotation() AddNoteCreateUserAnnotationCreateUserAnnotationPayload {
	return v.CreateUserAnnotation
}

// GetTrack returns AddNoteResponse.Track, and is useful for accessing the field via an interface.
func (v *AddNoteResponse) GetTrack() AddNoteTrackTrackPayload { return v.Track }

// AddNoteTrackTrackPayload includes the requested fields of the GraphQL type TrackPayload.
type AddNoteTrackTrackPayload struct {
	Errors []TrackError `json:"errors"`
}

// GetErrors returns AddNoteTrackTrackPayload.Errors, and is useful for accessing the field via an interface.
func (v *AddNoteTrackTrackPayload) GetErrors() []TrackError { return v.Errors }

type AnnotationType string

const (
	AnnotationTypeDayNote AnnotationType = "DAY_NOTE"
	AnnotationTypeNote    AnnotationType = "NOTE"
	AnnotationTypeTodo    AnnotationType = "TODO"
)

type BranchSuggestionInput struct {
	Branch      string `json:"branch"`
	Description string `json:"description"`
}

// GetBranch returns BranchSuggestionInput.Branch, and is useful for accessing the field via an interface.
func (v *BranchSuggestionInput) GetBranch() string { return v.Branch }

// GetDescription returns BranchSuggestionInput.Description, and is useful for accessing the field via an interface.
func (v *BranchSuggestionInput) GetDescription() string { return v.Description }

// CodingDuration includes the GraphQL fields of CodingDuration requested by the fragment CodingDuration.
type CodingDuration struct {
	TotalMs int `json:"totalMs"`
}

// GetTotalMs returns CodingDuration.TotalMs, and is useful for accessing the field via an interface.
func (v *CodingDuration) GetTotalMs() int { return v.TotalMs }

type CreateUserAnnotationInput struct {
	Content       string         `json:"content"`
	Date          string         `json:"date,omitempty"`
	Type          AnnotationType `json:"type"`
	GitUrl        string         `json:"gitUrl"`
	ProjectId     string         `json:"projectId,omitempty"`
	Complete      bool           `json:"complete"`
	Hide          bool           `json:"hide"`
	GitBranchName string         `json:"gitBranchName"`
	GitCommit     string         `json:"gitCommit"`
	FileLine      int            `json:"fileLine"`
	FilePath      string         `json:"filePath"`
}

// GetContent returns CreateUserAnnotationInput.Content, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetContent() string { return v.Content }

// GetDate returns CreateUserAnnotationInput.Date, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetDate() string { return v.Date }

// GetType returns CreateUserAnnotationInput.Type, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetType() AnnotationType { return v.Type }

// GetGitUrl returns CreateUserAnnotationInput.GitUrl, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetGitUrl() string { return v.GitUrl }

// GetProjectId returns CreateUserAnnotationInput.ProjectId, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetProjectId() string { return v.ProjectId }

// GetComplete returns CreateUserAnnotationInput.Complete, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetComplete() bool { return v.Complete }

// GetHide returns CreateUserAnnotationInput.Hide, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetHide() bool { return v.Hide }

// GetGitBranchName returns CreateUserAnnotationInput.GitBranchName, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetGitBranchName() string { return v.GitBranchName }

// GetGitCommit returns CreateUserAnnotationInput.GitCommit, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetGitCommit() string { return v.GitCommit }

// GetFileLine returns CreateUserAnnotationInput.FileLine, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetFileLine() int { return v.FileLine }

// GetFilePath returns CreateUserAnnotationInput.FilePath, and is useful for accessing the field via an interface.
func (v *CreateUserAnnotationInput) GetFilePath() string { return v.FilePath }

// Day includes the GraphQL fields of Day requested by the fragment Day.
type Day struct {
	Date           string                      `json:"date"`
	StartTime      model.DateTime              `json:"startTime"`
	Timezone       string                      `json:"timezone"`
	EndTime        model.DateTime              `json:"endTime"`
	Score          int                         `json:"score"`
	Rating         *int                        `json:"rating"`
	Hours          DayHoursDayHourList         `json:"hours"`
	Languages      DayLanguagesDayLanguageList `json:"languages"`
	Projects       DayProjectsDayProjectList   `json:"projects"`
	CodingDuration CodingDuration              `json:"codingDuration"`
}

// GetDate returns Day.Date, and is useful for accessing the field via an interface.
func (v *Day) GetDate() string { return v.Date }

// GetStartTime returns Day.StartTime, and is useful for accessing the field via an interface.
func (v *Day) GetStartTime() model.DateTime { return v.StartTime }

// GetTimezone returns Day.Timezone, and is useful for accessing the field via an interface.
func (v *Day) GetTimezone() string { return v.Timezone }

// GetEndTime returns Day.EndTime, and is useful for accessing the field via an interface.
func (v *Day) GetEndTime() model.DateTime { return v.EndTime }

// GetScore returns Day.Score, and is useful for accessing the field via an interface.
func (v *Day) GetScore() int { return v.Score }

// GetRating returns Day.Rating, and is useful for accessing the field via an interface.
func (v *Day) GetRating() *int { return v.Rating }

// GetHours returns Day.Hours, and is useful for accessing the field via an interface.
func (v *Day) GetHours() DayHoursDayHourList { return v.Hours }

// GetLanguages returns Day.Languages, and is useful for accessing the field via an interface.
func (v *Day) GetLanguages() DayLanguagesDayLanguageList { return v.Languages }

// GetProjects returns Day.Projects, and is useful for accessing the field via an interface.
func (v *Day) GetProjects() DayProjectsDayProjectList { return v.Projects }

// GetCodingDuration returns Day.CodingDuration, and is useful for accessing the field via an interface.
func (v *Day) GetCodingDuration() CodingDuration { return v.CodingDuration }

// DayHour includes the GraphQL fields of DayHour requested by the fragment DayHour.
type DayHour struct {
	Time           model.DateTime `json:"time"`
	CodingDuration CodingDuration `json:"codingDuration"`
}

// GetTime returns DayHour.Time, and is useful for accessing the field via an interface.
func (v *DayHour) GetTime() model.DateTime { return v.Time }

// GetCodingDuration returns DayHour.CodingDuration, and is useful for accessing the field via an interface.
func (v *DayHour) GetCodingDuration() CodingDuration { return v.CodingDuration }

// DayHoursDayHourList includes the requested fields of the GraphQL type DayHourList.
type DayHoursDayHourList struct {
	Data []DayHour `json:"data"`
}

// GetData returns DayHoursDayHourList.Data, and is useful for accessing the field via an interface.
func (v *DayHoursDayHourList) GetData() []DayHour { return v.Data }

// DayLanguage includes the GraphQL fields of DayLanguage requested by the fragment DayLanguage.
type DayLanguage struct {
	Id             string         `json:"id"`
	DisplayName    string         `json:"displayName"`
	CodingDuration CodingDuration `json:"codingDuration"`
}

// GetId returns DayLanguage.Id, and is useful for accessing the field via an interface.
func (v *DayLanguage) GetId() string { return v.Id }

// GetDisplayName returns DayLanguage.DisplayName, and is useful for accessing the field via an interface.
func (v *DayLanguage) GetDisplayName() string { return v.DisplayName }

// GetCodingDuration returns DayLanguage.CodingDuration, and is useful for accessing the field via an interface.
func (v *DayLanguage) GetCodingDuration() CodingDuration { return v.CodingDuration }

// DayLanguagesDayLanguageList includes the requested fields of the GraphQL type DayLanguageList.
type DayLanguagesDayLanguageList struct {
	Data []DayLanguage `json:"data"`
}

// GetData returns DayLanguagesDayLanguageList.Data, and is useful for accessing the field via an interface.
func (v *DayLanguagesDayLanguageList) GetData() []DayLanguage { return v.Data }

// DayProject includes the GraphQL fields of DayProject requested by the fragment DayProject.
type DayProject struct {
	GitBranches    DayProjectGitBranchesDayProjectGitBranchList `json:"gitBranches"`
	Files          DayProjectFilesDayProjectFileList            `json:"files"`
	Id             string                                       `json:"id"`
	DisplayName    string                                       `json:"displayName"`
	ShortName      string                                       `json:"shortName"`
	Name           string                                       `json:"name"`
	CodingDuration CodingDuration                               `json:"codingDuration"`
}

// GetGitBranches returns DayProject.GitBranches, and is useful for accessing the field via an interface.
func (v *DayProject) GetGitBranches() DayProjectGitBranchesDayProjectGitBranchList {
	return v.GitBranches
}

// GetFiles returns DayProject.Files, and is useful for accessing the field via an interface.
func (v *DayProject) GetFiles() DayProjectFilesDayProjectFileList { return v.Files }

// GetId returns DayProject.Id, and is useful for accessing the field via an interface.
func (v *DayProject) GetId() string { return v.Id }

// GetDisplayName returns DayProject.DisplayName, and is useful for accessing the field via an interface.
func (v *DayProject) GetDisplayName() string { return v.DisplayName }

// GetShortName returns DayProject.ShortName, and is useful for accessing the field via an interface.
func (v *DayProject) GetShortName() string { return v.ShortName }

// GetName returns DayProject.Name, and is useful for accessing the field via an interface.
func (v *DayProject) GetName() string { return v.Name }

// GetCodingDuration returns DayProject.CodingDuration, and is useful for accessing the field via an interface.
func (v *DayProject) GetCodingDuration() CodingDuration { return v.CodingDuration }

// DayProjectFile includes the GraphQL fields of DayProjectFile requested by the fragment DayProjectFile.
type DayProjectFile struct {
	Name           string         `json:"name"`
	Path           string         `json:"path"`
	CodingDuration CodingDuration `json:"codingDuration"`
}

// GetName returns DayProjectFile.Name, and is useful for accessing the field via an interface.
func (v *DayProjectFile) GetName() string { return v.Name }

// GetPath returns DayProjectFile.Path, and is useful for accessing the field via an interface.
func (v *DayProjectFile) GetPath() string { return v.Path }

// GetCodingDuration returns DayProjectFile.CodingDuration, and is useful for accessing the field via an interface.
func (v *DayProjectFile) GetCodingDuration() CodingDuration { return v.CodingDuration }

// DayProjectFilesDayProjectFileList includes the requested fields of the GraphQL type DayProjectFileList.
type DayProjectFilesDayProjectFileList struct {
	Data []DayProjectFile `json:"data"`
}

// GetData returns DayProjectFilesDayProjectFileList.Data, and is useful for accessing the field via an interface.
func (v *DayProjectFilesDayProjectFileList) GetData() []DayProjectFile { return v.Data }

// DayProjectGitBranchesDayProjectGitBranchList includes the requested fields of the GraphQL type DayProjectGitBranchList.
type DayProjectGitBranchesDayProjectGitBranchList struct {
	Data []DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch `json:"data"`
}

// GetData returns DayProjectGitBranchesDayProjectGitBranchList.Data, and is useful for accessing the field via an interface.
func (v *DayProjectGitBranchesDayProjectGitBranchList) GetData() []DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch {
	return v.Data
}

// DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch includes the requested fields of the GraphQL type DayProjectGitBranch.
type DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch struct {
	Name           string                                                                                     `json:"name"`
	Files          DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranchFilesDayProjectFileList `json:"files"`
	CodingDuration CodingDuration                                                                             `json:"codingDuration"`
}

// GetName returns DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch.Name, and is useful for accessing the field via an interface.
func (v *DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch) GetName() string {
	return v.Name
}

// GetFiles returns DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch.Files, and is useful for accessing the field via an interface.
func (v *DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch) GetFiles() DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranchFilesDayProjectFileList {
	return v.Files
}

// GetCodingDuration returns DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch.CodingDuration, and is useful for accessing the field via an interface.
func (v *DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranch) GetCodingDuration() CodingDuration {
	return v.CodingDuration
}

// DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranchFilesDayProjectFileList includes the requested fields of the GraphQL type DayProjectFileList.
type DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranchFilesDayProjectFileList struct {
	Data []DayProjectFile `json:"data"`
}

// GetData returns DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranchFilesDayProjectFileList.Data, and is useful for accessing the field via an interface.
func (v *DayProjectGitBranchesDayProjectGitBranchListDataDayProjectGitBranchFilesDayProjectFileList) GetData() []DayProjectFile {
	return v.Data
}

// DayProjectsDayProjectList includes the requested fields of the GraphQL type DayProjectList.
type DayProjectsDayProjectList struct {
	Data []DayProject `json:"data"`
}

// GetData returns DayProjectsDayProjectList.Data, and is useful for accessing the field via an interface.
func (v *DayProjectsDayProjectList) GetData() []DayProject { return v.Data }

type DeleteUserAnnotationInput struct {
	Id string `json:"id"`
}

// GetId returns DeleteUserAnnotationInput.Id, and is useful for accessing the field via an interface.
func (v *DeleteUserAnnotationInput) GetId() string { return v.Id }

// GetDayDay includes the requested fields of the GraphQL type Day.
type GetDayDay struct {
	Day `json:"-"`
}

// GetDate returns GetDayDay.Date, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetDate() string { return v.Day.Date }

// GetStartTime returns GetDayDay.StartTime, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetStartTime() model.DateTime { return v.Day.StartTime }

// GetTimezone returns GetDayDay.Timezone, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetTimezone() string { return v.Day.Timezone }

// GetEndTime returns GetDayDay.EndTime, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetEndTime() model.DateTime { return v.Day.EndTime }

// GetScore returns GetDayDay.Score, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetScore() int { return v.Day.Score }

// GetRating returns GetDayDay.Rating, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetRating() *int { return v.Day.Rating }

// GetHours returns GetDayDay.Hours, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetHours() DayHoursDayHourList { return v.Day.Hours }

// GetLanguages returns GetDayDay.Languages, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetLanguages() DayLanguagesDayLanguageList { return v.Day.Languages }

// GetProjects returns GetDayDay.Projects, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetProjects() DayProjectsDayProjectList { return v.Day.Projects }

// GetCodingDuration returns GetDayDay.CodingDuration, and is useful for accessing the field via an interface.
func (v *GetDayDay) GetCodingDuration() CodingDuration { return v.Day.CodingDuration }

func (v *GetDayDay) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*GetDayDay
		graphql.NoUnmarshalJSON
	}
	firstPass.GetDayDay = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.Day)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalGetDayDay struct {
	Date string `json:"date"`

	StartTime model.DateTime `json:"startTime"`

	Timezone string `json:"timezone"`

	EndTime model.DateTime `json:"endTime"`

	Score int `json:"score"`

	Rating *int `json:"rating"`

	Hours DayHoursDayHourList `json:"hours"`

	Languages DayLanguagesDayLanguageList `json:"languages"`

	Projects DayProjectsDayProjectList `json:"projects"`

	CodingDuration CodingDuration `json:"codingDuration"`
}

func (v *GetDayDay) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *GetDayDay) __premarshalJSON() (*__premarshalGetDayDay, error) {
	var retval __premarshalGetDayDay

	retval.Date = v.Day.Date
	retval.StartTime = v.Day.StartTime
	retval.Timezone = v.Day.Timezone
	retval.EndTime = v.Day.EndTime
	retval.Score = v.Day.Score
	retval.Rating = v.Day.Rating
	retval.Hours = v.Day.Hours
	retval.Languages = v.Day.Languages
	retval.Projects = v.Day.Projects
	retval.CodingDuration = v.Day.CodingDuration
	return &retval, nil
}

// GetDayResponse is returned by GetDay on success.
type GetDayResponse struct {
	Day   GetDayDay               `json:"day"`
	Track GetDayTrackTrackPayload `json:"track"`
}

// GetDay returns GetDayResponse.Day, and is useful for accessing the field via an interface.
func (v *GetDayResponse) GetDay() GetDayDay { return v.Day }

// GetTrack returns GetDayResponse.Track, and is useful for accessing the field via an interface.
func (v *GetDayResponse) GetTrack() GetDayTrackTrackPayload { return v.Track }

// GetDayTrackTrackPayload includes the requested fields of the GraphQL type TrackPayload.
type GetDayTrackTrackPayload struct {
	Errors []TrackError `json:"errors"`
}

// GetErrors returns GetDayTrackTrackPayload.Errors, and is useful for accessing the field via an interface.
func (v *GetDayTrackTrackPayload) GetErrors() []TrackError { return v.Errors }

// GetDaysDaysDayList includes the requested fields of the GraphQL type DayList.
type GetDaysDaysDayList struct {
	Data          []Day  `json:"data"`
	NextPageToken string `json:"nextPageToken"`
}

// GetData returns GetDaysDaysDayList.Data, and is useful for accessing the field via an interface.
func (v *GetDaysDaysDayList) GetData() []Day { return v.Data }

// GetNextPageToken returns GetDaysDaysDayList.NextPageToken, and is useful for accessing the field via an interface.
func (v *GetDaysDaysDayList) GetNextPageToken() string { return v.NextPageToken }

// GetDaysResponse is returned by GetDays on success.
type GetDaysResponse struct {
	Days  GetDaysDaysDayList       `json:"days"`
	Track GetDaysTrackTrackPayload `json:"track"`
}

// GetDays returns GetDaysResponse.Days, and is useful for accessing the field via an interface.
func (v *GetDaysResponse) GetDays() GetDaysDaysDayList { return v.Days }

// GetTrack returns GetDaysResponse.Track, and is useful for accessing the field via an interface.
func (v *GetDaysResponse) GetTrack() GetDaysTrackTrackPayload { return v.Track }

// GetDaysTrackTrackPayload includes the requested fields of the GraphQL type TrackPayload.
type GetDaysTrackTrackPayload struct {
	Errors []TrackError `json:"errors"`
}

// GetErrors returns GetDaysTrackTrackPayload.Errors, and is useful for accessing the field via an interface.
func (v *GetDaysTrackTrackPayload) GetErrors() []TrackError { return v.Errors }

// GetStandupResponse is returned by GetStandup on success.
type GetStandupResponse struct {
	Standup GetStandupStandup           `json:"standup"`
	Track   GetStandupTrackTrackPayload `json:"track"`
}

// GetStandup returns GetStandupResponse.Standup, and is useful for accessing the field via an interface.
func (v *GetStandupResponse) GetStandup() GetStandupStandup { return v.Standup }

// GetTrack returns GetStandupResponse.Track, and is useful for accessing the field via an interface.
func (v *GetStandupResponse) GetTrack() GetStandupTrackTrackPayload { return v.Track }

// GetStandupStandup includes the requested fields of the GraphQL type Standup.
type GetStandupStandup struct {
	Standup `json:"-"`
}

// GetDate returns GetStandupStandup.Date, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetDate() string { return v.Standup.Date }

// GetTimezone returns GetStandupStandup.Timezone, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetTimezone() string { return v.Standup.Timezone }

// GetDayCount returns GetStandupStandup.DayCount, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetDayCount() int { return v.Standup.DayCount }

// GetRating returns GetStandupStandup.Rating, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetRating() *StandupRatingDayRatingSummary { return v.Standup.Rating }

// GetScore returns GetStandupStandup.Score, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetScore() StandupScoreDayScoreSummary { return v.Standup.Score }

// GetCodingDuration returns GetStandupStandup.CodingDuration, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetCodingDuration() CodingDuration { return v.Standup.CodingDuration }

// GetDays returns GetStandupStandup.Days, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetDays() StandupDaysStandupDayList { return v.Standup.Days }

// GetProjects returns GetStandupStandup.Projects, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetProjects() StandupProjectsDayProjectList { return v.Standup.Projects }

// GetLanguages returns GetStandupStandup.Languages, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetLanguages() StandupLanguagesDayLanguageList {
	return v.Standup.Languages
}

// GetUserAnnotations returns GetStandupStandup.UserAnnotations, and is useful for accessing the field via an interface.
func (v *GetStandupStandup) GetUserAnnotations() StandupUserAnnotationsUserAnnotationList {
	return v.Standup.UserAnnotations
}

func (v *GetStandupStandup) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*GetStandupStandup
		graphql.NoUnmarshalJSON
	}
	firstPass.GetStandupStandup = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.Standup)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalGetStandupStandup struct {
	Date string `json:"date"`

	Timezone string `json:"timezone"`

	DayCount int `json:"dayCount"`

	Rating *StandupRatingDayRatingSummary `json:"rating"`

	Score StandupScoreDayScoreSummary `json:"score"`

	CodingDuration CodingDuration `json:"codingDuration"`

	Days StandupDaysStandupDayList `json:"days"`

	Projects StandupProjectsDayProjectList `json:"projects"`

	Languages StandupLanguagesDayLanguageList `json:"languages"`

	UserAnnotations StandupUserAnnotationsUserAnnotationList `json:"userAnnotations"`
}

func (v *GetStandupStandup) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *GetStandupStandup) __premarshalJSON() (*__premarshalGetStandupStandup, error) {
	var retval __premarshalGetStandupStandup

	retval.Date = v.Standup.Date
	retval.Timezone = v.Standup.Timezone
	retval.DayCount = v.Standup.DayCount
	retval.Rating = v.Standup.Rating
	retval.Score = v.Standup.Score
	retval.CodingDuration = v.Standup.CodingDuration
	retval.Days = v.Standup.Days
	retval.Projects = v.Standup.Projects
	retval.Languages = v.Standup.Languages
	retval.UserAnnotations = v.Standup.UserAnnotations
	return &retval, nil
}

// GetStandupTrackTrackPayload includes the requested fields of the GraphQL type TrackPayload.
type GetStandupTrackTrackPayload struct {
	Errors []GetStandupTrackTrackPayloadErrorsTrackError `json:"errors"`
}

// GetErrors returns GetStandupTrackTrackPayload.Errors, and is useful for accessing the field via an interface.
func (v *GetStandupTrackTrackPayload) GetErrors() []GetStandupTrackTrackPayloadErrorsTrackError {
	return v.Errors
}

// GetStandupTrackTrackPayloadErrorsTrackError includes the requested fields of the GraphQL type TrackError.
type GetStandupTrackTrackPayloadErrorsTrackError struct {
	TrackError `json:"-"`
}

// GetMessage returns GetStandupTrackTrackPayloadErrorsTrackError.Message, and is useful for accessing the field via an interface.
func (v *GetStandupTrackTrackPayloadErrorsTrackError) GetMessage() string {
	return v.TrackError.Message
}

// GetField returns GetStandupTrackTrackPayloadErrorsTrackError.Field, and is useful for accessing the field via an interface.
func (v *GetStandupTrackTrackPayloadErrorsTrackError) GetField() []string { return v.TrackError.Field }

func (v *GetStandupTrackTrackPayloadErrorsTrackError) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*GetStandupTrackTrackPayloadErrorsTrackError
		graphql.NoUnmarshalJSON
	}
	firstPass.GetStandupTrackTrackPayloadErrorsTrackError = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TrackError)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalGetStandupTrackTrackPayloadErrorsTrackError struct {
	Message string `json:"message"`

	Field []string `json:"field"`
}

func (v *GetStandupTrackTrackPayloadErrorsTrackError) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *GetStandupTrackTrackPayloadErrorsTrackError) __premarshalJSON() (*__premarshalGetStandupTrackTrackPayloadErrorsTrackError, error) {
	var retval __premarshalGetStandupTrackTrackPayloadErrorsTrackError

	retval.Message = v.TrackError.Message
	retval.Field = v.TrackError.Field
	return &retval, nil
}

// GetStandupsResponse is returned by GetStandups on success.
type GetStandupsResponse struct {
	Standups GetStandupsStandupsStandupList `json:"standups"`
	Track    GetStandupsTrackTrackPayload   `json:"track"`
}

// GetStandups returns GetStandupsResponse.Standups, and is useful for accessing the field via an interface.
func (v *GetStandupsResponse) GetStandups() GetStandupsStandupsStandupList { return v.Standups }

// GetTrack returns GetStandupsResponse.Track, and is useful for accessing the field via an interface.
func (v *GetStandupsResponse) GetTrack() GetStandupsTrackTrackPayload { return v.Track }

// GetStandupsStandupsStandupList includes the requested fields of the GraphQL type StandupList.
type GetStandupsStandupsStandupList struct {
	Data []ListStandup `json:"data"`
}

// GetData returns GetStandupsStandupsStandupList.Data, and is useful for accessing the field via an interface.
func (v *GetStandupsStandupsStandupList) GetData() []ListStandup { return v.Data }

// GetStandupsTrackTrackPayload includes the requested fields of the GraphQL type TrackPayload.
type GetStandupsTrackTrackPayload struct {
	Errors []TrackError `json:"errors"`
}

// GetErrors returns GetStandupsTrackTrackPayload.Errors, and is useful for accessing the field via an interface.
func (v *GetStandupsTrackTrackPayload) GetErrors() []TrackError { return v.Errors }

// GetSuggestedBranchResponse is returned by GetSuggestedBranch on success.
type GetSuggestedBranchResponse struct {
	SuggestedBranchnames GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponse `json:"suggestedBranchnames"`
	Track                GetSuggestedBranchTrackTrackPayload                           `json:"track"`
}

// GetSuggestedBranchnames returns GetSuggestedBranchResponse.SuggestedBranchnames, and is useful for accessing the field via an interface.
func (v *GetSuggestedBranchResponse) GetSuggestedBranchnames() GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponse {
	return v.SuggestedBranchnames
}

// GetTrack returns GetSuggestedBranchResponse.Track, and is useful for accessing the field via an interface.
func (v *GetSuggestedBranchResponse) GetTrack() GetSuggestedBranchTrackTrackPayload { return v.Track }

// GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponse includes the requested fields of the GraphQL type SuggestedBranchResponse.
type GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponse struct {
	Data []GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponseDataSuggestedBranch `json:"data"`
}

// GetData returns GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponse.Data, and is useful for accessing the field via an interface.
func (v *GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponse) GetData() []GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponseDataSuggestedBranch {
	return v.Data
}

// GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponseDataSuggestedBranch includes the requested fields of the GraphQL type SuggestedBranch.
type GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponseDataSuggestedBranch struct {
	Name string `json:"name"`
}

// GetName returns GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponseDataSuggestedBranch.Name, and is useful for accessing the field via an interface.
func (v *GetSuggestedBranchSuggestedBranchnamesSuggestedBranchResponseDataSuggestedBranch) GetName() string {
	return v.Name
}

// GetSuggestedBranchTrackTrackPayload includes the requested fields of the GraphQL type TrackPayload.
type GetSuggestedBranchTrackTrackPayload struct {
	Errors []TrackError `json:"errors"`
}

// GetErrors returns GetSuggestedBranchTrackTrackPayload.Errors, and is useful for accessing the field via an interface.
func (v *GetSuggestedBranchTrackTrackPayload) GetErrors() []TrackError { return v.Errors }

// GetUserResponse is returned by GetUser on success.
type GetUserResponse struct {
	User  GetUserUser              `json:"user"`
	Track GetUserTrackTrackPayload `json:"track"`
}

// GetUser returns GetUserResponse.User, and is useful for accessing the field via an interface.
func (v *GetUserResponse) GetUser() GetUserUser { return v.User }

// GetTrack returns GetUserResponse.Track, and is useful for accessing the field via an interface.
func (v *GetUserResponse) GetTrack() GetUserTrackTrackPayload { return v.Track }

// GetUserTrackTrackPayload includes the requested fields of the GraphQL type TrackPayload.
type GetUserTrackTrackPayload struct {
	Errors []TrackError `json:"errors"`
}

// GetErrors returns GetUserTrackTrackPayload.Errors, and is useful for accessing the field via an interface.
func (v *GetUserTrackTrackPayload) GetErrors() []TrackError { return v.Errors }

// GetUserUser includes the requested fields of the GraphQL type User.
type GetUserUser struct {
	Id          string                                   `json:"id"`
	DisplayName string                                   `json:"displayName"`
	Github      GetUserUserGithubUserGitHub              `json:"github"`
	Annotations GetUserUserAnnotationsUserAnnotationList `json:"annotations"`
	Timezone    string                                   `json:"timezone"`
}

// GetId returns GetUserUser.Id, and is useful for accessing the field via an interface.
func (v *GetUserUser) GetId() string { return v.Id }

// GetDisplayName returns GetUserUser.DisplayName, and is useful for accessing the field via an interface.
func (v *GetUserUser) GetDisplayName() string { return v.DisplayName }

// GetGithub returns GetUserUser.Github, and is useful for accessing the field via an interface.
func (v *GetUserUser) GetGithub() GetUserUserGithubUserGitHub { return v.Github }

// GetAnnotations returns GetUserUser.Annotations, and is useful for accessing the field via an interface.
func (v *GetUserUser) GetAnnotations() GetUserUserAnnotationsUserAnnotationList { return v.Annotations }

// GetTimezone returns GetUserUser.Timezone, and is useful for accessing the field via an interface.
func (v *GetUserUser) GetTimezone() string { return v.Timezone }

// GetUserUserAnnotationsUserAnnotationList includes the requested fields of the GraphQL type UserAnnotationList.
type GetUserUserAnnotationsUserAnnotationList struct {
	Data []UserAnnotation `json:"data"`
}

// GetData returns GetUserUserAnnotationsUserAnnotationList.Data, and is useful for accessing the field via an interface.
func (v *GetUserUserAnnotationsUserAnnotationList) GetData() []UserAnnotation { return v.Data }

// GetUserUserGithubUserGitHub includes the requested fields of the GraphQL type UserGitHub.
type GetUserUserGithubUserGitHub struct {
	Id       string `json:"id"`
	Username string `json:"username"`
}

// GetId returns GetUserUserGithubUserGitHub.Id, and is useful for accessing the field via an interface.
func (v *GetUserUserGithubUserGitHub) GetId() string { return v.Id }

// GetUsername returns GetUserUserGithubUserGitHub.Username, and is useful for accessing the field via an interface.
func (v *GetUserUserGithubUserGitHub) GetUsername() string { return v.Username }

// HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayload includes the requested fields of the GraphQL type DeleteUserAnnotationPayload.
type HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayload struct {
	Errors []HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError `json:"errors"`
}

// GetErrors returns HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayload.Errors, and is useful for accessing the field via an interface.
func (v *HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayload) GetErrors() []HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError {
	return v.Errors
}

// HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError includes the requested fields of the GraphQL type DeleteUserAnnotationError.
type HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError struct {
	UserErrorDeleteUserAnnotationError `json:"-"`
}

// GetField returns HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError.Field, and is useful for accessing the field via an interface.
func (v *HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError) GetField() []string {
	return v.UserErrorDeleteUserAnnotationError.Field
}

// GetMessage returns HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError.Message, and is useful for accessing the field via an interface.
func (v *HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError) GetMessage() string {
	return v.UserErrorDeleteUserAnnotationError.Message
}

func (v *HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError
		graphql.NoUnmarshalJSON
	}
	firstPass.HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.UserErrorDeleteUserAnnotationError)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalHideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError struct {
	Field []string `json:"field"`

	Message string `json:"message"`
}

func (v *HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError) __premarshalJSON() (*__premarshalHideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError, error) {
	var retval __premarshalHideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayloadErrorsDeleteUserAnnotationError

	retval.Field = v.UserErrorDeleteUserAnnotationError.Field
	retval.Message = v.UserErrorDeleteUserAnnotationError.Message
	return &retval, nil
}

// HideAnnotationResponse is returned by HideAnnotation on success.
type HideAnnotationResponse struct {
	DeleteUserAnnotation HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayload `json:"deleteUserAnnotation"`
}

// GetDeleteUserAnnotation returns HideAnnotationResponse.DeleteUserAnnotation, and is useful for accessing the field via an interface.
func (v *HideAnnotationResponse) GetDeleteUserAnnotation() HideAnnotationDeleteUserAnnotationDeleteUserAnnotationPayload {
	return v.DeleteUserAnnotation
}

// ListStandup includes the GraphQL fields of Standup requested by the fragment ListStandup.
type ListStandup struct {
	Date           string                             `json:"date"`
	Timezone       string                             `json:"timezone"`
	Rating         *ListStandupRatingDayRatingSummary `json:"rating"`
	Score          ListStandupScoreDayScoreSummary    `json:"score"`
	CodingDuration CodingDuration                     `json:"codingDuration"`
	Days           ListStandupDaysStandupDayList      `json:"days"`
}

// GetDate returns ListStandup.Date, and is useful for accessing the field via an interface.
func (v *ListStandup) GetDate() string { return v.Date }

// GetTimezone returns ListStandup.Timezone, and is useful for accessing the field via an interface.
func (v *ListStandup) GetTimezone() string { return v.Timezone }

// GetRating returns ListStandup.Rating, and is useful for accessing the field via an interface.
func (v *ListStandup) GetRating() *ListStandupRatingDayRatingSummary { return v.Rating }

// GetScore returns ListStandup.Score, and is useful for accessing the field via an interface.
func (v *ListStandup) GetScore() ListStandupScoreDayScoreSummary { return v.Score }

// GetCodingDuration returns ListStandup.CodingDuration, and is useful for accessing the field via an interface.
func (v *ListStandup) GetCodingDuration() CodingDuration { return v.CodingDuration }

// GetDays returns ListStandup.Days, and is useful for accessing the field via an interface.
func (v *ListStandup) GetDays() ListStandupDaysStandupDayList { return v.Days }

// ListStandupDaysStandupDayList includes the requested fields of the GraphQL type StandupDayList.
type ListStandupDaysStandupDayList struct {
	Data []ListStandupDaysStandupDayListDataDay `json:"data"`
}

// GetData returns ListStandupDaysStandupDayList.Data, and is useful for accessing the field via an interface.
func (v *ListStandupDaysStandupDayList) GetData() []ListStandupDaysStandupDayListDataDay {
	return v.Data
}

// ListStandupDaysStandupDayListDataDay includes the requested fields of the GraphQL type Day.
type ListStandupDaysStandupDayListDataDay struct {
	Date     string `json:"date"`
	Timezone string `json:"timezone"`
}

// GetDate returns ListStandupDaysStandupDayListDataDay.Date, and is useful for accessing the field via an interface.
func (v *ListStandupDaysStandupDayListDataDay) GetDate() string { return v.Date }

// GetTimezone returns ListStandupDaysStandupDayListDataDay.Timezone, and is useful for accessing the field via an interface.
func (v *ListStandupDaysStandupDayListDataDay) GetTimezone() string { return v.Timezone }

// ListStandupRatingDayRatingSummary includes the requested fields of the GraphQL type DayRatingSummary.
type ListStandupRatingDayRatingSummary struct {
	Mean float64 `json:"mean"`
}

// GetMean returns ListStandupRatingDayRatingSummary.Mean, and is useful for accessing the field via an interface.
func (v *ListStandupRatingDayRatingSummary) GetMean() float64 { return v.Mean }

// ListStandupScoreDayScoreSummary includes the requested fields of the GraphQL type DayScoreSummary.
type ListStandupScoreDayScoreSummary struct {
	Min  int `json:"min"`
	Max  int `json:"max"`
	Mean int `json:"mean"`
}

// GetMin returns ListStandupScoreDayScoreSummary.Min, and is useful for accessing the field via an interface.
func (v *ListStandupScoreDayScoreSummary) GetMin() int { return v.Min }

// GetMax returns ListStandupScoreDayScoreSummary.Max, and is useful for accessing the field via an interface.
func (v *ListStandupScoreDayScoreSummary) GetMax() int { return v.Max }

// GetMean returns ListStandupScoreDayScoreSummary.Mean, and is useful for accessing the field via an interface.
func (v *ListStandupScoreDayScoreSummary) GetMean() int { return v.Mean }

// Standup includes the GraphQL fields of Standup requested by the fragment Standup.
type Standup struct {
	Date            string                                   `json:"date"`
	Timezone        string                                   `json:"timezone"`
	DayCount        int                                      `json:"dayCount"`
	Rating          *StandupRatingDayRatingSummary           `json:"rating"`
	Score           StandupScoreDayScoreSummary              `json:"score"`
	CodingDuration  CodingDuration                           `json:"codingDuration"`
	Days            StandupDaysStandupDayList                `json:"days"`
	Projects        StandupProjectsDayProjectList            `json:"projects"`
	Languages       StandupLanguagesDayLanguageList          `json:"languages"`
	UserAnnotations StandupUserAnnotationsUserAnnotationList `json:"userAnnotations"`
}

// GetDate returns Standup.Date, and is useful for accessing the field via an interface.
func (v *Standup) GetDate() string { return v.Date }

// GetTimezone returns Standup.Timezone, and is useful for accessing the field via an interface.
func (v *Standup) GetTimezone() string { return v.Timezone }

// GetDayCount returns Standup.DayCount, and is useful for accessing the field via an interface.
func (v *Standup) GetDayCount() int { return v.DayCount }

// GetRating returns Standup.Rating, and is useful for accessing the field via an interface.
func (v *Standup) GetRating() *StandupRatingDayRatingSummary { return v.Rating }

// GetScore returns Standup.Score, and is useful for accessing the field via an interface.
func (v *Standup) GetScore() StandupScoreDayScoreSummary { return v.Score }

// GetCodingDuration returns Standup.CodingDuration, and is useful for accessing the field via an interface.
func (v *Standup) GetCodingDuration() CodingDuration { return v.CodingDuration }

// GetDays returns Standup.Days, and is useful for accessing the field via an interface.
func (v *Standup) GetDays() StandupDaysStandupDayList { return v.Days }

// GetProjects returns Standup.Projects, and is useful for accessing the field via an interface.
func (v *Standup) GetProjects() StandupProjectsDayProjectList { return v.Projects }

// GetLanguages returns Standup.Languages, and is useful for accessing the field via an interface.
func (v *Standup) GetLanguages() StandupLanguagesDayLanguageList { return v.Languages }

// GetUserAnnotations returns Standup.UserAnnotations, and is useful for accessing the field via an interface.
func (v *Standup) GetUserAnnotations() StandupUserAnnotationsUserAnnotationList {
	return v.UserAnnotations
}

// StandupDaysStandupDayList includes the requested fields of the GraphQL type StandupDayList.
type StandupDaysStandupDayList struct {
	Data []Day `json:"data"`
}

// GetData returns StandupDaysStandupDayList.Data, and is useful for accessing the field via an interface.
func (v *StandupDaysStandupDayList) GetData() []Day { return v.Data }

// StandupLanguagesDayLanguageList includes the requested fields of the GraphQL type DayLanguageList.
type StandupLanguagesDayLanguageList struct {
	Data []DayLanguage `json:"data"`
}

// GetData returns StandupLanguagesDayLanguageList.Data, and is useful for accessing the field via an interface.
func (v *StandupLanguagesDayLanguageList) GetData() []DayLanguage { return v.Data }

// StandupProjectsDayProjectList includes the requested fields of the GraphQL type DayProjectList.
type StandupProjectsDayProjectList struct {
	Data []DayProject `json:"data"`
}

// GetData returns StandupProjectsDayProjectList.Data, and is useful for accessing the field via an interface.
func (v *StandupProjectsDayProjectList) GetData() []DayProject { return v.Data }

// StandupRatingDayRatingSummary includes the requested fields of the GraphQL type DayRatingSummary.
type StandupRatingDayRatingSummary struct {
	Mean float64 `json:"mean"`
}

// GetMean returns StandupRatingDayRatingSummary.Mean, and is useful for accessing the field via an interface.
func (v *StandupRatingDayRatingSummary) GetMean() float64 { return v.Mean }

// StandupScoreDayScoreSummary includes the requested fields of the GraphQL type DayScoreSummary.
type StandupScoreDayScoreSummary struct {
	Min  int `json:"min"`
	Max  int `json:"max"`
	Mean int `json:"mean"`
}

// GetMin returns StandupScoreDayScoreSummary.Min, and is useful for accessing the field via an interface.
func (v *StandupScoreDayScoreSummary) GetMin() int { return v.Min }

// GetMax returns StandupScoreDayScoreSummary.Max, and is useful for accessing the field via an interface.
func (v *StandupScoreDayScoreSummary) GetMax() int { return v.Max }

// GetMean returns StandupScoreDayScoreSummary.Mean, and is useful for accessing the field via an interface.
func (v *StandupScoreDayScoreSummary) GetMean() int { return v.Mean }

// StandupUserAnnotationsUserAnnotationList includes the requested fields of the GraphQL type UserAnnotationList.
type StandupUserAnnotationsUserAnnotationList struct {
	Data []UserAnnotation `json:"data"`
}

// GetData returns StandupUserAnnotationsUserAnnotationList.Data, and is useful for accessing the field via an interface.
func (v *StandupUserAnnotationsUserAnnotationList) GetData() []UserAnnotation { return v.Data }

type SuggestedBranchInput struct {
	Description  string                  `json:"description"`
	RepoBranches []BranchSuggestionInput `json:"repoBranches"`
	UserBranches []BranchSuggestionInput `json:"userBranches"`
}

// GetDescription returns SuggestedBranchInput.Description, and is useful for accessing the field via an interface.
func (v *SuggestedBranchInput) GetDescription() string { return v.Description }

// GetRepoBranches returns SuggestedBranchInput.RepoBranches, and is useful for accessing the field via an interface.
func (v *SuggestedBranchInput) GetRepoBranches() []BranchSuggestionInput { return v.RepoBranches }

// GetUserBranches returns SuggestedBranchInput.UserBranches, and is useful for accessing the field via an interface.
func (v *SuggestedBranchInput) GetUserBranches() []BranchSuggestionInput { return v.UserBranches }

// TrackError includes the GraphQL fields of TrackError requested by the fragment TrackError.
type TrackError struct {
	Message string   `json:"message"`
	Field   []string `json:"field"`
}

// GetMessage returns TrackError.Message, and is useful for accessing the field via an interface.
func (v *TrackError) GetMessage() string { return v.Message }

// GetField returns TrackError.Field, and is useful for accessing the field via an interface.
func (v *TrackError) GetField() []string { return v.Field }

type TrackEvent struct {
	Event      string                `json:"event"`
	Attributes []TrackEventAttribute `json:"attributes"`
}

// GetEvent returns TrackEvent.Event, and is useful for accessing the field via an interface.
func (v *TrackEvent) GetEvent() string { return v.Event }

// GetAttributes returns TrackEvent.Attributes, and is useful for accessing the field via an interface.
func (v *TrackEvent) GetAttributes() []TrackEventAttribute { return v.Attributes }

type TrackEventAttribute struct {
	Key          string  `json:"key"`
	StringValue  string  `json:"stringValue"`
	BooleanValue bool    `json:"booleanValue"`
	IntValue     int     `json:"intValue"`
	FloatValue   float64 `json:"floatValue"`
}

// GetKey returns TrackEventAttribute.Key, and is useful for accessing the field via an interface.
func (v *TrackEventAttribute) GetKey() string { return v.Key }

// GetStringValue returns TrackEventAttribute.StringValue, and is useful for accessing the field via an interface.
func (v *TrackEventAttribute) GetStringValue() string { return v.StringValue }

// GetBooleanValue returns TrackEventAttribute.BooleanValue, and is useful for accessing the field via an interface.
func (v *TrackEventAttribute) GetBooleanValue() bool { return v.BooleanValue }

// GetIntValue returns TrackEventAttribute.IntValue, and is useful for accessing the field via an interface.
func (v *TrackEventAttribute) GetIntValue() int { return v.IntValue }

// GetFloatValue returns TrackEventAttribute.FloatValue, and is useful for accessing the field via an interface.
func (v *TrackEventAttribute) GetFloatValue() float64 { return v.FloatValue }

type TrackInput struct {
	Events []TrackEvent `json:"events"`
}

// GetEvents returns TrackInput.Events, and is useful for accessing the field via an interface.
func (v *TrackInput) GetEvents() []TrackEvent { return v.Events }

// UpdateNoteResponse is returned by UpdateNote on success.
type UpdateNoteResponse struct {
	UpdateUserAnnotation UpdateNoteUpdateUserAnnotationUpdateUserAnnotationPayload `json:"updateUserAnnotation"`
}

// GetUpdateUserAnnotation returns UpdateNoteResponse.UpdateUserAnnotation, and is useful for accessing the field via an interface.
func (v *UpdateNoteResponse) GetUpdateUserAnnotation() UpdateNoteUpdateUserAnnotationUpdateUserAnnotationPayload {
	return v.UpdateUserAnnotation
}

// UpdateNoteUpdateUserAnnotationUpdateUserAnnotationPayload includes the requested fields of the GraphQL type UpdateUserAnnotationPayload.
type UpdateNoteUpdateUserAnnotationUpdateUserAnnotationPayload struct {
	UserAnnotation UserAnnotation                       `json:"userAnnotation"`
	Errors         []UserErrorUpdateUserAnnotationError `json:"errors"`
}

// GetUserAnnotation returns UpdateNoteUpdateUserAnnotationUpdateUserAnnotationPayload.UserAnnotation, and is useful for accessing the field via an interface.
func (v *UpdateNoteUpdateUserAnnotationUpdateUserAnnotationPayload) GetUserAnnotation() UserAnnotation {
	return v.UserAnnotation
}

// GetErrors returns UpdateNoteUpdateUserAnnotationUpdateUserAnnotationPayload.Errors, and is useful for accessing the field via an interface.
func (v *UpdateNoteUpdateUserAnnotationUpdateUserAnnotationPayload) GetErrors() []UserErrorUpdateUserAnnotationError {
	return v.Errors
}

type UpdateUserAnnotationInput struct {
	Id            string         `json:"id"`
	Date          string         `json:"date"`
	AddDates      []string       `json:"addDates"`
	RemoveDates   []string       `json:"removeDates"`
	Content       string         `json:"content"`
	Type          AnnotationType `json:"type"`
	GitUrl        string         `json:"gitUrl"`
	ProjectId     string         `json:"projectId"`
	Complete      bool           `json:"complete"`
	Hide          bool           `json:"hide"`
	GitBranchName string         `json:"gitBranchName"`
	GitCommit     string         `json:"gitCommit"`
	FileLine      int            `json:"fileLine"`
	FilePath      string         `json:"filePath"`
}

// GetId returns UpdateUserAnnotationInput.Id, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetId() string { return v.Id }

// GetDate returns UpdateUserAnnotationInput.Date, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetDate() string { return v.Date }

// GetAddDates returns UpdateUserAnnotationInput.AddDates, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetAddDates() []string { return v.AddDates }

// GetRemoveDates returns UpdateUserAnnotationInput.RemoveDates, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetRemoveDates() []string { return v.RemoveDates }

// GetContent returns UpdateUserAnnotationInput.Content, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetContent() string { return v.Content }

// GetType returns UpdateUserAnnotationInput.Type, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetType() AnnotationType { return v.Type }

// GetGitUrl returns UpdateUserAnnotationInput.GitUrl, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetGitUrl() string { return v.GitUrl }

// GetProjectId returns UpdateUserAnnotationInput.ProjectId, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetProjectId() string { return v.ProjectId }

// GetComplete returns UpdateUserAnnotationInput.Complete, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetComplete() bool { return v.Complete }

// GetHide returns UpdateUserAnnotationInput.Hide, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetHide() bool { return v.Hide }

// GetGitBranchName returns UpdateUserAnnotationInput.GitBranchName, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetGitBranchName() string { return v.GitBranchName }

// GetGitCommit returns UpdateUserAnnotationInput.GitCommit, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetGitCommit() string { return v.GitCommit }

// GetFileLine returns UpdateUserAnnotationInput.FileLine, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetFileLine() int { return v.FileLine }

// GetFilePath returns UpdateUserAnnotationInput.FilePath, and is useful for accessing the field via an interface.
func (v *UpdateUserAnnotationInput) GetFilePath() string { return v.FilePath }

// UserAnnotation includes the GraphQL fields of UserAnnotation requested by the fragment UserAnnotation.
type UserAnnotation struct {
	CompleteTime *model.DateTime                                       `json:"completeTime"`
	Completed    bool                                                  `json:"completed"`
	Content      string                                                `json:"content"`
	File         UserAnnotationFileUserAnnotationProjectFile           `json:"file"`
	GitBranch    UserAnnotationGitBranchUserAnnotationProjectGitBranch `json:"gitBranch"`
	Hidden       bool                                                  `json:"hidden"`
	Id           string                                                `json:"id"`
	Project      UserAnnotationProject                                 `json:"project"`
	Date         string                                                `json:"date"`
	Type         AnnotationType                                        `json:"type"`
	UpdateTime   model.DateTime                                        `json:"updateTime"`
}

// GetCompleteTime returns UserAnnotation.CompleteTime, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetCompleteTime() *model.DateTime { return v.CompleteTime }

// GetCompleted returns UserAnnotation.Completed, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetCompleted() bool { return v.Completed }

// GetContent returns UserAnnotation.Content, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetContent() string { return v.Content }

// GetFile returns UserAnnotation.File, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetFile() UserAnnotationFileUserAnnotationProjectFile { return v.File }

// GetGitBranch returns UserAnnotation.GitBranch, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetGitBranch() UserAnnotationGitBranchUserAnnotationProjectGitBranch {
	return v.GitBranch
}

// GetHidden returns UserAnnotation.Hidden, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetHidden() bool { return v.Hidden }

// GetId returns UserAnnotation.Id, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetId() string { return v.Id }

// GetProject returns UserAnnotation.Project, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetProject() UserAnnotationProject { return v.Project }

// GetDate returns UserAnnotation.Date, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetDate() string { return v.Date }

// GetType returns UserAnnotation.Type, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetType() AnnotationType { return v.Type }

// GetUpdateTime returns UserAnnotation.UpdateTime, and is useful for accessing the field via an interface.
func (v *UserAnnotation) GetUpdateTime() model.DateTime { return v.UpdateTime }

// UserAnnotationFileUserAnnotationProjectFile includes the requested fields of the GraphQL type UserAnnotationProjectFile.
type UserAnnotationFileUserAnnotationProjectFile struct {
	Name string `json:"name"`
	Path string `json:"path"`
}

// GetName returns UserAnnotationFileUserAnnotationProjectFile.Name, and is useful for accessing the field via an interface.
func (v *UserAnnotationFileUserAnnotationProjectFile) GetName() string { return v.Name }

// GetPath returns UserAnnotationFileUserAnnotationProjectFile.Path, and is useful for accessing the field via an interface.
func (v *UserAnnotationFileUserAnnotationProjectFile) GetPath() string { return v.Path }

// UserAnnotationGitBranchUserAnnotationProjectGitBranch includes the requested fields of the GraphQL type UserAnnotationProjectGitBranch.
type UserAnnotationGitBranchUserAnnotationProjectGitBranch struct {
	Name string `json:"name"`
}

// GetName returns UserAnnotationGitBranchUserAnnotationProjectGitBranch.Name, and is useful for accessing the field via an interface.
func (v *UserAnnotationGitBranchUserAnnotationProjectGitBranch) GetName() string { return v.Name }

// UserAnnotationProject includes the requested fields of the GraphQL type UserAnnotationProject.
type UserAnnotationProject struct {
	Id          string `json:"id"`
	DisplayName string `json:"displayName"`
	Name        string `json:"name"`
}

// GetId returns UserAnnotationProject.Id, and is useful for accessing the field via an interface.
func (v *UserAnnotationProject) GetId() string { return v.Id }

// GetDisplayName returns UserAnnotationProject.DisplayName, and is useful for accessing the field via an interface.
func (v *UserAnnotationProject) GetDisplayName() string { return v.DisplayName }

// GetName returns UserAnnotationProject.Name, and is useful for accessing the field via an interface.
func (v *UserAnnotationProject) GetName() string { return v.Name }

// UserError includes the GraphQL fields of UserError requested by the fragment UserError.
//
// UserError is implemented by the following types:
// UserErrorTrackError
// UserErrorCompleteUserMilestonesError
// UserErrorConsumeNotificationsError
// UserErrorCreateSlackConnectionError
// UserErrorCreateUserAnnotationError
// UserErrorCreateUserCalendarError
// UserErrorCreateUserFeedbackError
// UserErrorCreateUserInvitationError
// UserErrorCreateWebHookError
// UserErrorDeleteHookError
// UserErrorDeleteUserAnnotationError
// UserErrorDeleteUserAnnotationsError
// UserErrorDeleteUserCalendarError
// UserErrorFollowUserError
// UserErrorSetFeedItemCategorySettingsError
// UserErrorSetFeedItemReactionError
// UserErrorSetFeedItemTypeSettingsError
// UserErrorSetFeedItemsError
// UserErrorSetSlackDndHookError
// UserErrorSetSlackStatusHookError
// UserErrorSetUserDataTestEnrollmentError
// UserErrorSetUserDayRatingError
// UserErrorSetUserDaySettingsError
// UserErrorSetUserSharingSettingsError
// UserErrorSkipUserMilestonesError
// UserErrorSnoozeUserMilestonesError
// UserErrorTriggerEventError
// UserErrorUndeleteUserAnnotationError
// UserErrorUnfollowUserError
// UserErrorUnsetFeedItemReactionError
// UserErrorUnsnoozeUserMilestonesError
// UserErrorUpdateUserError
// UserErrorUpdateUserAnnotationError
// UserErrorUpdateUserAnnotationsError
// UserErrorUpdateUserCalendarError
// UserErrorUpdateUserDayNoteFeedItemError
// UserErrorUpdateWebHookError
type UserError interface {
	implementsGraphQLInterfaceUserError()
	// GetField returns the interface-field "field" from its implementation.
	GetField() []string
	// GetMessage returns the interface-field "message" from its implementation.
	GetMessage() string
}

func (v *UserErrorTrackError) implementsGraphQLInterfaceUserError()                       {}
func (v *UserErrorCompleteUserMilestonesError) implementsGraphQLInterfaceUserError()      {}
func (v *UserErrorConsumeNotificationsError) implementsGraphQLInterfaceUserError()        {}
func (v *UserErrorCreateSlackConnectionError) implementsGraphQLInterfaceUserError()       {}
func (v *UserErrorCreateUserAnnotationError) implementsGraphQLInterfaceUserError()        {}
func (v *UserErrorCreateUserCalendarError) implementsGraphQLInterfaceUserError()          {}
func (v *UserErrorCreateUserFeedbackError) implementsGraphQLInterfaceUserError()          {}
func (v *UserErrorCreateUserInvitationError) implementsGraphQLInterfaceUserError()        {}
func (v *UserErrorCreateWebHookError) implementsGraphQLInterfaceUserError()               {}
func (v *UserErrorDeleteHookError) implementsGraphQLInterfaceUserError()                  {}
func (v *UserErrorDeleteUserAnnotationError) implementsGraphQLInterfaceUserError()        {}
func (v *UserErrorDeleteUserAnnotationsError) implementsGraphQLInterfaceUserError()       {}
func (v *UserErrorDeleteUserCalendarError) implementsGraphQLInterfaceUserError()          {}
func (v *UserErrorFollowUserError) implementsGraphQLInterfaceUserError()                  {}
func (v *UserErrorSetFeedItemCategorySettingsError) implementsGraphQLInterfaceUserError() {}
func (v *UserErrorSetFeedItemReactionError) implementsGraphQLInterfaceUserError()         {}
func (v *UserErrorSetFeedItemTypeSettingsError) implementsGraphQLInterfaceUserError()     {}
func (v *UserErrorSetFeedItemsError) implementsGraphQLInterfaceUserError()                {}
func (v *UserErrorSetSlackDndHookError) implementsGraphQLInterfaceUserError()             {}
func (v *UserErrorSetSlackStatusHookError) implementsGraphQLInterfaceUserError()          {}
func (v *UserErrorSetUserDataTestEnrollmentError) implementsGraphQLInterfaceUserError()   {}
func (v *UserErrorSetUserDayRatingError) implementsGraphQLInterfaceUserError()            {}
func (v *UserErrorSetUserDaySettingsError) implementsGraphQLInterfaceUserError()          {}
func (v *UserErrorSetUserSharingSettingsError) implementsGraphQLInterfaceUserError()      {}
func (v *UserErrorSkipUserMilestonesError) implementsGraphQLInterfaceUserError()          {}
func (v *UserErrorSnoozeUserMilestonesError) implementsGraphQLInterfaceUserError()        {}
func (v *UserErrorTriggerEventError) implementsGraphQLInterfaceUserError()                {}
func (v *UserErrorUndeleteUserAnnotationError) implementsGraphQLInterfaceUserError()      {}
func (v *UserErrorUnfollowUserError) implementsGraphQLInterfaceUserError()                {}
func (v *UserErrorUnsetFeedItemReactionError) implementsGraphQLInterfaceUserError()       {}
func (v *UserErrorUnsnoozeUserMilestonesError) implementsGraphQLInterfaceUserError()      {}
func (v *UserErrorUpdateUserError) implementsGraphQLInterfaceUserError()                  {}
func (v *UserErrorUpdateUserAnnotationError) implementsGraphQLInterfaceUserError()        {}
func (v *UserErrorUpdateUserAnnotationsError) implementsGraphQLInterfaceUserError()       {}
func (v *UserErrorUpdateUserCalendarError) implementsGraphQLInterfaceUserError()          {}
func (v *UserErrorUpdateUserDayNoteFeedItemError) implementsGraphQLInterfaceUserError()   {}
func (v *UserErrorUpdateWebHookError) implementsGraphQLInterfaceUserError()               {}

func __unmarshalUserError(b []byte, v *UserError) error {
	if string(b) == "null" {
		return nil
	}

	var tn struct {
		TypeName string `json:"__typename"`
	}
	err := json.Unmarshal(b, &tn)
	if err != nil {
		return err
	}

	switch tn.TypeName {
	case "TrackError":
		*v = new(UserErrorTrackError)
		return json.Unmarshal(b, *v)
	case "CompleteUserMilestonesError":
		*v = new(UserErrorCompleteUserMilestonesError)
		return json.Unmarshal(b, *v)
	case "ConsumeNotificationsError":
		*v = new(UserErrorConsumeNotificationsError)
		return json.Unmarshal(b, *v)
	case "CreateSlackConnectionError":
		*v = new(UserErrorCreateSlackConnectionError)
		return json.Unmarshal(b, *v)
	case "CreateUserAnnotationError":
		*v = new(UserErrorCreateUserAnnotationError)
		return json.Unmarshal(b, *v)
	case "CreateUserCalendarError":
		*v = new(UserErrorCreateUserCalendarError)
		return json.Unmarshal(b, *v)
	case "CreateUserFeedbackError":
		*v = new(UserErrorCreateUserFeedbackError)
		return json.Unmarshal(b, *v)
	case "CreateUserInvitationError":
		*v = new(UserErrorCreateUserInvitationError)
		return json.Unmarshal(b, *v)
	case "CreateWebHookError":
		*v = new(UserErrorCreateWebHookError)
		return json.Unmarshal(b, *v)
	case "DeleteHookError":
		*v = new(UserErrorDeleteHookError)
		return json.Unmarshal(b, *v)
	case "DeleteUserAnnotationError":
		*v = new(UserErrorDeleteUserAnnotationError)
		return json.Unmarshal(b, *v)
	case "DeleteUserAnnotationsError":
		*v = new(UserErrorDeleteUserAnnotationsError)
		return json.Unmarshal(b, *v)
	case "DeleteUserCalendarError":
		*v = new(UserErrorDeleteUserCalendarError)
		return json.Unmarshal(b, *v)
	case "FollowUserError":
		*v = new(UserErrorFollowUserError)
		return json.Unmarshal(b, *v)
	case "SetFeedItemCategorySettingsError":
		*v = new(UserErrorSetFeedItemCategorySettingsError)
		return json.Unmarshal(b, *v)
	case "SetFeedItemReactionError":
		*v = new(UserErrorSetFeedItemReactionError)
		return json.Unmarshal(b, *v)
	case "SetFeedItemTypeSettingsError":
		*v = new(UserErrorSetFeedItemTypeSettingsError)
		return json.Unmarshal(b, *v)
	case "SetFeedItemsError":
		*v = new(UserErrorSetFeedItemsError)
		return json.Unmarshal(b, *v)
	case "SetSlackDndHookError":
		*v = new(UserErrorSetSlackDndHookError)
		return json.Unmarshal(b, *v)
	case "SetSlackStatusHookError":
		*v = new(UserErrorSetSlackStatusHookError)
		return json.Unmarshal(b, *v)
	case "SetUserDataTestEnrollmentError":
		*v = new(UserErrorSetUserDataTestEnrollmentError)
		return json.Unmarshal(b, *v)
	case "SetUserDayRatingError":
		*v = new(UserErrorSetUserDayRatingError)
		return json.Unmarshal(b, *v)
	case "SetUserDaySettingsError":
		*v = new(UserErrorSetUserDaySettingsError)
		return json.Unmarshal(b, *v)
	case "SetUserSharingSettingsError":
		*v = new(UserErrorSetUserSharingSettingsError)
		return json.Unmarshal(b, *v)
	case "SkipUserMilestonesError":
		*v = new(UserErrorSkipUserMilestonesError)
		return json.Unmarshal(b, *v)
	case "SnoozeUserMilestonesError":
		*v = new(UserErrorSnoozeUserMilestonesError)
		return json.Unmarshal(b, *v)
	case "TriggerEventError":
		*v = new(UserErrorTriggerEventError)
		return json.Unmarshal(b, *v)
	case "UndeleteUserAnnotationError":
		*v = new(UserErrorUndeleteUserAnnotationError)
		return json.Unmarshal(b, *v)
	case "UnfollowUserError":
		*v = new(UserErrorUnfollowUserError)
		return json.Unmarshal(b, *v)
	case "UnsetFeedItemReactionError":
		*v = new(UserErrorUnsetFeedItemReactionError)
		return json.Unmarshal(b, *v)
	case "UnsnoozeUserMilestonesError":
		*v = new(UserErrorUnsnoozeUserMilestonesError)
		return json.Unmarshal(b, *v)
	case "UpdateUserError":
		*v = new(UserErrorUpdateUserError)
		return json.Unmarshal(b, *v)
	case "UpdateUserAnnotationError":
		*v = new(UserErrorUpdateUserAnnotationError)
		return json.Unmarshal(b, *v)
	case "UpdateUserAnnotationsError":
		*v = new(UserErrorUpdateUserAnnotationsError)
		return json.Unmarshal(b, *v)
	case "UpdateUserCalendarError":
		*v = new(UserErrorUpdateUserCalendarError)
		return json.Unmarshal(b, *v)
	case "UpdateUserDayNoteFeedItemError":
		*v = new(UserErrorUpdateUserDayNoteFeedItemError)
		return json.Unmarshal(b, *v)
	case "UpdateWebHookError":
		*v = new(UserErrorUpdateWebHookError)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing UserError.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for UserError: "%v"`, tn.TypeName)
	}
}

func __marshalUserError(v *UserError) ([]byte, error) {

	var typename string
	switch v := (*v).(type) {
	case *UserErrorTrackError:
		typename = "TrackError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorTrackError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorCompleteUserMilestonesError:
		typename = "CompleteUserMilestonesError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorCompleteUserMilestonesError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorConsumeNotificationsError:
		typename = "ConsumeNotificationsError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorConsumeNotificationsError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorCreateSlackConnectionError:
		typename = "CreateSlackConnectionError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorCreateSlackConnectionError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorCreateUserAnnotationError:
		typename = "CreateUserAnnotationError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorCreateUserAnnotationError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorCreateUserCalendarError:
		typename = "CreateUserCalendarError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorCreateUserCalendarError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorCreateUserFeedbackError:
		typename = "CreateUserFeedbackError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorCreateUserFeedbackError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorCreateUserInvitationError:
		typename = "CreateUserInvitationError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorCreateUserInvitationError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorCreateWebHookError:
		typename = "CreateWebHookError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorCreateWebHookError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorDeleteHookError:
		typename = "DeleteHookError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorDeleteHookError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorDeleteUserAnnotationError:
		typename = "DeleteUserAnnotationError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorDeleteUserAnnotationError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorDeleteUserAnnotationsError:
		typename = "DeleteUserAnnotationsError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorDeleteUserAnnotationsError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorDeleteUserCalendarError:
		typename = "DeleteUserCalendarError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorDeleteUserCalendarError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorFollowUserError:
		typename = "FollowUserError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorFollowUserError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetFeedItemCategorySettingsError:
		typename = "SetFeedItemCategorySettingsError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetFeedItemCategorySettingsError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetFeedItemReactionError:
		typename = "SetFeedItemReactionError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetFeedItemReactionError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetFeedItemTypeSettingsError:
		typename = "SetFeedItemTypeSettingsError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetFeedItemTypeSettingsError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetFeedItemsError:
		typename = "SetFeedItemsError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetFeedItemsError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetSlackDndHookError:
		typename = "SetSlackDndHookError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetSlackDndHookError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetSlackStatusHookError:
		typename = "SetSlackStatusHookError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetSlackStatusHookError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetUserDataTestEnrollmentError:
		typename = "SetUserDataTestEnrollmentError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetUserDataTestEnrollmentError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetUserDayRatingError:
		typename = "SetUserDayRatingError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetUserDayRatingError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetUserDaySettingsError:
		typename = "SetUserDaySettingsError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetUserDaySettingsError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSetUserSharingSettingsError:
		typename = "SetUserSharingSettingsError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSetUserSharingSettingsError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSkipUserMilestonesError:
		typename = "SkipUserMilestonesError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSkipUserMilestonesError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorSnoozeUserMilestonesError:
		typename = "SnoozeUserMilestonesError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorSnoozeUserMilestonesError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorTriggerEventError:
		typename = "TriggerEventError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorTriggerEventError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUndeleteUserAnnotationError:
		typename = "UndeleteUserAnnotationError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUndeleteUserAnnotationError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUnfollowUserError:
		typename = "UnfollowUserError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUnfollowUserError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUnsetFeedItemReactionError:
		typename = "UnsetFeedItemReactionError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUnsetFeedItemReactionError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUnsnoozeUserMilestonesError:
		typename = "UnsnoozeUserMilestonesError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUnsnoozeUserMilestonesError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUpdateUserError:
		typename = "UpdateUserError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUpdateUserError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUpdateUserAnnotationError:
		typename = "UpdateUserAnnotationError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUpdateUserAnnotationError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUpdateUserAnnotationsError:
		typename = "UpdateUserAnnotationsError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUpdateUserAnnotationsError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUpdateUserCalendarError:
		typename = "UpdateUserCalendarError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUpdateUserCalendarError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUpdateUserDayNoteFeedItemError:
		typename = "UpdateUserDayNoteFeedItemError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUpdateUserDayNoteFeedItemError
		}{typename, v}
		return json.Marshal(result)
	case *UserErrorUpdateWebHookError:
		typename = "UpdateWebHookError"

		result := struct {
			TypeName string `json:"__typename"`
			*UserErrorUpdateWebHookError
		}{typename, v}
		return json.Marshal(result)
	case nil:
		return []byte("null"), nil
	default:
		return nil, fmt.Errorf(
			`unexpected concrete type for UserError: "%T"`, v)
	}
}

// UserError includes the GraphQL fields of CompleteUserMilestonesError requested by the fragment UserError.
type UserErrorCompleteUserMilestonesError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorCompleteUserMilestonesError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorCompleteUserMilestonesError) GetField() []string { return v.Field }

// GetMessage returns UserErrorCompleteUserMilestonesError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorCompleteUserMilestonesError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of ConsumeNotificationsError requested by the fragment UserError.
type UserErrorConsumeNotificationsError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorConsumeNotificationsError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorConsumeNotificationsError) GetField() []string { return v.Field }

// GetMessage returns UserErrorConsumeNotificationsError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorConsumeNotificationsError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of CreateSlackConnectionError requested by the fragment UserError.
type UserErrorCreateSlackConnectionError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorCreateSlackConnectionError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorCreateSlackConnectionError) GetField() []string { return v.Field }

// GetMessage returns UserErrorCreateSlackConnectionError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorCreateSlackConnectionError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of CreateUserAnnotationError requested by the fragment UserError.
type UserErrorCreateUserAnnotationError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorCreateUserAnnotationError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorCreateUserAnnotationError) GetField() []string { return v.Field }

// GetMessage returns UserErrorCreateUserAnnotationError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorCreateUserAnnotationError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of CreateUserCalendarError requested by the fragment UserError.
type UserErrorCreateUserCalendarError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorCreateUserCalendarError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorCreateUserCalendarError) GetField() []string { return v.Field }

// GetMessage returns UserErrorCreateUserCalendarError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorCreateUserCalendarError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of CreateUserFeedbackError requested by the fragment UserError.
type UserErrorCreateUserFeedbackError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorCreateUserFeedbackError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorCreateUserFeedbackError) GetField() []string { return v.Field }

// GetMessage returns UserErrorCreateUserFeedbackError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorCreateUserFeedbackError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of CreateUserInvitationError requested by the fragment UserError.
type UserErrorCreateUserInvitationError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorCreateUserInvitationError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorCreateUserInvitationError) GetField() []string { return v.Field }

// GetMessage returns UserErrorCreateUserInvitationError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorCreateUserInvitationError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of CreateWebHookError requested by the fragment UserError.
type UserErrorCreateWebHookError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorCreateWebHookError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorCreateWebHookError) GetField() []string { return v.Field }

// GetMessage returns UserErrorCreateWebHookError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorCreateWebHookError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of DeleteHookError requested by the fragment UserError.
type UserErrorDeleteHookError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorDeleteHookError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorDeleteHookError) GetField() []string { return v.Field }

// GetMessage returns UserErrorDeleteHookError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorDeleteHookError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of DeleteUserAnnotationError requested by the fragment UserError.
type UserErrorDeleteUserAnnotationError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorDeleteUserAnnotationError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorDeleteUserAnnotationError) GetField() []string { return v.Field }

// GetMessage returns UserErrorDeleteUserAnnotationError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorDeleteUserAnnotationError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of DeleteUserAnnotationsError requested by the fragment UserError.
type UserErrorDeleteUserAnnotationsError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorDeleteUserAnnotationsError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorDeleteUserAnnotationsError) GetField() []string { return v.Field }

// GetMessage returns UserErrorDeleteUserAnnotationsError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorDeleteUserAnnotationsError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of DeleteUserCalendarError requested by the fragment UserError.
type UserErrorDeleteUserCalendarError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorDeleteUserCalendarError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorDeleteUserCalendarError) GetField() []string { return v.Field }

// GetMessage returns UserErrorDeleteUserCalendarError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorDeleteUserCalendarError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of FollowUserError requested by the fragment UserError.
type UserErrorFollowUserError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorFollowUserError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorFollowUserError) GetField() []string { return v.Field }

// GetMessage returns UserErrorFollowUserError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorFollowUserError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetFeedItemCategorySettingsError requested by the fragment UserError.
type UserErrorSetFeedItemCategorySettingsError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetFeedItemCategorySettingsError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetFeedItemCategorySettingsError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetFeedItemCategorySettingsError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetFeedItemCategorySettingsError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetFeedItemReactionError requested by the fragment UserError.
type UserErrorSetFeedItemReactionError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetFeedItemReactionError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetFeedItemReactionError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetFeedItemReactionError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetFeedItemReactionError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetFeedItemTypeSettingsError requested by the fragment UserError.
type UserErrorSetFeedItemTypeSettingsError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetFeedItemTypeSettingsError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetFeedItemTypeSettingsError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetFeedItemTypeSettingsError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetFeedItemTypeSettingsError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetFeedItemsError requested by the fragment UserError.
type UserErrorSetFeedItemsError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetFeedItemsError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetFeedItemsError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetFeedItemsError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetFeedItemsError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetSlackDndHookError requested by the fragment UserError.
type UserErrorSetSlackDndHookError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetSlackDndHookError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetSlackDndHookError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetSlackDndHookError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetSlackDndHookError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetSlackStatusHookError requested by the fragment UserError.
type UserErrorSetSlackStatusHookError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetSlackStatusHookError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetSlackStatusHookError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetSlackStatusHookError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetSlackStatusHookError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetUserDataTestEnrollmentError requested by the fragment UserError.
type UserErrorSetUserDataTestEnrollmentError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetUserDataTestEnrollmentError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetUserDataTestEnrollmentError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetUserDataTestEnrollmentError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetUserDataTestEnrollmentError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetUserDayRatingError requested by the fragment UserError.
type UserErrorSetUserDayRatingError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetUserDayRatingError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetUserDayRatingError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetUserDayRatingError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetUserDayRatingError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetUserDaySettingsError requested by the fragment UserError.
type UserErrorSetUserDaySettingsError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetUserDaySettingsError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetUserDaySettingsError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetUserDaySettingsError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetUserDaySettingsError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SetUserSharingSettingsError requested by the fragment UserError.
type UserErrorSetUserSharingSettingsError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSetUserSharingSettingsError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSetUserSharingSettingsError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSetUserSharingSettingsError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSetUserSharingSettingsError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SkipUserMilestonesError requested by the fragment UserError.
type UserErrorSkipUserMilestonesError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSkipUserMilestonesError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSkipUserMilestonesError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSkipUserMilestonesError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSkipUserMilestonesError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of SnoozeUserMilestonesError requested by the fragment UserError.
type UserErrorSnoozeUserMilestonesError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorSnoozeUserMilestonesError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorSnoozeUserMilestonesError) GetField() []string { return v.Field }

// GetMessage returns UserErrorSnoozeUserMilestonesError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorSnoozeUserMilestonesError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of TrackError requested by the fragment UserError.
type UserErrorTrackError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorTrackError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorTrackError) GetField() []string { return v.Field }

// GetMessage returns UserErrorTrackError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorTrackError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of TriggerEventError requested by the fragment UserError.
type UserErrorTriggerEventError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorTriggerEventError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorTriggerEventError) GetField() []string { return v.Field }

// GetMessage returns UserErrorTriggerEventError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorTriggerEventError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UndeleteUserAnnotationError requested by the fragment UserError.
type UserErrorUndeleteUserAnnotationError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUndeleteUserAnnotationError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUndeleteUserAnnotationError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUndeleteUserAnnotationError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUndeleteUserAnnotationError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UnfollowUserError requested by the fragment UserError.
type UserErrorUnfollowUserError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUnfollowUserError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUnfollowUserError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUnfollowUserError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUnfollowUserError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UnsetFeedItemReactionError requested by the fragment UserError.
type UserErrorUnsetFeedItemReactionError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUnsetFeedItemReactionError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUnsetFeedItemReactionError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUnsetFeedItemReactionError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUnsetFeedItemReactionError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UnsnoozeUserMilestonesError requested by the fragment UserError.
type UserErrorUnsnoozeUserMilestonesError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUnsnoozeUserMilestonesError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUnsnoozeUserMilestonesError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUnsnoozeUserMilestonesError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUnsnoozeUserMilestonesError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UpdateUserAnnotationError requested by the fragment UserError.
type UserErrorUpdateUserAnnotationError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUpdateUserAnnotationError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserAnnotationError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUpdateUserAnnotationError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserAnnotationError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UpdateUserAnnotationsError requested by the fragment UserError.
type UserErrorUpdateUserAnnotationsError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUpdateUserAnnotationsError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserAnnotationsError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUpdateUserAnnotationsError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserAnnotationsError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UpdateUserCalendarError requested by the fragment UserError.
type UserErrorUpdateUserCalendarError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUpdateUserCalendarError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserCalendarError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUpdateUserCalendarError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserCalendarError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UpdateUserDayNoteFeedItemError requested by the fragment UserError.
type UserErrorUpdateUserDayNoteFeedItemError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUpdateUserDayNoteFeedItemError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserDayNoteFeedItemError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUpdateUserDayNoteFeedItemError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserDayNoteFeedItemError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UpdateUserError requested by the fragment UserError.
type UserErrorUpdateUserError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUpdateUserError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUpdateUserError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateUserError) GetMessage() string { return v.Message }

// UserError includes the GraphQL fields of UpdateWebHookError requested by the fragment UserError.
type UserErrorUpdateWebHookError struct {
	Field   []string `json:"field"`
	Message string   `json:"message"`
}

// GetField returns UserErrorUpdateWebHookError.Field, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateWebHookError) GetField() []string { return v.Field }

// GetMessage returns UserErrorUpdateWebHookError.Message, and is useful for accessing the field via an interface.
func (v *UserErrorUpdateWebHookError) GetMessage() string { return v.Message }

// __AddNoteInput is used internally by genqlient
type __AddNoteInput struct {
	Input CreateUserAnnotationInput `json:"input"`
	Track TrackInput                `json:"track"`
}

// GetInput returns __AddNoteInput.Input, and is useful for accessing the field via an interface.
func (v *__AddNoteInput) GetInput() CreateUserAnnotationInput { return v.Input }

// GetTrack returns __AddNoteInput.Track, and is useful for accessing the field via an interface.
func (v *__AddNoteInput) GetTrack() TrackInput { return v.Track }

// __GetDayInput is used internally by genqlient
type __GetDayInput struct {
	Date  *string    `json:"date"`
	Track TrackInput `json:"track"`
}

// GetDate returns __GetDayInput.Date, and is useful for accessing the field via an interface.
func (v *__GetDayInput) GetDate() *string { return v.Date }

// GetTrack returns __GetDayInput.Track, and is useful for accessing the field via an interface.
func (v *__GetDayInput) GetTrack() TrackInput { return v.Track }

// __GetDaysInput is used internally by genqlient
type __GetDaysInput struct {
	StartDate *string    `json:"startDate"`
	EndDate   *string    `json:"endDate"`
	PageSize  int        `json:"pageSize"`
	PageToken string     `json:"pageToken"`
	Track     TrackInput `json:"track"`
}

// GetStartDate returns __GetDaysInput.StartDate, and is useful for accessing the field via an interface.
func (v *__GetDaysInput) GetStartDate() *string { return v.StartDate }

// GetEndDate returns __GetDaysInput.EndDate, and is useful for accessing the field via an interface.
func (v *__GetDaysInput) GetEndDate() *string { return v.EndDate }

// GetPageSize returns __GetDaysInput.PageSize, and is useful for accessing the field via an interface.
func (v *__GetDaysInput) GetPageSize() int { return v.PageSize }

// GetPageToken returns __GetDaysInput.PageToken, and is useful for accessing the field via an interface.
func (v *__GetDaysInput) GetPageToken() string { return v.PageToken }

// GetTrack returns __GetDaysInput.Track, and is useful for accessing the field via an interface.
func (v *__GetDaysInput) GetTrack() TrackInput { return v.Track }

// __GetStandupInput is used internally by genqlient
type __GetStandupInput struct {
	Date     *string    `json:"date"`
	Upcoming bool       `json:"upcoming"`
	Track    TrackInput `json:"track"`
}

// GetDate returns __GetStandupInput.Date, and is useful for accessing the field via an interface.
func (v *__GetStandupInput) GetDate() *string { return v.Date }

// GetUpcoming returns __GetStandupInput.Upcoming, and is useful for accessing the field via an interface.
func (v *__GetStandupInput) GetUpcoming() bool { return v.Upcoming }

// GetTrack returns __GetStandupInput.Track, and is useful for accessing the field via an interface.
func (v *__GetStandupInput) GetTrack() TrackInput { return v.Track }

// __GetStandupsInput is used internally by genqlient
type __GetStandupsInput struct {
	Upcoming bool       `json:"upcoming"`
	PageSize int        `json:"pageSize"`
	Track    TrackInput `json:"track"`
}

// GetUpcoming returns __GetStandupsInput.Upcoming, and is useful for accessing the field via an interface.
func (v *__GetStandupsInput) GetUpcoming() bool { return v.Upcoming }

// GetPageSize returns __GetStandupsInput.PageSize, and is useful for accessing the field via an interface.
func (v *__GetStandupsInput) GetPageSize() int { return v.PageSize }

// GetTrack returns __GetStandupsInput.Track, and is useful for accessing the field via an interface.
func (v *__GetStandupsInput) GetTrack() TrackInput { return v.Track }

// __GetSuggestedBranchInput is used internally by genqlient
type __GetSuggestedBranchInput struct {
	Q     SuggestedBranchInput `json:"q"`
	Track TrackInput           `json:"track"`
}

// GetQ returns __GetSuggestedBranchInput.Q, and is useful for accessing the field via an interface.
func (v *__GetSuggestedBranchInput) GetQ() SuggestedBranchInput { return v.Q }

// GetTrack returns __GetSuggestedBranchInput.Track, and is useful for accessing the field via an interface.
func (v *__GetSuggestedBranchInput) GetTrack() TrackInput { return v.Track }

// __GetUserInput is used internally by genqlient
type __GetUserInput struct {
	WithAnnotation bool       `json:"withAnnotation"`
	Track          TrackInput `json:"track"`
}

// GetWithAnnotation returns __GetUserInput.WithAnnotation, and is useful for accessing the field via an interface.
func (v *__GetUserInput) GetWithAnnotation() bool { return v.WithAnnotation }

// GetTrack returns __GetUserInput.Track, and is useful for accessing the field via an interface.
func (v *__GetUserInput) GetTrack() TrackInput { return v.Track }

// __HideAnnotationInput is used internally by genqlient
type __HideAnnotationInput struct {
	Input DeleteUserAnnotationInput `json:"input"`
}

// GetInput returns __HideAnnotationInput.Input, and is useful for accessing the field via an interface.
func (v *__HideAnnotationInput) GetInput() DeleteUserAnnotationInput { return v.Input }

// __UpdateNoteInput is used internally by genqlient
type __UpdateNoteInput struct {
	Input UpdateUserAnnotationInput `json:"input"`
}

// GetInput returns __UpdateNoteInput.Input, and is useful for accessing the field via an interface.
func (v *__UpdateNoteInput) GetInput() UpdateUserAnnotationInput { return v.Input }

func AddNote(
	ctx context.Context,
	client graphql.Client,
	input CreateUserAnnotationInput,
	track TrackInput,
) (*AddNoteResponse, error) {
	req := &graphql.Request{
		OpName: "AddNote",
		Query: `
mutation AddNote ($input: CreateUserAnnotationInput!, $track: TrackInput!) {
	createUserAnnotation(input: $input) {
		userAnnotation {
			... UserAnnotation
		}
		errors {
			... UserError
		}
	}
	track(input: $track) {
		errors {
			... TrackError
		}
	}
}
fragment UserAnnotation on UserAnnotation {
	completeTime
	completed
	content
	file {
		name
		path
	}
	gitBranch {
		name
	}
	hidden
	id
	project {
		id
		displayName
		name
	}
	date
	type
	updateTime
}
fragment UserError on UserError {
	field
	message
}
fragment TrackError on TrackError {
	message
	field
}
`,
		Variables: &__AddNoteInput{
			Input: input,
			Track: track,
		},
	}
	var err error

	var data AddNoteResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

func GetDay(
	ctx context.Context,
	client graphql.Client,
	date *string,
	track TrackInput,
) (*GetDayResponse, error) {
	req := &graphql.Request{
		OpName: "GetDay",
		Query: `
query GetDay ($date: Date = null, $track: TrackInput!) {
	day(date: $date) {
		... Day
	}
	track(input: $track) {
		errors {
			... TrackError
		}
	}
}
fragment Day on Day {
	date
	startTime
	timezone
	endTime
	score
	rating
	hours {
		data {
			... DayHour
		}
	}
	languages {
		data {
			... DayLanguage
		}
	}
	projects {
		data {
			... DayProject
		}
	}
	codingDuration {
		... CodingDuration
	}
}
fragment TrackError on TrackError {
	message
	field
}
fragment DayHour on DayHour {
	time
	codingDuration {
		... CodingDuration
	}
}
fragment DayLanguage on DayLanguage {
	id
	displayName
	codingDuration {
		... CodingDuration
	}
}
fragment DayProject on DayProject {
	gitBranches {
		data {
			name
			files {
				data {
					... DayProjectFile
				}
			}
			codingDuration {
				... CodingDuration
			}
		}
	}
	files {
		data {
			... DayProjectFile
		}
	}
	id
	displayName
	shortName
	name
	codingDuration {
		... CodingDuration
	}
}
fragment CodingDuration on CodingDuration {
	totalMs
}
fragment DayProjectFile on DayProjectFile {
	name
	path
	codingDuration {
		... CodingDuration
	}
}
`,
		Variables: &__GetDayInput{
			Date:  date,
			Track: track,
		},
	}
	var err error

	var data GetDayResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

func GetDays(
	ctx context.Context,
	client graphql.Client,
	startDate *string,
	endDate *string,
	pageSize int,
	pageToken string,
	track TrackInput,
) (*GetDaysResponse, error) {
	req := &graphql.Request{
		OpName: "GetDays",
		Query: `
query GetDays ($startDate: Date = null, $endDate: Date = null, $pageSize: Int! = 7, $pageToken: String, $track: TrackInput!) {
	days(startDate: $startDate, endDate: $endDate, pageSize: $pageSize, pageToken: $pageToken) {
		data {
			... Day
		}
		nextPageToken
	}
	track(input: $track) {
		errors {
			... TrackError
		}
	}
}
fragment Day on Day {
	date
	startTime
	timezone
	endTime
	score
	rating
	hours {
		data {
			... DayHour
		}
	}
	languages {
		data {
			... DayLanguage
		}
	}
	projects {
		data {
			... DayProject
		}
	}
	codingDuration {
		... CodingDuration
	}
}
fragment TrackError on TrackError {
	message
	field
}
fragment DayHour on DayHour {
	time
	codingDuration {
		... CodingDuration
	}
}
fragment DayLanguage on DayLanguage {
	id
	displayName
	codingDuration {
		... CodingDuration
	}
}
fragment DayProject on DayProject {
	gitBranches {
		data {
			name
			files {
				data {
					... DayProjectFile
				}
			}
			codingDuration {
				... CodingDuration
			}
		}
	}
	files {
		data {
			... DayProjectFile
		}
	}
	id
	displayName
	shortName
	name
	codingDuration {
		... CodingDuration
	}
}
fragment CodingDuration on CodingDuration {
	totalMs
}
fragment DayProjectFile on DayProjectFile {
	name
	path
	codingDuration {
		... CodingDuration
	}
}
`,
		Variables: &__GetDaysInput{
			StartDate: startDate,
			EndDate:   endDate,
			PageSize:  pageSize,
			PageToken: pageToken,
			Track:     track,
		},
	}
	var err error

	var data GetDaysResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

func GetStandup(
	ctx context.Context,
	client graphql.Client,
	date *string,
	upcoming bool,
	track TrackInput,
) (*GetStandupResponse, error) {
	req := &graphql.Request{
		OpName: "GetStandup",
		Query: `
query GetStandup ($date: Date = null, $upcoming: Boolean! = false, $track: TrackInput!) {
	standup(date: $date, includeUpcoming: $upcoming) {
		... Standup
	}
	track(input: $track) {
		errors {
			... TrackError
		}
	}
}
fragment Standup on Standup {
	date
	timezone
	dayCount
	rating {
		mean
	}
	score {
		min
		max
		mean
	}
	codingDuration {
		... CodingDuration
	}
	days {
		data {
			... Day
		}
	}
	projects {
		data {
			... DayProject
		}
	}
	languages {
		data {
			... DayLanguage
		}
	}
	userAnnotations(sort: [{field:DATE,order:DESC},{field:CREATE_TIME,order:DESC}]) {
		data {
			... UserAnnotation
		}
	}
}
fragment TrackError on TrackError {
	message
	field
}
fragment CodingDuration on CodingDuration {
	totalMs
}
fragment Day on Day {
	date
	startTime
	timezone
	endTime
	score
	rating
	hours {
		data {
			... DayHour
		}
	}
	languages {
		data {
			... DayLanguage
		}
	}
	projects {
		data {
			... DayProject
		}
	}
	codingDuration {
		... CodingDuration
	}
}
fragment DayProject on DayProject {
	gitBranches {
		data {
			name
			files {
				data {
					... DayProjectFile
				}
			}
			codingDuration {
				... CodingDuration
			}
		}
	}
	files {
		data {
			... DayProjectFile
		}
	}
	id
	displayName
	shortName
	name
	codingDuration {
		... CodingDuration
	}
}
fragment DayLanguage on DayLanguage {
	id
	displayName
	codingDuration {
		... CodingDuration
	}
}
fragment UserAnnotation on UserAnnotation {
	completeTime
	completed
	content
	file {
		name
		path
	}
	gitBranch {
		name
	}
	hidden
	id
	project {
		id
		displayName
		name
	}
	date
	type
	updateTime
}
fragment DayHour on DayHour {
	time
	codingDuration {
		... CodingDuration
	}
}
fragment DayProjectFile on DayProjectFile {
	name
	path
	codingDuration {
		... CodingDuration
	}
}
`,
		Variables: &__GetStandupInput{
			Date:     date,
			Upcoming: upcoming,
			Track:    track,
		},
	}
	var err error

	var data GetStandupResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

func GetStandups(
	ctx context.Context,
	client graphql.Client,
	upcoming bool,
	pageSize int,
	track TrackInput,
) (*GetStandupsResponse, error) {
	req := &graphql.Request{
		OpName: "GetStandups",
		Query: `
query GetStandups ($upcoming: Boolean! = false, $pageSize: Int! = 10, $track: TrackInput!) {
	standups(includeUpcoming: $upcoming, pageSize: $pageSize) {
		data {
			... ListStandup
		}
	}
	track(input: $track) {
		errors {
			... TrackError
		}
	}
}
fragment ListStandup on Standup {
	date
	timezone
	rating {
		mean
	}
	score {
		min
		max
		mean
	}
	codingDuration {
		... CodingDuration
	}
	days {
		data {
			date
			timezone
		}
	}
}
fragment TrackError on TrackError {
	message
	field
}
fragment CodingDuration on CodingDuration {
	totalMs
}
`,
		Variables: &__GetStandupsInput{
			Upcoming: upcoming,
			PageSize: pageSize,
			Track:    track,
		},
	}
	var err error

	var data GetStandupsResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

func GetSuggestedBranch(
	ctx context.Context,
	client graphql.Client,
	q SuggestedBranchInput,
	track TrackInput,
) (*GetSuggestedBranchResponse, error) {
	req := &graphql.Request{
		OpName: "GetSuggestedBranch",
		Query: `
query GetSuggestedBranch ($q: SuggestedBranchInput!, $track: TrackInput!) {
	suggestedBranchnames(query: $q) {
		data {
			name
		}
	}
	track(input: $track) {
		errors {
			... TrackError
		}
	}
}
fragment TrackError on TrackError {
	message
	field
}
`,
		Variables: &__GetSuggestedBranchInput{
			Q:     q,
			Track: track,
		},
	}
	var err error

	var data GetSuggestedBranchResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

func GetUser(
	ctx context.Context,
	client graphql.Client,
	withAnnotation bool,
	track TrackInput,
) (*GetUserResponse, error) {
	req := &graphql.Request{
		OpName: "GetUser",
		Query: `
query GetUser ($withAnnotation: Boolean! = false, $track: TrackInput!) {
	user {
		id
		displayName
		github {
			id
			username
		}
		annotations @include(if: $withAnnotation) {
			data {
				... UserAnnotation
			}
		}
		timezone
	}
	track(input: $track) {
		errors {
			... TrackError
		}
	}
}
fragment UserAnnotation on UserAnnotation {
	completeTime
	completed
	content
	file {
		name
		path
	}
	gitBranch {
		name
	}
	hidden
	id
	project {
		id
		displayName
		name
	}
	date
	type
	updateTime
}
fragment TrackError on TrackError {
	message
	field
}
`,
		Variables: &__GetUserInput{
			WithAnnotation: withAnnotation,
			Track:          track,
		},
	}
	var err error

	var data GetUserResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

func HideAnnotation(
	ctx context.Context,
	client graphql.Client,
	input DeleteUserAnnotationInput,
) (*HideAnnotationResponse, error) {
	req := &graphql.Request{
		OpName: "HideAnnotation",
		Query: `
mutation HideAnnotation ($input: DeleteUserAnnotationInput!) {
	deleteUserAnnotation(input: $input) {
		errors {
			... UserError
		}
	}
}
fragment UserError on UserError {
	field
	message
}
`,
		Variables: &__HideAnnotationInput{
			Input: input,
		},
	}
	var err error

	var data HideAnnotationResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

func UpdateNote(
	ctx context.Context,
	client graphql.Client,
	input UpdateUserAnnotationInput,
) (*UpdateNoteResponse, error) {
	req := &graphql.Request{
		OpName: "UpdateNote",
		Query: `
mutation UpdateNote ($input: UpdateUserAnnotationInput!) {
	updateUserAnnotation(input: $input) {
		userAnnotation {
			... UserAnnotation
		}
		errors {
			... UserError
		}
	}
}
fragment UserAnnotation on UserAnnotation {
	completeTime
	completed
	content
	file {
		name
		path
	}
	gitBranch {
		name
	}
	hidden
	id
	project {
		id
		displayName
		name
	}
	date
	type
	updateTime
}
fragment UserError on UserError {
	field
	message
}
`,
		Variables: &__UpdateNoteInput{
			Input: input,
		},
	}
	var err error

	var data UpdateNoteResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}
