{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "title": "synchronize_permissions_command",
    "description": "Synchronize permissions command schema",
    "additionalProperties": false,
    "required": [
        "service_id",
        "permissions"
    ],
    "properties": {
        "service_id": {
            "type": "string",
            "description": "ID of the service the permissions will be synchronized for."
        },
        "permissions": {
            "type": "array",
            "description": "Permissions to be synchronized",
            "additionalItems": false,
            "items": {
                "title": "permission",
                "type": "object",
                "description": "Permission to be synchronized",
                "required": [
                    "key",
                    "title"
                ],
                "properties": {
                    "key": {
                        "type": "string",
                        "description": "Permission Key"
                    },
                    "title": {
                        "type": "string",
                        "description": "Permission Title"
                    },
                    "used_by_managed_service_only": {
                        "type": "boolean",
                        "description": "Managed Service Only Permission"
                    },
                    "used_for_development": {
                        "type": "boolean",
                        "description": "Used for Development Only"
                    },
                    "gql_operations": {
                        "type": "array",
                        "description": "GQL Operations mapped to the Permission",
                        "additionalItems": false,
                        "items": {
                            "type": "string"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "permission": {
            "title": "permission",
            "type": "object",
            "description": "Permission to be synchronized",
            "required": [
                "key",
                "title"
            ],
            "properties": {
                "key": {
                    "type": "string",
                    "description": "Permission Key"
                },
                "title": {
                    "type": "string",
                    "description": "Permission Title"
                },
                "used_by_managed_service_only": {
                    "type": "boolean",
                    "description": "Managed Service Only Permission"
                },
                "used_for_development": {
                    "type": "boolean",
                    "description": "Used for Development Only"
                },
                "gql_operations": {
                    "type": "array",
                    "description": "GQL Operations mapped to the Permission",
                    "additionalItems": false,
                    "items": {
                        "type": "string"
                    }
                }
            }
        }
    }
}
