···11+{
22+ "id": "com.atproto.label.defs",
33+ "defs": {
44+ "label": {
55+ "type": "object",
66+ "required": ["src", "uri", "val", "cts"],
77+ "properties": {
88+ "cid": {
99+ "type": "string",
1010+ "format": "cid",
1111+ "description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to."
1212+ },
1313+ "cts": {
1414+ "type": "string",
1515+ "format": "datetime",
1616+ "description": "Timestamp when this label was created."
1717+ },
1818+ "exp": {
1919+ "type": "string",
2020+ "format": "datetime",
2121+ "description": "Timestamp at which this label expires (no longer applies)."
2222+ },
2323+ "neg": {
2424+ "type": "boolean",
2525+ "description": "If true, this is a negation label, overwriting a previous label."
2626+ },
2727+ "sig": {
2828+ "type": "bytes",
2929+ "description": "Signature of dag-cbor encoded label."
3030+ },
3131+ "src": {
3232+ "type": "string",
3333+ "format": "did",
3434+ "description": "DID of the actor who created this label."
3535+ },
3636+ "uri": {
3737+ "type": "string",
3838+ "format": "uri",
3939+ "description": "AT URI of the record, repository (account), or other resource that this label applies to."
4040+ },
4141+ "val": {
4242+ "type": "string",
4343+ "maxLength": 128,
4444+ "description": "The short string name of the value or type of this label."
4545+ },
4646+ "ver": {
4747+ "type": "integer",
4848+ "description": "The AT Protocol version of the label object."
4949+ }
5050+ },
5151+ "description": "Metadata tag on an atproto resource (eg, repo or record)."
5252+ },
5353+ "selfLabel": {
5454+ "type": "object",
5555+ "required": ["val"],
5656+ "properties": {
5757+ "val": {
5858+ "type": "string",
5959+ "maxLength": 128,
6060+ "description": "The short string name of the value or type of this label."
6161+ }
6262+ },
6363+ "description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel."
6464+ },
6565+ "labelValue": {
6666+ "type": "string",
6767+ "knownValues": [
6868+ "!hide",
6969+ "!no-promote",
7070+ "!warn",
7171+ "!no-unauthenticated",
7272+ "dmca-violation",
7373+ "doxxing",
7474+ "porn",
7575+ "sexual",
7676+ "nudity",
7777+ "nsfl",
7878+ "gore"
7979+ ]
8080+ },
8181+ "selfLabels": {
8282+ "type": "object",
8383+ "required": ["values"],
8484+ "properties": {
8585+ "values": {
8686+ "type": "array",
8787+ "items": {
8888+ "ref": "#selfLabel",
8989+ "type": "ref"
9090+ },
9191+ "maxLength": 10
9292+ }
9393+ },
9494+ "description": "Metadata tags on an atproto record, published by the author within the record."
9595+ },
9696+ "labelValueDefinition": {
9797+ "type": "object",
9898+ "required": ["identifier", "severity", "blurs", "locales"],
9999+ "properties": {
100100+ "blurs": {
101101+ "type": "string",
102102+ "description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
103103+ "knownValues": ["content", "media", "none"]
104104+ },
105105+ "locales": {
106106+ "type": "array",
107107+ "items": {
108108+ "ref": "#labelValueDefinitionStrings",
109109+ "type": "ref"
110110+ }
111111+ },
112112+ "severity": {
113113+ "type": "string",
114114+ "description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
115115+ "knownValues": ["inform", "alert", "none"]
116116+ },
117117+ "adultOnly": {
118118+ "type": "boolean",
119119+ "description": "Does the user need to have adult content enabled in order to configure this label?"
120120+ },
121121+ "identifier": {
122122+ "type": "string",
123123+ "maxLength": 100,
124124+ "description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
125125+ "maxGraphemes": 100
126126+ },
127127+ "defaultSetting": {
128128+ "type": "string",
129129+ "default": "warn",
130130+ "description": "The default setting for this label.",
131131+ "knownValues": ["ignore", "warn", "hide"]
132132+ }
133133+ },
134134+ "description": "Declares a label value and its expected interpretations and behaviors."
135135+ },
136136+ "labelValueDefinitionStrings": {
137137+ "type": "object",
138138+ "required": ["lang", "name", "description"],
139139+ "properties": {
140140+ "lang": {
141141+ "type": "string",
142142+ "format": "language",
143143+ "description": "The code of the language these strings are written in."
144144+ },
145145+ "name": {
146146+ "type": "string",
147147+ "maxLength": 640,
148148+ "description": "A short human-readable name for the label.",
149149+ "maxGraphemes": 64
150150+ },
151151+ "description": {
152152+ "type": "string",
153153+ "maxLength": 100000,
154154+ "description": "A longer description of what the label means and why it might be applied.",
155155+ "maxGraphemes": 10000
156156+ }
157157+ },
158158+ "description": "Strings which describe the label in the UI, localized into a specific language."
159159+ }
160160+ },
161161+ "$type": "com.atproto.lexicon.schema",
162162+ "lexicon": 1
163163+}