{
  "$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"
          }
        }
      }
    }
  }
}