![JAR search and dependency download from the Maven repository](/logo.png)
schema.codegen-config.schema.json Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of json-kotlin-schema-codegen Show documentation
Show all versions of json-kotlin-schema-codegen Show documentation
Code generation from JSON Schema to Kotlin or Java
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/pwall567/json-kotlin-schema-codegen/main/src/main/resources/schema/codegen-config.schema.json",
"title": "CodegenConfig",
"description": "Code Generation Configuration File",
"$defs": {
"ClassName": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"QualifiedClassName": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"type": "object",
"properties": {
"title": {
"$comment": "For documentation purposes only",
"type": "string"
},
"version": {
"$comment": "For documentation purposes only",
"type": "string"
},
"description": {
"$comment": "For documentation purposes only",
"type": "string"
},
"packageName": {
"type": [ "string", "null" ],
"minLength": 1,
"maxLength": 256,
"pattern": "^[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)*$"
},
"markerInterface": {
"type": [ "string", "null" ],
"minLength": 1,
"maxLength": 256,
"pattern": "^([a-z][a-z0-9]*\\.)*[A-Za-z][A-Za-z0-9]*$"
},
"generatorComment": {
"type": [ "string", "null" ],
"minLength": 1
},
"targetLanguage": {
"type": "string",
"enum": [ "kotlin", "java", "typescript" ]
},
"nestedClassNameOption": {
"type": "string",
"enum": [ "property", "refSchema" ]
},
"additionalPropertiesOption": {
"type": "string",
"enum": [ "ignore", "strict" ]
},
"examplesValidationOption": {
"type": "string",
"enum": [ "none", "warn", "block" ]
},
"defaultValidationOption": {
"type": "string",
"enum": [ "none", "warn", "block" ]
},
"derivePackageFromStructure": {
"type": "boolean"
},
"extensibleEnumKeyword": {
"type": "string",
"pattern": "^x(-[A-Za-z0-9]+)+$"
},
"extensionValidations": {
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": {
"$ref": "https://json-schema.org/draft/2019-09/meta/applicator"
}
}
},
"nonStandardFormat": {
"type": "object",
"additionalProperties": {
"$ref": "https://json-schema.org/draft/2019-09/meta/applicator"
}
},
"decimalClassName": {
"$ref": "#/$defs/QualifiedClassName"
},
"classNames": {
"type": "object",
"patternProperties": {
"^[a-zA-Z0-9%:./_~-]+:$": {
"$ref": "#/$defs/QualifiedClassName"
}
}
},
"customClasses": {
"type": "object",
"properties": {
"format": {
"type": "object",
"patternProperties": {
"^[A-Za-z][A-Za-z0-9]*(-[A-Za-z0-9]+)*$": {
"$ref": "#/$defs/ClassName"
}
},
"additionalProperties": false
},
"uri": {
"type": "object",
"patternProperties": {
"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?": {
"$comment": "The URI pattern above is taken from https://www.rfc-editor.org/rfc/rfc3986#appendix-B",
"$ref": "#/$defs/ClassName"
}
},
"additionalProperties": false
},
"extension": {
"type": "object",
"patternProperties": {
"^[A-Za-z][A-Za-z0-9]*(-[A-Za-z0-9]+)*$": {
"type": "object",
"patternProperties": {
"^[A-Za-z][A-Za-z0-9]*(-[A-Za-z0-9]+)*$": {
"$ref": "#/$defs/ClassName"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
},
"annotations": {
"type": "object",
"properties": {
"classes": {
"type": "object",
"patternProperties": {
"^([a-z][a-z0-9]*\\.)*[A-Za-z][A-Za-z0-9]*$": {
"type": [ "string", "null" ]
}
},
"additionalProperties": false
},
"fields": {
"type": "object",
"patternProperties": {
"^([a-z][a-z0-9]*\\.)*[A-Za-z][A-Za-z0-9]*$": {
"type": [ "string", "null" ]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"companionObject": {
"type": [ "boolean", "array" ],
"items": {
"type": "string"
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy