// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.

package tangled

// schema: sh.tangled.git.temp.defs

import (
	"github.com/bluesky-social/indigo/lex/util"
)

const ()

// GitTempDefs_Blob is a "blob" in the sh.tangled.git.temp.defs schema.
//
// blob metadata. This object doesn't include the blob content
type GitTempDefs_Blob struct {
	LastCommit *GitTempDefs_Commit `json:"lastCommit" cborgen:"lastCommit"`
	Mode       string              `json:"mode" cborgen:"mode"`
	// name: The file name
	Name string `json:"name" cborgen:"name"`
	// size: File size in bytes
	Size int64 `json:"size" cborgen:"size"`
	// submodule: Submodule information if path is a submodule
	Submodule *GitTempDefs_Submodule `json:"submodule,omitempty" cborgen:"submodule,omitempty"`
}

// GitTempDefs_Branch is a "branch" in the sh.tangled.git.temp.defs schema.
type GitTempDefs_Branch struct {
	// commit: hydrated commit object
	Commit *GitTempDefs_Commit `json:"commit" cborgen:"commit"`
	// name: branch name
	Name string `json:"name" cborgen:"name"`
}

// GitTempDefs_Commit is a "commit" in the sh.tangled.git.temp.defs schema.
type GitTempDefs_Commit struct {
	Author    *GitTempDefs_Signature `json:"author" cborgen:"author"`
	Committer *GitTempDefs_Signature `json:"committer" cborgen:"committer"`
	Hash      *string                `json:"hash" cborgen:"hash"`
	Message   string                 `json:"message" cborgen:"message"`
	Tree      *string                `json:"tree" cborgen:"tree"`
}

// GitTempDefs_Signature is a "signature" in the sh.tangled.git.temp.defs schema.
type GitTempDefs_Signature struct {
	// email: Person email
	Email string `json:"email" cborgen:"email"`
	// name: Person name
	Name string `json:"name" cborgen:"name"`
	// when: Timestamp of the signature
	When string `json:"when" cborgen:"when"`
}

// GitTempDefs_Submodule is a "submodule" in the sh.tangled.git.temp.defs schema.
type GitTempDefs_Submodule struct {
	// branch: Branch to track in the submodule
	Branch *string `json:"branch,omitempty" cborgen:"branch,omitempty"`
	// name: Submodule name
	Name string `json:"name" cborgen:"name"`
	// url: Submodule repository URL
	Url string `json:"url" cborgen:"url"`
}

// GitTempDefs_Tag is a "tag" in the sh.tangled.git.temp.defs schema.
type GitTempDefs_Tag struct {
	Message *string `json:"message,omitempty" cborgen:"message,omitempty"`
	// name: tag name
	Name   string                   `json:"name" cborgen:"name"`
	Tagger *GitTempDefs_Signature   `json:"tagger" cborgen:"tagger"`
	Target *util.LexiconTypeDecoder `json:"target" cborgen:"target"`
}
