{
	"name": "FireIde.Web.Deploy.VCAP.CreateApp",
	"Web.Endpoint": "POST /deploy/vcap/apps/create",
	"Web.Response.Protocol": "Web.Protocols.Template",
	"json": {
		"@scopeSet(endPoint)": {
			"@get(express.req.body.endpoint)": null
		},
		"@scopeSet(appName)": {
			"@get(express.req.body.name)": null
		},
		"@set(apiToken)": {
			"@FireIde.Core.VCAP.GetEndpointToken": {
				"@get(endPoint)": null
			}
		},
		"@if(apiToken)": {
			"@scopeSet(manifest)": {
				"resources": {
					"memory": 64
				},
				"staging": {
					"runtime": null,
					"framework": "node"
				},
				"uris": [{
					"@FireIde.Core.VCAP.CreateUri": {
						"name": {
							"@get(appName)": null
						},
						"endpoint": {
							"@get(endPoint)": null
						}
					}
				}],
				"instances": 1,
				"name": {
					"@get(appName)": null
				}
			},
			"@scopeSet(response)": {
				"@try": {
					"@VCAP.Apps.Create": {
						"endpoint": {
							"@get(endPoint)": null
						},
						"token": {
							"@get(apiToken)": null
						},
						"manifest": {
							"@get(manifest)": null
						}
					},
					"@return": true
				},
				"@catch": {
					"@Web.Response.Status": 201,
					"@Web.Templates.Render(deploy/vcap/newApp)": {
						"layout": false,
						"locals": {
							"error": {
								"@scopeSet(msg)": {
									"@if(CurrentError.error.description)": {
										"@get(CurrentError.error.description)": null
									}
								},
								"@unless(msg)": {
									"@scopeSet(msg)": "Unknown error, try again later or with another name"
								},
								"@get(msg)": null
							}
						}
					},
					"@return": false
				}
			},
			"@if(response)": {
				"@Web.Templates.Render(deploy/vcap/appCreated)": {
					"layout": false,
					"locals": {
						"appUri": {
							"@index(manifest.uris)": 0
						}
					}
				}
			}
		},
		"@unless(apiToken)": {
			"@Web.Response.Status": 403,
			"@Web.Response.Send": "VCAP: Unauthorized"
		}
	}
}