@aws-amplify/appsync-modelgen-plugin
Version:
620 lines (619 loc) • 18.3 kB
JSON
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"models": {
"$ref": "#/definitions/SchemaModels"
},
"nonModels": {
"$ref": "#/definitions/SchemaNonModels"
},
"enums": {
"$ref": "#/definitions/SchemaEnums"
},
"queries": {
"$ref": "#/definitions/SchemaQueries"
},
"mutations": {
"$ref": "#/definitions/SchemaMutations"
},
"subscriptions": {
"$ref": "#/definitions/SchemaSubscriptions"
},
"inputs": {
"$ref": "#/definitions/SchemaInputs"
},
"generations": {
"$ref": "#/definitions/SchemaGenerations"
},
"conversations": {
"$ref": "#/definitions/SchemaConversationRoutes"
}
},
"required": [
"version",
"models",
"nonModels",
"enums"
],
"additionalProperties": false,
"description": "Root Schema Representation",
"definitions": {
"SchemaModels": {
"$ref": "#/definitions/Record%3Cstring%2CSchemaModel%3E",
"description": "Top-level Entities on a Schema"
},
"Record<string,SchemaModel>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/SchemaModel"
}
},
"SchemaModel": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"$ref": "#/definitions/ModelAttribute"
}
},
"fields": {
"$ref": "#/definitions/Fields"
},
"pluralName": {
"type": "string"
},
"syncable": {
"type": "boolean"
},
"primaryKeyInfo": {
"$ref": "#/definitions/PrimaryKeyInfo"
}
},
"required": [
"name",
"fields",
"pluralName",
"primaryKeyInfo"
],
"additionalProperties": false
},
"ModelAttribute": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"properties": {
"type": "object"
}
},
"required": [
"type"
],
"additionalProperties": false
},
"Fields": {
"$ref": "#/definitions/Record%3Cstring%2CField%3E",
"description": "Field Definition"
},
"Record<string,Field>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/Field"
}
},
"Field": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"$ref": "#/definitions/FieldType"
},
"isArray": {
"type": "boolean"
},
"isRequired": {
"type": "boolean"
},
"isReadOnly": {
"type": "boolean"
},
"isArrayNullable": {
"type": "boolean"
},
"attributes": {
"type": "array",
"items": {
"$ref": "#/definitions/FieldAttribute"
}
},
"association": {
"$ref": "#/definitions/AssociationType"
},
"arguments": {
"$ref": "#/definitions/Arguments"
}
},
"required": [
"name",
"type",
"isArray",
"isRequired"
],
"additionalProperties": false
},
"FieldType": {
"anyOf": [
{
"$ref": "#/definitions/ScalarType"
},
{
"type": "object",
"properties": {
"enum": {
"type": "string"
}
},
"required": [
"enum"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"model": {
"type": "string"
}
},
"required": [
"model"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"nonModel": {
"type": "string"
}
},
"required": [
"nonModel"
],
"additionalProperties": false
}
]
},
"ScalarType": {
"type": "string",
"enum": [
"ID",
"String",
"Int",
"Float",
"AWSDate",
"AWSTime",
"AWSDateTime",
"AWSTimestamp",
"AWSEmail",
"AWSURL",
"AWSIPAddress",
"Boolean",
"AWSJSON",
"AWSPhone"
]
},
"FieldAttribute": {
"$ref": "#/definitions/ModelAttribute"
},
"AssociationType": {
"anyOf": [
{
"$ref": "#/definitions/AssociationHasMany"
},
{
"$ref": "#/definitions/AssociationHasOne"
},
{
"$ref": "#/definitions/AssociationBelongsTo"
}
]
},
"AssociationHasMany": {
"type": "object",
"additionalProperties": false,
"properties": {
"connectionType": {
"$ref": "#/definitions/CodeGenConnectionType"
},
"associatedWith": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"associatedWith",
"connectionType"
]
},
"CodeGenConnectionType": {
"type": "string",
"enum": [
"HAS_ONE",
"BELONGS_TO",
"HAS_MANY"
],
"description": "Field-level Relationship Definitions"
},
"AssociationHasOne": {
"type": "object",
"additionalProperties": false,
"properties": {
"connectionType": {
"$ref": "#/definitions/CodeGenConnectionType"
},
"associatedWith": {
"type": "array",
"items": {
"type": "string"
}
},
"targetNames": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"associatedWith",
"connectionType",
"targetNames"
]
},
"AssociationBelongsTo": {
"type": "object",
"additionalProperties": false,
"properties": {
"connectionType": {
"$ref": "#/definitions/CodeGenConnectionType"
},
"targetNames": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"connectionType",
"targetNames"
]
},
"Arguments": {
"$ref": "#/definitions/Record%3Cstring%2CArgument%3E"
},
"Record<string,Argument>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/Argument"
}
},
"Argument": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"$ref": "#/definitions/InputFieldType"
},
"isArray": {
"type": "boolean"
},
"isRequired": {
"type": "boolean"
},
"isArrayNullable": {
"type": "boolean"
}
},
"required": [
"name",
"type",
"isArray",
"isRequired"
],
"additionalProperties": false
},
"InputFieldType": {
"anyOf": [
{
"$ref": "#/definitions/ScalarType"
},
{
"type": "object",
"properties": {
"enum": {
"type": "string"
}
},
"required": [
"enum"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"input": {
"type": "string"
}
},
"required": [
"input"
],
"additionalProperties": false
}
]
},
"PrimaryKeyInfo": {
"type": "object",
"properties": {
"isCustomPrimaryKey": {
"type": "boolean"
},
"primaryKeyFieldName": {
"type": "string"
},
"sortKeyFieldNames": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"isCustomPrimaryKey",
"primaryKeyFieldName",
"sortKeyFieldNames"
],
"additionalProperties": false
},
"SchemaNonModels": {
"$ref": "#/definitions/Record%3Cstring%2CSchemaNonModel%3E"
},
"Record<string,SchemaNonModel>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/SchemaNonModel"
}
},
"SchemaNonModel": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"fields": {
"$ref": "#/definitions/Fields"
}
},
"required": [
"name",
"fields"
],
"additionalProperties": false
},
"SchemaEnums": {
"$ref": "#/definitions/Record%3Cstring%2CSchemaEnum%3E"
},
"Record<string,SchemaEnum>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/SchemaEnum"
}
},
"SchemaEnum": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"values"
],
"additionalProperties": false
},
"SchemaQueries": {
"$ref": "#/definitions/Record%3Cstring%2CSchemaQuery%3E"
},
"Record<string,SchemaQuery>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/SchemaQuery"
}
},
"SchemaQuery": {
"$ref": "#/definitions/Pick%3CField%2C(%22name%22%7C%22type%22%7C%22isArray%22%7C%22isRequired%22%7C%22isArrayNullable%22%7C%22arguments%22)%3E"
},
"Pick<Field,(\"name\"|\"type\"|\"isArray\"|\"isRequired\"|\"isArrayNullable\"|\"arguments\")>": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"$ref": "#/definitions/FieldType"
},
"isArray": {
"type": "boolean"
},
"isRequired": {
"type": "boolean"
},
"isArrayNullable": {
"type": "boolean"
},
"arguments": {
"$ref": "#/definitions/Arguments"
}
},
"required": [
"name",
"type",
"isArray",
"isRequired"
],
"additionalProperties": false
},
"SchemaMutations": {
"$ref": "#/definitions/Record%3Cstring%2CSchemaMutation%3E"
},
"Record<string,SchemaMutation>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/SchemaMutation"
}
},
"SchemaMutation": {
"$ref": "#/definitions/SchemaQuery"
},
"SchemaSubscriptions": {
"$ref": "#/definitions/Record%3Cstring%2CSchemaSubscription%3E"
},
"Record<string,SchemaSubscription>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/SchemaSubscription"
}
},
"SchemaSubscription": {
"$ref": "#/definitions/SchemaQuery"
},
"SchemaInputs": {
"$ref": "#/definitions/Record%3Cstring%2CInput%3E"
},
"Record<string,Input>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/Input"
}
},
"Input": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"attributes": {
"$ref": "#/definitions/Arguments"
}
},
"required": [
"name",
"attributes"
],
"additionalProperties": false,
"description": "Input Definition"
},
"SchemaGenerations": {
"$ref": "#/definitions/SchemaQueries"
},
"SchemaConversationRoutes": {
"$ref": "#/definitions/Record%3Cstring%2CSchemaConversationRoute%3E"
},
"Record<string,SchemaConversationRoute>": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/SchemaConversationRoute"
}
},
"SchemaConversationRoute": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"models": {
"$ref": "#/definitions/SchemaModels"
},
"nonModels": {
"$ref": "#/definitions/SchemaNonModels"
},
"enums": {
"$ref": "#/definitions/SchemaEnums"
},
"conversation": {
"$ref": "#/definitions/SchemaConversation"
},
"message": {
"$ref": "#/definitions/SchemaConversationMessage"
}
},
"required": [
"name",
"models",
"nonModels",
"enums",
"conversation",
"message"
],
"additionalProperties": false
},
"SchemaConversation": {
"type": "object",
"properties": {
"modelName": {
"type": "string"
}
},
"required": [
"modelName"
],
"additionalProperties": false
},
"SchemaConversationMessage": {
"type": "object",
"properties": {
"modelName": {
"type": "string"
},
"subscribe": {
"$ref": "#/definitions/SchemaSubscription"
},
"send": {
"$ref": "#/definitions/SchemaMutation"
}
},
"required": [
"modelName",
"subscribe",
"send"
],
"additionalProperties": false
}
}
}