{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/rwth-aachen-university/json-schema/rwth-aachen-university-maintenance-dto-paged-response-schema.json",
  "title": "MaintenanceDtoPagedResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/rwth-aachen-university-maintenance-api-openapi.yml#/components/schemas/MaintenanceDtoPagedResponse",
  "type": "object",
  "properties": {
    "data": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/MaintenanceDto"
      }
    },
    "isSuccess": {
      "type": "boolean",
      "readOnly": true
    },
    "statusCode": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int32"
    },
    "traceId": {
      "type": [
        "string",
        "null"
      ]
    },
    "pagination": {
      "$ref": "#/$defs/Pagination"
    }
  },
  "additionalProperties": false,
  "$defs": {
    "MaintenanceDto": {
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Gets or sets the maintenance title."
        },
        "href": {
          "type": "string",
          "description": "Gets or sets the URL related to the maintenance.",
          "format": "uri"
        },
        "type": {
          "type": "string",
          "description": "Gets or sets the type of maintenance."
        },
        "body": {
          "type": "string",
          "description": "Gets or sets the description of the maintenance."
        },
        "startsDate": {
          "type": [
            "string",
            "null"
          ],
          "description": "Gets or sets the start date of the maintenance, if available.",
          "format": "date-time"
        },
        "endsDate": {
          "type": [
            "string",
            "null"
          ],
          "description": "Gets or sets the end date of the maintenance, if available.",
          "format": "date-time"
        }
      },
      "additionalProperties": false,
      "description": "This class represents a maintenance with its significant properties, which is returned from the API."
    },
    "Pagination": {
      "type": "object",
      "properties": {
        "currentPage": {
          "type": "integer",
          "description": "Gets or sets the current page number.",
          "format": "int32"
        },
        "totalPages": {
          "type": "integer",
          "description": "Gets or sets the total number of pages.",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "description": "Gets or sets the number of items per page.",
          "format": "int32"
        },
        "totalCount": {
          "type": "integer",
          "description": "Gets or sets the total count of items across all pages.",
          "format": "int64"
        },
        "hasPrevious": {
          "type": "boolean",
          "description": "Gets a value indicating whether there is a previous page.",
          "readOnly": true
        },
        "hasNext": {
          "type": "boolean",
          "description": "Gets a value indicating whether there is a next page.",
          "readOnly": true
        }
      },
      "additionalProperties": false,
      "description": "Represents pagination information for a collection of items."
    }
  }
}