{
"$schema": "http://json-schema.org/draft-03/schema",
"type": "object",
"required": true,
"description": "Project Template resource.",
"properties": {
"id": {
"type": "string",
"required": true
},
"name": {
"type": "string",
"required": true
},
"description": {
"type": "string",
"required": false
},
"buildConfigs": {
"type": "array",
"required": false,
"items": {
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"required": true
},
"imageRepository": {
"type": "string",
"required": true
},
"sourceUri": {
"type": "string",
"required": false
}
}
}
},
"deploymentConfigs": {
"type": "array",
"required": true,
"items": {
"type": "object",
"required": true,
"properties": {
"kind": {
"type": "string",
"required": true
},
"apiVersion": {
"type": "string",
"required": true
},
"desiredState": {
"type": "object",
"required": true,
"properties": {
"podTemplate": {
"type": "object",
"required": true,
"properties": {
"id": {
"type": "string",
"required": false
},
"kind": {
"type": "string",
"required": false
},
"apiVersion": {
"type": "string",
"required": true
},
"desiredState": {
"type": "object",
"required": true,
"properties": {
"manifest": {
"type": "object",
"required": true,
"properties": {
"version": {
"type": "string",
"required": true
},
"id": {
"type": "string",
"required": true
},
"containers": {
"type": "array",
"required": true,
"items": {
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"image": {
"type": "string",
"required": true
},
"ports": {
"type": "array",
"required": false,
"items": {
"type": "object",
"required": true,
"properties": {
"containerPort": {
"type": "number",
"required": true
},
"hostPort": {
"type": "number",
"required": true
}
}
}
},
"env": {
"type": "array",
"required": false,
"items": {
"type": "object",
"required": false,
"properties": {
"name": {
"type": "string",
"required": false
},
"value": {
"type": "string",
"required": false
}
}
}
}
}
}
}
}
}
}
},
"labels": {
"type": "object",
"required": false
}
}
},
"replicaSelector": {
"type": "object",
"required": false,
"properties": {
"name": {
"type": "string",
"required": true
}
}
},
"replicas": {
"type": "number",
"required": false
}
}
},
"labels": {
"type": "object",
"required": false
}
}
}
},
"imageRepositories": {
"type": "array",
"required": true,
"items": {
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"url": {
"type": "string",
"required": true
}
}
}
},
"parameters": {
"type": "array",
"required": false,
"items": {
"type": "object",
"required": false,
"properties": {
"name": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"required": true,
"enum": ["string"]
},
"value": {
"type": "string",
"required": false
},
"generate": {
"type": "string",
"required": false
},
"description": {
"type": "string",
"required": false
}
}
}
},
"services": {
"type": "array",
"required": false,
"items": {
"type": "object",
"required": false,
"properties": {
"id": {
"type": "string",
"required": true
},
"kind": {
"type": "string",
"required": true
},
"apiVersion": {
"type": "string",
"required": true
},
"port": {
"type": "number",
"required": false
},
"selector": {
"type": "object",
"required": false,
"properties": {
"name": {
"type": "string",
"required": true
}
}
}
}
}
}
}
}