{
  "factory": {
    "id": "route-callable",
    "type": "entaxy.runtime.route",
    "parent": "abstract-route",
    "isAbstract": false,
    "displayName": "ROUTE :: CALLABLE",
    "description": "Dynamically created routes that can be called programmatically. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/route_descriptions.html#_route_callable\">Entaxy docs</a>"
  },
  "entaxy.runtime.route": {
  	"targetRouteContainerType": "LIBRARY",
  	"routeType": "CALLABLE",
  	"routeIsCallable": true
  },
  "fields": {
	"globalCallMode": {
      "displayName": "Global call mode",
      "description": "Defines how to call the route from all Entaxy entities",
      "type": "String",
      "required": true,
      "group": "main",
      "@TYPEINFO": {
        "type": "enum",
        "values": [
          "NONE",
          "SYNC",
          "ASYNC",
          "BOTH"
        ]
	   },
       "defaultValue": "SYNC"     
    },
	"localCallMode": {
      "displayName": "Local call mode",
      "type": "String",
      "description": "Defines how to call the route from the current Entaxy entity",
      "required": true,
      "group": "main",
      "@TYPEINFO": {
        "type": "enum",
        "values": [
          "NONE",
          "SYNC",
          "ASYNC",
          "BOTH"
        ]
       },
       "defaultValue": "NONE" 
    },  	  
    "##publish": {
    	"defaultValue": {
    		"routeGlobalCallMode": {
    			"@CALCULATED": {
    				"expression": "${properties.globalCallMode}",
    				"lazy": false
    			}
    		},
			"routeLocalCallMode": {
				"@CALCULATED": {
					"expression": "${properties.localCallMode}",
					"lazy": false
				}
			}
    	}
    }  	  
  },
  "outputs": {
    "init": {
      "isDefault": true,
      "fields": {
      	"localCallMode": {},
      	"globalCallMode": {}
      },
      "config": {
      	"configurable": false
      }
    }
  }
}
