{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/progress-software/json-schema/progress-software-page-result-list-credential-schema.json",
  "title": "PageResult_List_Credential",
  "description": "A result envelope that carries paged data",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/progress-software-credential-api-openapi.yml#/components/schemas/PageResult_List_Credential",
  "type": "object",
  "properties": {
    "paging": {
      "$ref": "#/$defs/PagingInfo_List_Credential",
      "description": "The paging section of the envelope",
      "readOnly": true
    },
    "data": {
      "description": "The data payload",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Credential"
      },
      "readOnly": true
    }
  },
  "$defs": {
    "Credential": {
      "description": "Credential template structure",
      "type": "object",
      "properties": {
        "type": {
          "description": "Type of credential",
          "type": "string"
        },
        "propertyBags": {
          "description": "set of properties for this credential\navailable if credential view is set to details.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CredentialPropertyBag"
          }
        },
        "assignments": {
          "description": "List of devices this credential is assigned to.\nreturned if includeAssignments is true.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CredentialAssignment"
          }
        },
        "usedInFailover": {
          "description": "Set if includeAssignments is true;",
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "CredentialAssignment": {
      "description": "representation of a credential assignment",
      "type": "object",
      "properties": {
        "device": {
          "$ref": "#/$defs/DeviceOverview",
          "description": "Unique device ID"
        }
      }
    },
    "CredentialPropertyBag": {
      "description": "List of properties to be added to the device\nProperty Names should be unique in the list.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Required: Name of property",
          "maxLength": 50,
          "minLength": 0,
          "type": "string"
        },
        "value": {
          "description": "Defaults to empty. Value to be used for property.",
          "type": "string"
        }
      }
    },
    "DeviceOverview": {
      "description": "Provides an overview of a given device in terms \nof basic summary information as well as monitoring \nstatus.",
      "type": "object",
      "properties": {
        "downActiveMonitors": {
          "description": "A collection of Down Active monitor status items",
          "type": "array",
          "items": {
            "$ref": "#/$defs/MonitorAssignmentStatus"
          }
        },
        "totalActiveMonitors": {
          "format": "int32",
          "description": "The total number of active monitors for this device",
          "type": "integer"
        },
        "totalActiveMonitorsDown": {
          "format": "int32",
          "description": "The total number of active monitors that are down for this device",
          "type": "integer"
        },
        "notes": {
          "description": "The notes field for the device",
          "type": "string"
        },
        "hostName": {
          "description": "The hostname for the device",
          "type": "string"
        },
        "networkAddress": {
          "description": "The current network address of the device. Usually an IP address.",
          "type": "string"
        },
        "role": {
          "description": "The primary role of the device (e.g. router, switch, etc.).",
          "type": "string"
        },
        "brand": {
          "description": "The brand for the device (e.g. Cisco)",
          "type": "string"
        },
        "os": {
          "description": "The operating system for the device (e.g. windows, linux, etc)",
          "type": "string"
        },
        "bestState": {
          "description": "The best state of the device, like Up",
          "enum": [
            "Unknown",
            "Up",
            "Down",
            "Maintenance",
            "Any"
          ],
          "type": "string"
        },
        "worstState": {
          "description": "The worst state of the device, like Down",
          "enum": [
            "Unknown",
            "Up",
            "Down",
            "Maintenance",
            "Any"
          ],
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "MonitorAssignmentStatus": {
      "description": "The current monitoring status of this monitor",
      "type": "object",
      "properties": {
        "state": {
          "description": "The internal state of the monitor",
          "enum": [
            "Unknown",
            "Up",
            "Down",
            "Maintenance",
            "Any"
          ],
          "type": "string"
        },
        "reason": {
          "description": "The reason a monitor is in the current state",
          "type": "string"
        },
        "lastChangeUtc": {
          "format": "date-time",
          "description": "The time when the status changed in Utc",
          "type": "string"
        },
        "monitorTypeId": {
          "description": "The monitor type id as it exists in the library",
          "type": "string"
        },
        "monitorTypeName": {
          "description": "The monitor type name as it exists in the library",
          "type": "string"
        },
        "comment": {
          "description": "Comment specified when the monitor was assigned to the device\nTypically used for interface monitor assignment where comment is the interface description",
          "type": "string"
        },
        "enabled": {
          "description": "Indicates whether the monitor is enabled",
          "type": "boolean"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "PagingInfo_List_Credential": {
      "description": "The paging information",
      "type": "object",
      "properties": {
        "pageId": {
          "description": "The id of the current page being returned",
          "type": "string"
        },
        "nextPageId": {
          "description": "The id of the next page, if there is one",
          "type": "string"
        },
        "size": {
          "format": "int32",
          "description": "The number of items in the page being returned",
          "type": "integer"
        }
      }
    }
  }
}