{
    "title": " Permissions",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "javaType": "com.sos.joc.model.security.Permissions",
    "type": "object",
    "properties": {
        "roles": {
            "type": "array",
            "uniqueItems": true,
            "items": {
                "type": "string"
            }
        },
        "joc": {
            "javaType": "com.sos.joc.model.security.permissions.JocPermissions",
            "type": "object",
            "properties": {
                "getLog": {
                    "type": "boolean",
                    "default": false
                },
                "administration": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.Administration",
                    "type": "object",
                    "properties": {
                        "accounts": {
                            "javaType": "com.sos.joc.model.security.permissions.joc.admin.Accounts",
                            "type": "object",
                            "properties": {
                                "view": {
                                    "type": "boolean",
                                    "default": false
                                },
                                "manage": {
                                    "type": "boolean",
                                    "default": false
                                }
                            },
                            "additionalProperties": false
                        },
                        "settings": {
                            "javaType": "com.sos.joc.model.security.permissions.joc.admin.Settings",
                            "type": "object",
                            "properties": {
                                "view": {
                                    "type": "boolean",
                                    "default": false
                                },
                                "manage": {
                                    "type": "boolean",
                                    "default": false
                                }
                            },
                            "additionalProperties": false
                        },
                        "controllers": {
                            "javaType": "com.sos.joc.model.security.permissions.joc.admin.Controllers",
                            "type": "object",
                            "properties": {
                                "view": {
                                    "type": "boolean",
                                    "default": false
                                },
                                "manage": {
                                    "type": "boolean",
                                    "default": false
                                }
                            },
                            "additionalProperties": false
                        },
                        "certificates": {
                            "javaType": "com.sos.joc.model.security.permissions.joc.admin.Certificates",
                            "type": "object",
                            "properties": {
                                "view": {
                                    "type": "boolean",
                                    "default": false
                                },
                                "manage": {
                                    "type": "boolean",
                                    "default": false
                                }
                            },
                            "additionalProperties": false
                        },
                        "customization": {
                            "javaType": "com.sos.joc.model.security.permissions.joc.admin.Customization",
                            "type": "object",
                            "properties": {
                                "view": {
                                    "type": "boolean",
                                    "default": false
                                },
                                "manage": {
                                    "type": "boolean",
                                    "default": false
                                },
                                "share": {
                                    "description": "share/makePrvate",
                                    "type": "boolean",
                                    "default": false
                                }
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": false
                },
                "cluster": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.Cluster",
                    "type": "object",
                    "properties": {
                        "manage": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "inventory": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.Inventory",
                    "type": "object",
                    "properties": {
                        "view": {
                            "type": "boolean",
                            "default": false
                        },
                        "manage": {
                            "description": "edit/restore/assign documentation",
                            "type": "boolean",
                            "default": false
                        },
                        "deploy": {
                            "description": "publishing depoyables and releasables",
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "calendars": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.Calendars",
                    "type": "object",
                    "properties": {
                        "view": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "documentations": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.Documentations",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show/export",
                            "type": "boolean",
                            "default": false
                        },
                        "manage": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "auditLog": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.AuditLog",
                    "type": "object",
                    "properties": {
                        "view": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "dailyPlan": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.DailyPlan",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show tab, planned orders, history",
                            "type": "boolean",
                            "default": false
                        },
                        "manage": {
                            "description": "create daily plan, delete submissions",
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "fileTransfer": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.FileTransfer",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show history, configuration tab",
                            "type": "boolean",
                            "default": false
                        },
                        "manage": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "notification": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.Notification",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "configuration tab",
                            "type": "boolean",
                            "default": false
                        },
                        "manage": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "others": {
                    "javaType": "com.sos.joc.model.security.permissions.joc.Others",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "configuration tab",
                            "type": "boolean",
                            "default": false
                        },
                        "manage": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                }
            },
            "additionalProperties": false
        },
        "controllerDefaults": {
            "javaType": "com.sos.joc.model.security.permissions.ControllerPermissions",
            "type": "object",
            "properties": {
                "view": {
                    "type": "boolean",
                    "default": false
                },
                "restart": {
                    "type": "boolean",
                    "default": false
                },
                "terminate": {
                    "type": "boolean",
                    "default": false
                },
                "getLog": {
                    "type": "boolean",
                    "default": false
                },
                "switchOver": {
                    "type": "boolean",
                    "default": false
                },
                "deployments": {
                    "javaType": "com.sos.joc.model.security.permissions.controller.Deployments",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show deployment history",
                            "type": "boolean",
                            "default": false
                        },
                        "deploy": {
                            "description": "add/update/remove releasable and deployable objects",
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "orders": {
                    "javaType": "com.sos.joc.model.security.permissions.controller.Orders",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show order/task widget, overview, order/task history",
                            "type": "boolean",
                            "default": false
                        },
                        "create": {
                            "description": "add, generate, submit",
                            "type": "boolean",
                            "default": false
                        },
                        "cancel": {
                            "type": "boolean",
                            "default": false
                        },
                        "suspendResume": {
                            "description": "suspend, resume",
                            "type": "boolean",
                            "default": false
                        },
                        "modify": {
                            "type": "boolean",
                            "default": true
                        }
                    },
                    "additionalProperties": false
                },
                "agents": {
                    "javaType": "com.sos.joc.model.security.permissions.controller.Agents",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show resource tab 'agents'",
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "noticeBoards": {
                    "javaType": "com.sos.joc.model.security.permissions.controller.NoticeBoards",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show resource tab 'notice boards'",
                            "type": "boolean",
                            "default": true
                        },
                        "post": {
                            "description": "post notice",
                            "type": "boolean",
                            "default": false
                        },
                        "delete": {
                            "description": "delete notice",
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                "locks": {
                    "javaType": "com.sos.joc.model.security.permissions.controller.Locks",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show resource tab 'locks'",
                            "type": "boolean",
                            "default": true
                        }
                    },
                    "additionalProperties": false
                },
                "workflows": {
                    "javaType": "com.sos.joc.model.security.permissions.controller.Workflows",
                    "type": "object",
                    "properties": {
                        "view": {
                            "description": "show tab",
                            "type": "boolean",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                }
            },
            "additionalProperties": false
        },
        "controllers": {
            "javaType": "com.sos.joc.model.security.permissions.Controllers",
            "type": "object",
            "additionalProperties": {
                "javaType": "com.sos.joc.model.security.permissions.ControllerPermissions",
                "type": "object",
                "properties": {
                    "view": {
                        "type": "boolean",
                        "default": false
                    },
                    "restart": {
                        "type": "boolean",
                        "default": false
                    },
                    "terminate": {
                        "type": "boolean",
                        "default": false
                    },
                    "getLog": {
                        "type": "boolean",
                        "default": false
                    },
                    "switchOver": {
                        "type": "boolean",
                        "default": false
                    },
                    "deployments": {
                        "javaType": "com.sos.joc.model.security.permissions.controller.Deployments",
                        "type": "object",
                        "properties": {
                            "view": {
                                "description": "show deployment history",
                                "type": "boolean",
                                "default": false
                            },
                            "deploy": {
                                "description": "add/update/remove releasable and deployable objects",
                                "type": "boolean",
                                "default": false
                            }
                        },
                        "additionalProperties": false
                    },
                    "orders": {
                        "javaType": "com.sos.joc.model.security.permissions.controller.Orders",
                        "type": "object",
                        "properties": {
                            "view": {
                                "description": "show order/task widget, overview, order/task history",
                                "type": "boolean",
                                "default": false
                            },
                            "create": {
                                "description": "add, generate, submit",
                                "type": "boolean",
                                "default": false
                            },
                            "cancel": {
                                "type": "boolean",
                                "default": false
                            },
                            "suspendResume": {
                                "description": "suspend, resume",
                                "type": "boolean",
                                "default": false
                            },
                            "modify": {
                                "type": "boolean",
                                "default": true
                            }
                        },
                        "additionalProperties": false
                    },
                    "agents": {
                        "javaType": "com.sos.joc.model.security.permissions.controller.Agents",
                        "type": "object",
                        "properties": {
                            "view": {
                                "description": "show resource tab 'agents'",
                                "type": "boolean",
                                "default": false
                            }
                        },
                        "additionalProperties": false
                    },
                    "noticeBoards": {
                        "javaType": "com.sos.joc.model.security.permissions.controller.NoticeBoards",
                        "type": "object",
                        "properties": {
                            "view": {
                                "description": "show resource tab 'notice boards'",
                                "type": "boolean",
                                "default": true
                            },
                            "post": {
                                "description": "post notice",
                                "type": "boolean",
                                "default": false
                            },
                            "delete": {
                                "description": "delete notice",
                                "type": "boolean",
                                "default": false
                            }
                        },
                        "additionalProperties": false
                    },
                    "locks": {
                        "javaType": "com.sos.joc.model.security.permissions.controller.Locks",
                        "type": "object",
                        "properties": {
                            "view": {
                                "description": "show resource tab 'locks'",
                                "type": "boolean",
                                "default": true
                            }
                        },
                        "additionalProperties": false
                    },
                    "workflows": {
                        "javaType": "com.sos.joc.model.security.permissions.controller.Workflows",
                        "type": "object",
                        "properties": {
                            "view": {
                                "description": "show tab",
                                "type": "boolean",
                                "default": false
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "additionalProperties": false
            }
        }
    },
    "additionalProperties": false
}