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

package tangled

// schema: sh.tangled.label.definition

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

const (
	LabelDefinitionNSID = "sh.tangled.label.definition"
)

func init() {
	util.RegisterType("sh.tangled.label.definition", &LabelDefinition{})
} //
// RECORDTYPE: LabelDefinition
type LabelDefinition struct {
	LexiconTypeID string `json:"$type,const=sh.tangled.label.definition" cborgen:"$type,const=sh.tangled.label.definition"`
	// color: The hex value for the background color for the label. Appviews may choose to respect this.
	Color     *string `json:"color,omitempty" cborgen:"color,omitempty"`
	CreatedAt string  `json:"createdAt" cborgen:"createdAt"`
	// multiple: Whether this label can be repeated for a given entity, eg.: [reviewer:foo, reviewer:bar]
	Multiple *bool `json:"multiple,omitempty" cborgen:"multiple,omitempty"`
	// name: The display name of this label.
	Name string `json:"name" cborgen:"name"`
	// scope: The areas of the repo this label may apply to, eg.: sh.tangled.repo.issue. Appviews may choose to respect this.
	Scope []string `json:"scope" cborgen:"scope"`
	// valueType: The type definition of this label. Appviews may allow sorting for certain types.
	ValueType *LabelDefinition_ValueType `json:"valueType" cborgen:"valueType"`
}

// LabelDefinition_ValueType is a "valueType" in the sh.tangled.label.definition schema.
type LabelDefinition_ValueType struct {
	// enum: Closed set of values that this label can take.
	Enum []string `json:"enum,omitempty" cborgen:"enum,omitempty"`
	// format: An optional constraint that can be applied on string concrete types.
	Format string `json:"format" cborgen:"format"`
	// type: The concrete type of this label's value.
	Type string `json:"type" cborgen:"type"`
}
