# GENERATED BY KOMAND SDK - DO NOT EDIT
import insightconnect_plugin_runtime
import json


class Component:
    DESCRIPTION = "Get details for an agent"


class Input:
    AGENT = "agent"
    

class Output:
    AGENT = "agent"
    

class GetAgentDetailsInput(insightconnect_plugin_runtime.Input):
    schema = json.loads("""
   {
  "type": "object",
  "title": "Variables",
  "properties": {
    "agent": {
      "type": "string",
      "title": "Agent",
      "description": "Agent to retrieve device information from. Accepts IP address, MAC address, hostname, or device ID",
      "order": 1
    }
  },
  "required": [
    "agent"
  ]
}
    """)

    def __init__(self):
        super(self.__class__, self).__init__(self.schema)


class GetAgentDetailsOutput(insightconnect_plugin_runtime.Output):
    schema = json.loads("""
   {
  "type": "object",
  "title": "Variables",
  "properties": {
    "agent": {
      "$ref": "#/definitions/agent_information",
      "title": "Agent",
      "description": "Information about an agent",
      "order": 1
    }
  },
  "required": [
    "agent"
  ],
  "definitions": {
    "activeDirectory": {
      "type": "object",
      "title": "activeDirectory",
      "properties": {
        "computerMemberOf": {
          "type": "array",
          "title": "Computer Member of",
          "description": "Computer member of",
          "items": {
            "type": "object"
          },
          "order": 1
        },
        "lastUserMemberOf": {
          "type": "array",
          "title": "Last User Member of",
          "description": "Last user member of",
          "items": {
            "type": "object"
          },
          "order": 2
        }
      }
    },
    "agentPolicySettings": {
      "type": "object",
      "title": "agentPolicySettings",
      "properties": {
        "_id": {
          "type": "string",
          "title": "ID",
          "description": "ID",
          "order": 1
        },
        "addToKeychain": {
          "type": "boolean",
          "title": "Add to Keychain",
          "description": "Add to keychain",
          "order": 2
        },
        "addToWindowsStore": {
          "type": "boolean",
          "title": "Add to Windows Store",
          "description": "Add to windows store",
          "order": 3
        },
        "certificates": {
          "type": "array",
          "title": "Certificates",
          "description": "Certificates",
          "items": {
            "type": "object"
          },
          "order": 4
        },
        "firefoxStoreMac": {
          "type": "string",
          "title": "Firefox Store MAC",
          "description": "Firefox store MAC",
          "order": 5
        },
        "firefoxStoreWindows": {
          "type": "string",
          "title": "Firefox Store Windows",
          "description": "Firefox store windows",
          "order": 6
        },
        "keepAfterUninstallClient": {
          "type": "boolean",
          "title": "Keep After Uninstall Client",
          "description": "Keep after uninstall client",
          "order": 7
        }
      }
    },
    "agent_information": {
      "type": "object",
      "title": "agent_information",
      "properties": {
        "activeDirectory": {
          "$ref": "#/definitions/activeDirectory",
          "title": "Active Directory",
          "description": "Active directory",
          "order": 1
        },
        "activeThreats": {
          "type": "integer",
          "title": "Active Threats",
          "description": "Active threats",
          "order": 2
        },
        "agentVersion": {
          "type": "string",
          "title": "Agent Version",
          "description": "Agent version",
          "order": 3
        },
        "alerts": {
          "type": "array",
          "title": "Alerts",
          "description": "Alerts",
          "items": {
            "type": "object"
          },
          "order": 4
        },
        "applications": {
          "type": "array",
          "title": "Applications",
          "description": "Applications",
          "items": {
            "$ref": "#/definitions/applications"
          },
          "order": 5
        },
        "clientState": {
          "type": "string",
          "title": "Client State",
          "description": "Client state",
          "order": 6
        },
        "clientStateTs": {
          "type": "integer",
          "title": "Client State TS",
          "description": "Clientstate TS",
          "order": 7
        },
        "clientVersion": {
          "type": "string",
          "title": "Client Version",
          "description": "Client version",
          "order": 8
        },
        "createdAt": {
          "type": "string",
          "title": "Created At",
          "description": "Created at",
          "order": 9
        },
        "currentFirewallSn": {
          "type": "string",
          "title": "Current Firewall SN",
          "description": "Current firewall SN",
          "order": 10
        },
        "currentUser": {
          "type": "string",
          "title": "Current User",
          "description": "Current user",
          "order": 11
        },
        "deviceId": {
          "type": "string",
          "title": "Device ID",
          "description": "Device ID",
          "order": 12
        },
        "deviceSettingsTs": {
          "type": "integer",
          "title": "Device Settings TS",
          "description": "Device settings TS",
          "order": 13
        },
        "deviceType": {
          "type": "string",
          "title": "Device Type",
          "description": "Device type",
          "order": 14
        },
        "domain": {
          "type": "string",
          "title": "Domain",
          "description": "Domain",
          "order": 15
        },
        "encryptedApplications": {
          "type": "boolean",
          "title": "Encrypted Applications",
          "description": "Encrypted applications",
          "order": 16
        },
        "enforcedPolicy": {
          "type": "array",
          "title": "Enforced Policy",
          "description": "Enforced policy",
          "items": {
            "$ref": "#/definitions/enforcedPolicy"
          },
          "order": 17
        },
        "externalIp": {
          "type": "string",
          "title": "External IP",
          "description": "Externali IP",
          "order": 18
        },
        "firewallProtectionMode": {
          "type": "string",
          "title": "Firewall Protection Mode",
          "description": "Firewall protection mode",
          "order": 19
        },
        "geoLocation": {
          "$ref": "#/definitions/geoLocation",
          "title": "GEO Location",
          "description": "GEO Location",
          "order": 20
        },
        "groups": {
          "type": "array",
          "title": "Groups",
          "description": "Groups",
          "items": {
            "type": "object"
          },
          "order": 21
        },
        "hwModel": {
          "type": "string",
          "title": "HW Model",
          "description": "HW model",
          "order": 22
        },
        "infected": {
          "type": "boolean",
          "title": "Infected",
          "description": "Infected",
          "order": 23
        },
        "installToken": {
          "type": "string",
          "title": "Install Token",
          "description": "Install token",
          "order": 24
        },
        "ip": {
          "type": "string",
          "title": "IP",
          "description": "IP",
          "order": 25
        },
        "isActive": {
          "type": "boolean",
          "title": "Is Active",
          "description": "Is active",
          "order": 26
        },
        "isMobile": {
          "type": "boolean",
          "title": "Is Mobile",
          "description": "Is mobile",
          "order": 27
        },
        "isPendingUninstall": {
          "type": "boolean",
          "title": "Is Pending Uninstall",
          "description": "Is pending uninstall",
          "order": 28
        },
        "lastPolicyId": {
          "type": "string",
          "title": "Last Policy ID",
          "description": "Last policy ID",
          "order": 29
        },
        "lastPolicyUpdateTs": {
          "type": "integer",
          "title": "Last Policy Update TS",
          "description": "Last policy update TS",
          "order": 30
        },
        "licenses": {
          "type": "array",
          "title": "Licenses",
          "description": "Licenses",
          "items": {
            "$ref": "#/definitions/licenses"
          },
          "order": 31
        },
        "localIp": {
          "type": "string",
          "title": "Local IP",
          "description": "Local IP",
          "order": 32
        },
        "location": {
          "$ref": "#/definitions/location",
          "title": "Location",
          "description": "Location",
          "order": 33
        },
        "locationTs": {
          "type": "integer",
          "title": "Location TS",
          "description": "Location TS",
          "order": 34
        },
        "macAddress": {
          "type": "string",
          "title": "MAC Address",
          "description": "MAC address",
          "order": 35
        },
        "mitigationMode": {
          "type": "string",
          "title": "Mitigation Mode",
          "description": "Mitigation mode",
          "order": 36
        },
        "mitigationModeSuspicious": {
          "type": "string",
          "title": "Mitigation Mode Suspicious",
          "description": "Mitigation mode suspicious",
          "order": 37
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Name",
          "order": 38
        },
        "network": {
          "$ref": "#/definitions/network",
          "title": "Network",
          "description": "Network",
          "order": 39
        },
        "networkStatus": {
          "type": "string",
          "title": "Network Status",
          "description": "Network status",
          "order": 40
        },
        "onlineStatus": {
          "type": "string",
          "title": "Online Status",
          "description": "Online status",
          "order": 41
        },
        "os": {
          "type": "string",
          "title": "OS",
          "description": "OS",
          "order": 42
        },
        "osVersion": {
          "type": "string",
          "title": "OS Version",
          "description": "OS version",
          "order": 43
        },
        "processTs": {
          "type": "integer",
          "title": "Process TS",
          "description": "Process TS",
          "order": 44
        },
        "processes": {
          "type": "array",
          "title": "Processes",
          "description": "Processes",
          "items": {
            "$ref": "#/definitions/processes"
          },
          "order": 45
        },
        "processorType": {
          "type": "string",
          "title": "Processor Type",
          "description": "Processor type",
          "order": 46
        },
        "releaseGuids": {
          "type": "array",
          "title": "Release GUIDS",
          "description": "Release GUIDS",
          "items": {
            "type": "object"
          },
          "order": 47
        },
        "s1AgentId": {
          "type": "string",
          "title": "S1 Agent ID",
          "description": "S1 agent ID",
          "order": 48
        },
        "s1GroupId": {
          "type": "string",
          "title": "S1 Group ID",
          "description": "S1 group ID",
          "order": 49
        },
        "s1Passphrase": {
          "type": "string",
          "title": "S1 Passphrase",
          "description": "S1 passphrase",
          "order": 50
        },
        "s1PassphraseTs": {
          "type": "integer",
          "title": "S1 Passphrase TS",
          "description": "S1 passphrase TS",
          "order": 51
        },
        "scanAbortedAt": {
          "type": "string",
          "title": "Scan Aborted At",
          "description": "Scan aborted at",
          "order": 52
        },
        "scanFinishedAt": {
          "type": "string",
          "title": "Scan Finished At",
          "description": "Scan finished at",
          "order": 53
        },
        "scanStartedAt": {
          "type": "string",
          "title": "Scan Started At",
          "description": "Scan started at",
          "order": 54
        },
        "scanStatus": {
          "type": "string",
          "title": "Scan Status",
          "description": "Scan status",
          "order": 55
        },
        "scanStatusTs": {
          "type": "integer",
          "title": "Scan Status TS",
          "description": "Scan status TS",
          "order": 56
        },
        "serverType": {
          "type": "string",
          "title": "Server Type",
          "description": "Server type",
          "order": 57
        },
        "telemetryTs": {
          "type": "integer",
          "title": "Telemetry TS",
          "description": "Telemetry TS",
          "order": 58
        },
        "tenant": {
          "$ref": "#/definitions/tenant",
          "title": "Tenant",
          "description": "Tenant",
          "order": 59
        },
        "timezoneName": {
          "type": "string",
          "title": "Timezone Name",
          "description": "Timezone name",
          "order": 60
        },
        "timezoneOffset": {
          "type": "string",
          "title": "Timezone Offset",
          "description": "Timezone offset",
          "order": 61
        },
        "uninstallPwd": {
          "type": "string",
          "title": "Uninstall PWD",
          "description": "Uninstall PWD",
          "order": 62
        },
        "updatedAt": {
          "type": "string",
          "title": "Updated At",
          "description": "Updated at",
          "order": 63
        },
        "userActionsNeeded": {
          "type": "array",
          "title": "User ctions Needed",
          "description": "User actions needed",
          "items": {
            "type": "object"
          },
          "order": 64
        },
        "users": {
          "type": "array",
          "title": "Users",
          "description": "Users",
          "items": {
            "$ref": "#/definitions/users"
          },
          "order": 65
        }
      },
      "definitions": {
        "activeDirectory": {
          "type": "object",
          "title": "activeDirectory",
          "properties": {
            "computerMemberOf": {
              "type": "array",
              "title": "Computer Member of",
              "description": "Computer member of",
              "items": {
                "type": "object"
              },
              "order": 1
            },
            "lastUserMemberOf": {
              "type": "array",
              "title": "Last User Member of",
              "description": "Last user member of",
              "items": {
                "type": "object"
              },
              "order": 2
            }
          }
        },
        "agentPolicySettings": {
          "type": "object",
          "title": "agentPolicySettings",
          "properties": {
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 1
            },
            "addToKeychain": {
              "type": "boolean",
              "title": "Add to Keychain",
              "description": "Add to keychain",
              "order": 2
            },
            "addToWindowsStore": {
              "type": "boolean",
              "title": "Add to Windows Store",
              "description": "Add to windows store",
              "order": 3
            },
            "certificates": {
              "type": "array",
              "title": "Certificates",
              "description": "Certificates",
              "items": {
                "type": "object"
              },
              "order": 4
            },
            "firefoxStoreMac": {
              "type": "string",
              "title": "Firefox Store MAC",
              "description": "Firefox store MAC",
              "order": 5
            },
            "firefoxStoreWindows": {
              "type": "string",
              "title": "Firefox Store Windows",
              "description": "Firefox store windows",
              "order": 6
            },
            "keepAfterUninstallClient": {
              "type": "boolean",
              "title": "Keep After Uninstall Client",
              "description": "Keep after uninstall client",
              "order": 7
            }
          }
        },
        "applications": {
          "type": "object",
          "title": "applications",
          "properties": {
            "installedDate": {
              "type": "string",
              "title": "Installed Date",
              "description": "Installed date",
              "order": 1
            },
            "name": {
              "type": "string",
              "title": "Name",
              "description": "Name",
              "order": 2
            },
            "publisher": {
              "type": "string",
              "title": "Publisher",
              "description": "Publisher",
              "order": 3
            },
            "size": {
              "type": "integer",
              "title": "Size",
              "description": "Size",
              "order": 4
            },
            "version": {
              "type": "string",
              "title": "Version",
              "description": "Version",
              "order": 5
            }
          }
        },
        "enforcedPolicy": {
          "type": "object",
          "title": "enforcedPolicy",
          "properties": {
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 1
            },
            "policy": {
              "$ref": "#/definitions/policy",
              "title": "Policy",
              "description": "Policy",
              "order": 2
            },
            "policyTs": {
              "type": "integer",
              "title": "Policy TS",
              "description": "Policy TS",
              "order": 3
            },
            "type": {
              "type": "string",
              "title": "Type",
              "description": "Type",
              "order": 4
            }
          },
          "definitions": {
            "agentPolicySettings": {
              "type": "object",
              "title": "agentPolicySettings",
              "properties": {
                "_id": {
                  "type": "string",
                  "title": "ID",
                  "description": "ID",
                  "order": 1
                },
                "addToKeychain": {
                  "type": "boolean",
                  "title": "Add to Keychain",
                  "description": "Add to keychain",
                  "order": 2
                },
                "addToWindowsStore": {
                  "type": "boolean",
                  "title": "Add to Windows Store",
                  "description": "Add to windows store",
                  "order": 3
                },
                "certificates": {
                  "type": "array",
                  "title": "Certificates",
                  "description": "Certificates",
                  "items": {
                    "type": "object"
                  },
                  "order": 4
                },
                "firefoxStoreMac": {
                  "type": "string",
                  "title": "Firefox Store MAC",
                  "description": "Firefox store MAC",
                  "order": 5
                },
                "firefoxStoreWindows": {
                  "type": "string",
                  "title": "Firefox Store Windows",
                  "description": "Firefox store windows",
                  "order": 6
                },
                "keepAfterUninstallClient": {
                  "type": "boolean",
                  "title": "Keep After Uninstall Client",
                  "description": "Keep after uninstall client",
                  "order": 7
                }
              }
            },
            "policy": {
              "type": "object",
              "title": "policy",
              "properties": {
                "agentPolicySettings": {
                  "$ref": "#/definitions/agentPolicySettings",
                  "title": "Agent Policy Settings",
                  "description": "Agent policy settings",
                  "order": 1
                },
                "enforced": {
                  "type": "boolean",
                  "title": "Enforced",
                  "description": "Enforced",
                  "order": 2
                },
                "name": {
                  "type": "string",
                  "title": "Name",
                  "description": "Name",
                  "order": 3
                },
                "policyId": {
                  "type": "string",
                  "title": "Policy ID",
                  "description": "Policy ID",
                  "order": 4
                },
                "policyTs": {
                  "type": "integer",
                  "title": "Policy TS",
                  "description": "Policy TS",
                  "order": 5
                },
                "releaseGuid": {
                  "type": "string",
                  "title": "Release GUID",
                  "description": "Release GUID",
                  "order": 6
                },
                "tenant": {
                  "type": "string",
                  "title": "Tenant",
                  "description": "Tenant",
                  "order": 7
                },
                "type": {
                  "type": "string",
                  "title": "Type",
                  "description": "Type",
                  "order": 8
                },
                "typeDescription": {
                  "type": "string",
                  "title": "Type Description",
                  "description": "Type description",
                  "order": 9
                },
                "uninstall": {
                  "type": "boolean",
                  "title": "Uninstall",
                  "description": "Uninstall",
                  "order": 10
                }
              },
              "definitions": {
                "agentPolicySettings": {
                  "type": "object",
                  "title": "agentPolicySettings",
                  "properties": {
                    "_id": {
                      "type": "string",
                      "title": "ID",
                      "description": "ID",
                      "order": 1
                    },
                    "addToKeychain": {
                      "type": "boolean",
                      "title": "Add to Keychain",
                      "description": "Add to keychain",
                      "order": 2
                    },
                    "addToWindowsStore": {
                      "type": "boolean",
                      "title": "Add to Windows Store",
                      "description": "Add to windows store",
                      "order": 3
                    },
                    "certificates": {
                      "type": "array",
                      "title": "Certificates",
                      "description": "Certificates",
                      "items": {
                        "type": "object"
                      },
                      "order": 4
                    },
                    "firefoxStoreMac": {
                      "type": "string",
                      "title": "Firefox Store MAC",
                      "description": "Firefox store MAC",
                      "order": 5
                    },
                    "firefoxStoreWindows": {
                      "type": "string",
                      "title": "Firefox Store Windows",
                      "description": "Firefox store windows",
                      "order": 6
                    },
                    "keepAfterUninstallClient": {
                      "type": "boolean",
                      "title": "Keep After Uninstall Client",
                      "description": "Keep after uninstall client",
                      "order": 7
                    }
                  }
                }
              }
            }
          }
        },
        "geoLocation": {
          "type": "object",
          "title": "geoLocation",
          "properties": {
            "coordinates": {
              "type": "array",
              "title": "Coordinates",
              "description": "Coordinates",
              "items": {
                "type": "number"
              },
              "order": 1
            },
            "type": {
              "type": "string",
              "title": "Type",
              "description": "Type",
              "order": 2
            }
          }
        },
        "interfaces": {
          "type": "object",
          "title": "interfaces",
          "properties": {
            "dnsServers": {
              "type": "array",
              "title": "DNS Servers",
              "description": "DNS Servers",
              "items": {
                "type": "string"
              },
              "order": 1
            },
            "ipV4Addresses": {
              "type": "array",
              "title": "IPv4 Addresses",
              "description": "IPv4 addresses",
              "items": {
                "type": "string"
              },
              "order": 2
            },
            "ipV6Addresses": {
              "type": "array",
              "title": "IPv6 Addresses",
              "description": "IPv6 addresses",
              "items": {
                "type": "string"
              },
              "order": 3
            },
            "macAddress": {
              "type": "string",
              "title": "MAC Address",
              "description": "MAC address",
              "order": 4
            },
            "name": {
              "type": "string",
              "title": "Name",
              "description": "Name",
              "order": 5
            }
          }
        },
        "licenses": {
          "type": "object",
          "title": "licenses",
          "properties": {
            "__v": {
              "type": "integer",
              "title": "V",
              "description": "V",
              "order": 1
            },
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 2
            },
            "createdAt": {
              "type": "string",
              "title": "Created At",
              "description": "Created at",
              "order": 3
            },
            "expiration": {
              "type": "integer",
              "title": "Expiration",
              "description": "Expiration",
              "order": 4
            },
            "level": {
              "type": "string",
              "title": "Level",
              "description": "Level",
              "order": 5
            },
            "licenseId": {
              "type": "string",
              "title": "License ID",
              "description": "License ID",
              "order": 6
            },
            "nbAvailable": {
              "type": "integer",
              "title": "NB Available",
              "description": "NB available",
              "order": 7
            },
            "nbTotal": {
              "type": "integer",
              "title": "NB Total",
              "description": "NB total",
              "order": 8
            },
            "startDate": {
              "type": "integer",
              "title": "Start Date",
              "description": "Start date",
              "order": 9
            },
            "tenant": {
              "type": "string",
              "title": "Tenant",
              "description": "Tenant",
              "order": 10
            },
            "trial": {
              "type": "boolean",
              "title": "Trial",
              "description": "Trial",
              "order": 11
            },
            "type": {
              "type": "string",
              "title": "Type",
              "description": "Type",
              "order": 12
            },
            "updatedAt": {
              "type": "string",
              "title": "Updated At",
              "description": "Updated at",
              "order": 13
            },
            "vendor": {
              "type": "string",
              "title": "Vendor",
              "description": "Vendor",
              "order": 14
            }
          }
        },
        "location": {
          "type": "object",
          "title": "location",
          "properties": {
            "city": {
              "type": "string",
              "title": "City",
              "description": "City",
              "order": 1
            },
            "country": {
              "type": "string",
              "title": "Country",
              "description": "Country",
              "order": 2
            },
            "countryCode": {
              "type": "string",
              "title": "Countrycode",
              "description": "Countrycode",
              "order": 3
            }
          }
        },
        "network": {
          "type": "object",
          "title": "network",
          "properties": {
            "__v": {
              "type": "integer",
              "title": "V",
              "description": "v",
              "order": 1
            },
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 2
            },
            "device": {
              "type": "string",
              "title": "Device",
              "description": "Device",
              "order": 3
            },
            "interfaces": {
              "type": "array",
              "title": "Interfaces",
              "description": "Interfaces",
              "items": {
                "$ref": "#/definitions/interfaces"
              },
              "order": 4
            },
            "routes": {
              "type": "array",
              "title": "Routes",
              "description": "Routes",
              "items": {
                "$ref": "#/definitions/routes"
              },
              "order": 5
            }
          },
          "definitions": {
            "interfaces": {
              "type": "object",
              "title": "interfaces",
              "properties": {
                "dnsServers": {
                  "type": "array",
                  "title": "DNS Servers",
                  "description": "DNS Servers",
                  "items": {
                    "type": "string"
                  },
                  "order": 1
                },
                "ipV4Addresses": {
                  "type": "array",
                  "title": "IPv4 Addresses",
                  "description": "IPv4 addresses",
                  "items": {
                    "type": "string"
                  },
                  "order": 2
                },
                "ipV6Addresses": {
                  "type": "array",
                  "title": "IPv6 Addresses",
                  "description": "IPv6 addresses",
                  "items": {
                    "type": "string"
                  },
                  "order": 3
                },
                "macAddress": {
                  "type": "string",
                  "title": "MAC Address",
                  "description": "MAC address",
                  "order": 4
                },
                "name": {
                  "type": "string",
                  "title": "Name",
                  "description": "Name",
                  "order": 5
                }
              }
            },
            "routes": {
              "type": "object",
              "title": "routes",
              "properties": {
                "dst": {
                  "type": "string",
                  "title": "DST",
                  "description": "DST",
                  "order": 1
                },
                "gateway": {
                  "type": "string",
                  "title": "Gateway",
                  "description": "Gateway",
                  "order": 2
                },
                "interface": {
                  "type": "string",
                  "title": "Interface",
                  "description": "Interface",
                  "order": 3
                }
              }
            }
          }
        },
        "policy": {
          "type": "object",
          "title": "policy",
          "properties": {
            "agentPolicySettings": {
              "$ref": "#/definitions/agentPolicySettings",
              "title": "Agent Policy Settings",
              "description": "Agent policy settings",
              "order": 1
            },
            "enforced": {
              "type": "boolean",
              "title": "Enforced",
              "description": "Enforced",
              "order": 2
            },
            "name": {
              "type": "string",
              "title": "Name",
              "description": "Name",
              "order": 3
            },
            "policyId": {
              "type": "string",
              "title": "Policy ID",
              "description": "Policy ID",
              "order": 4
            },
            "policyTs": {
              "type": "integer",
              "title": "Policy TS",
              "description": "Policy TS",
              "order": 5
            },
            "releaseGuid": {
              "type": "string",
              "title": "Release GUID",
              "description": "Release GUID",
              "order": 6
            },
            "tenant": {
              "type": "string",
              "title": "Tenant",
              "description": "Tenant",
              "order": 7
            },
            "type": {
              "type": "string",
              "title": "Type",
              "description": "Type",
              "order": 8
            },
            "typeDescription": {
              "type": "string",
              "title": "Type Description",
              "description": "Type description",
              "order": 9
            },
            "uninstall": {
              "type": "boolean",
              "title": "Uninstall",
              "description": "Uninstall",
              "order": 10
            }
          },
          "definitions": {
            "agentPolicySettings": {
              "type": "object",
              "title": "agentPolicySettings",
              "properties": {
                "_id": {
                  "type": "string",
                  "title": "ID",
                  "description": "ID",
                  "order": 1
                },
                "addToKeychain": {
                  "type": "boolean",
                  "title": "Add to Keychain",
                  "description": "Add to keychain",
                  "order": 2
                },
                "addToWindowsStore": {
                  "type": "boolean",
                  "title": "Add to Windows Store",
                  "description": "Add to windows store",
                  "order": 3
                },
                "certificates": {
                  "type": "array",
                  "title": "Certificates",
                  "description": "Certificates",
                  "items": {
                    "type": "object"
                  },
                  "order": 4
                },
                "firefoxStoreMac": {
                  "type": "string",
                  "title": "Firefox Store MAC",
                  "description": "Firefox store MAC",
                  "order": 5
                },
                "firefoxStoreWindows": {
                  "type": "string",
                  "title": "Firefox Store Windows",
                  "description": "Firefox store windows",
                  "order": 6
                },
                "keepAfterUninstallClient": {
                  "type": "boolean",
                  "title": "Keep After Uninstall Client",
                  "description": "Keep after uninstall client",
                  "order": 7
                }
              }
            }
          }
        },
        "processes": {
          "type": "object",
          "title": "processes",
          "properties": {
            "description": {
              "type": "string",
              "title": "Description",
              "description": "Description",
              "order": 1
            },
            "executablePath": {
              "type": "string",
              "title": "Executable Path",
              "description": "Executable path",
              "order": 2
            },
            "memoryUsage": {
              "type": "integer",
              "title": "Memory Usage",
              "description": "Memory usage",
              "order": 3
            },
            "pid": {
              "type": "integer",
              "title": "PID",
              "description": "PID",
              "order": 4
            },
            "processName": {
              "type": "string",
              "title": "Process Name",
              "description": "Process name",
              "order": 5
            },
            "startTime": {
              "type": "integer",
              "title": "Start Time",
              "description": "Start time",
              "order": 6
            },
            "version": {
              "type": "string",
              "title": "Version",
              "description": "Version",
              "order": 7
            }
          }
        },
        "routes": {
          "type": "object",
          "title": "routes",
          "properties": {
            "dst": {
              "type": "string",
              "title": "DST",
              "description": "DST",
              "order": 1
            },
            "gateway": {
              "type": "string",
              "title": "Gateway",
              "description": "Gateway",
              "order": 2
            },
            "interface": {
              "type": "string",
              "title": "Interface",
              "description": "Interface",
              "order": 3
            }
          }
        },
        "tenant": {
          "type": "object",
          "title": "tenant",
          "properties": {
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 1
            },
            "s1Settings": {
              "type": "string",
              "title": "S1 Settings",
              "description": "S1 settings",
              "order": 2
            },
            "tenantId": {
              "type": "string",
              "title": "Tenant ID",
              "description": "Tenant ID",
              "order": 3
            },
            "tenantName": {
              "type": "string",
              "title": "Tenant Name",
              "description": "Tenant name",
              "order": 4
            }
          }
        },
        "tenant_0": {
          "type": "object",
          "title": "tenant_0",
          "properties": {
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 1
            },
            "tenantId": {
              "type": "string",
              "title": "Tenant ID",
              "description": "Tenant ID",
              "order": 2
            },
            "tenantName": {
              "type": "string",
              "title": "Tenant Name",
              "description": "Tenant Name",
              "order": 3
            }
          }
        },
        "users": {
          "type": "object",
          "title": "users",
          "properties": {
            "fullName": {
              "type": "string",
              "title": "Full Name",
              "description": "Full name",
              "order": 1
            },
            "policies": {
              "type": "array",
              "title": "Policies",
              "description": "Policies",
              "items": {
                "type": "object"
              },
              "order": 2
            },
            "tenant": {
              "$ref": "#/definitions/tenant_0",
              "title": "Tenant",
              "description": "Tenant",
              "order": 3
            },
            "userGroups": {
              "type": "array",
              "title": "User Groups",
              "description": "User groups",
              "items": {
                "type": "object"
              },
              "order": 4
            },
            "userId": {
              "type": "string",
              "title": "User ID",
              "description": "User ID",
              "order": 5
            },
            "username": {
              "type": "string",
              "title": "Username",
              "description": "Username",
              "order": 6
            }
          },
          "definitions": {
            "tenant_0": {
              "type": "object",
              "title": "tenant_0",
              "properties": {
                "_id": {
                  "type": "string",
                  "title": "ID",
                  "description": "ID",
                  "order": 1
                },
                "tenantId": {
                  "type": "string",
                  "title": "Tenant ID",
                  "description": "Tenant ID",
                  "order": 2
                },
                "tenantName": {
                  "type": "string",
                  "title": "Tenant Name",
                  "description": "Tenant Name",
                  "order": 3
                }
              }
            }
          }
        }
      }
    },
    "applications": {
      "type": "object",
      "title": "applications",
      "properties": {
        "installedDate": {
          "type": "string",
          "title": "Installed Date",
          "description": "Installed date",
          "order": 1
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Name",
          "order": 2
        },
        "publisher": {
          "type": "string",
          "title": "Publisher",
          "description": "Publisher",
          "order": 3
        },
        "size": {
          "type": "integer",
          "title": "Size",
          "description": "Size",
          "order": 4
        },
        "version": {
          "type": "string",
          "title": "Version",
          "description": "Version",
          "order": 5
        }
      }
    },
    "enforcedPolicy": {
      "type": "object",
      "title": "enforcedPolicy",
      "properties": {
        "_id": {
          "type": "string",
          "title": "ID",
          "description": "ID",
          "order": 1
        },
        "policy": {
          "$ref": "#/definitions/policy",
          "title": "Policy",
          "description": "Policy",
          "order": 2
        },
        "policyTs": {
          "type": "integer",
          "title": "Policy TS",
          "description": "Policy TS",
          "order": 3
        },
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Type",
          "order": 4
        }
      },
      "definitions": {
        "agentPolicySettings": {
          "type": "object",
          "title": "agentPolicySettings",
          "properties": {
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 1
            },
            "addToKeychain": {
              "type": "boolean",
              "title": "Add to Keychain",
              "description": "Add to keychain",
              "order": 2
            },
            "addToWindowsStore": {
              "type": "boolean",
              "title": "Add to Windows Store",
              "description": "Add to windows store",
              "order": 3
            },
            "certificates": {
              "type": "array",
              "title": "Certificates",
              "description": "Certificates",
              "items": {
                "type": "object"
              },
              "order": 4
            },
            "firefoxStoreMac": {
              "type": "string",
              "title": "Firefox Store MAC",
              "description": "Firefox store MAC",
              "order": 5
            },
            "firefoxStoreWindows": {
              "type": "string",
              "title": "Firefox Store Windows",
              "description": "Firefox store windows",
              "order": 6
            },
            "keepAfterUninstallClient": {
              "type": "boolean",
              "title": "Keep After Uninstall Client",
              "description": "Keep after uninstall client",
              "order": 7
            }
          }
        },
        "policy": {
          "type": "object",
          "title": "policy",
          "properties": {
            "agentPolicySettings": {
              "$ref": "#/definitions/agentPolicySettings",
              "title": "Agent Policy Settings",
              "description": "Agent policy settings",
              "order": 1
            },
            "enforced": {
              "type": "boolean",
              "title": "Enforced",
              "description": "Enforced",
              "order": 2
            },
            "name": {
              "type": "string",
              "title": "Name",
              "description": "Name",
              "order": 3
            },
            "policyId": {
              "type": "string",
              "title": "Policy ID",
              "description": "Policy ID",
              "order": 4
            },
            "policyTs": {
              "type": "integer",
              "title": "Policy TS",
              "description": "Policy TS",
              "order": 5
            },
            "releaseGuid": {
              "type": "string",
              "title": "Release GUID",
              "description": "Release GUID",
              "order": 6
            },
            "tenant": {
              "type": "string",
              "title": "Tenant",
              "description": "Tenant",
              "order": 7
            },
            "type": {
              "type": "string",
              "title": "Type",
              "description": "Type",
              "order": 8
            },
            "typeDescription": {
              "type": "string",
              "title": "Type Description",
              "description": "Type description",
              "order": 9
            },
            "uninstall": {
              "type": "boolean",
              "title": "Uninstall",
              "description": "Uninstall",
              "order": 10
            }
          },
          "definitions": {
            "agentPolicySettings": {
              "type": "object",
              "title": "agentPolicySettings",
              "properties": {
                "_id": {
                  "type": "string",
                  "title": "ID",
                  "description": "ID",
                  "order": 1
                },
                "addToKeychain": {
                  "type": "boolean",
                  "title": "Add to Keychain",
                  "description": "Add to keychain",
                  "order": 2
                },
                "addToWindowsStore": {
                  "type": "boolean",
                  "title": "Add to Windows Store",
                  "description": "Add to windows store",
                  "order": 3
                },
                "certificates": {
                  "type": "array",
                  "title": "Certificates",
                  "description": "Certificates",
                  "items": {
                    "type": "object"
                  },
                  "order": 4
                },
                "firefoxStoreMac": {
                  "type": "string",
                  "title": "Firefox Store MAC",
                  "description": "Firefox store MAC",
                  "order": 5
                },
                "firefoxStoreWindows": {
                  "type": "string",
                  "title": "Firefox Store Windows",
                  "description": "Firefox store windows",
                  "order": 6
                },
                "keepAfterUninstallClient": {
                  "type": "boolean",
                  "title": "Keep After Uninstall Client",
                  "description": "Keep after uninstall client",
                  "order": 7
                }
              }
            }
          }
        }
      }
    },
    "geoLocation": {
      "type": "object",
      "title": "geoLocation",
      "properties": {
        "coordinates": {
          "type": "array",
          "title": "Coordinates",
          "description": "Coordinates",
          "items": {
            "type": "number"
          },
          "order": 1
        },
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Type",
          "order": 2
        }
      }
    },
    "interfaces": {
      "type": "object",
      "title": "interfaces",
      "properties": {
        "dnsServers": {
          "type": "array",
          "title": "DNS Servers",
          "description": "DNS Servers",
          "items": {
            "type": "string"
          },
          "order": 1
        },
        "ipV4Addresses": {
          "type": "array",
          "title": "IPv4 Addresses",
          "description": "IPv4 addresses",
          "items": {
            "type": "string"
          },
          "order": 2
        },
        "ipV6Addresses": {
          "type": "array",
          "title": "IPv6 Addresses",
          "description": "IPv6 addresses",
          "items": {
            "type": "string"
          },
          "order": 3
        },
        "macAddress": {
          "type": "string",
          "title": "MAC Address",
          "description": "MAC address",
          "order": 4
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Name",
          "order": 5
        }
      }
    },
    "licenses": {
      "type": "object",
      "title": "licenses",
      "properties": {
        "__v": {
          "type": "integer",
          "title": "V",
          "description": "V",
          "order": 1
        },
        "_id": {
          "type": "string",
          "title": "ID",
          "description": "ID",
          "order": 2
        },
        "createdAt": {
          "type": "string",
          "title": "Created At",
          "description": "Created at",
          "order": 3
        },
        "expiration": {
          "type": "integer",
          "title": "Expiration",
          "description": "Expiration",
          "order": 4
        },
        "level": {
          "type": "string",
          "title": "Level",
          "description": "Level",
          "order": 5
        },
        "licenseId": {
          "type": "string",
          "title": "License ID",
          "description": "License ID",
          "order": 6
        },
        "nbAvailable": {
          "type": "integer",
          "title": "NB Available",
          "description": "NB available",
          "order": 7
        },
        "nbTotal": {
          "type": "integer",
          "title": "NB Total",
          "description": "NB total",
          "order": 8
        },
        "startDate": {
          "type": "integer",
          "title": "Start Date",
          "description": "Start date",
          "order": 9
        },
        "tenant": {
          "type": "string",
          "title": "Tenant",
          "description": "Tenant",
          "order": 10
        },
        "trial": {
          "type": "boolean",
          "title": "Trial",
          "description": "Trial",
          "order": 11
        },
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Type",
          "order": 12
        },
        "updatedAt": {
          "type": "string",
          "title": "Updated At",
          "description": "Updated at",
          "order": 13
        },
        "vendor": {
          "type": "string",
          "title": "Vendor",
          "description": "Vendor",
          "order": 14
        }
      }
    },
    "location": {
      "type": "object",
      "title": "location",
      "properties": {
        "city": {
          "type": "string",
          "title": "City",
          "description": "City",
          "order": 1
        },
        "country": {
          "type": "string",
          "title": "Country",
          "description": "Country",
          "order": 2
        },
        "countryCode": {
          "type": "string",
          "title": "Countrycode",
          "description": "Countrycode",
          "order": 3
        }
      }
    },
    "network": {
      "type": "object",
      "title": "network",
      "properties": {
        "__v": {
          "type": "integer",
          "title": "V",
          "description": "v",
          "order": 1
        },
        "_id": {
          "type": "string",
          "title": "ID",
          "description": "ID",
          "order": 2
        },
        "device": {
          "type": "string",
          "title": "Device",
          "description": "Device",
          "order": 3
        },
        "interfaces": {
          "type": "array",
          "title": "Interfaces",
          "description": "Interfaces",
          "items": {
            "$ref": "#/definitions/interfaces"
          },
          "order": 4
        },
        "routes": {
          "type": "array",
          "title": "Routes",
          "description": "Routes",
          "items": {
            "$ref": "#/definitions/routes"
          },
          "order": 5
        }
      },
      "definitions": {
        "interfaces": {
          "type": "object",
          "title": "interfaces",
          "properties": {
            "dnsServers": {
              "type": "array",
              "title": "DNS Servers",
              "description": "DNS Servers",
              "items": {
                "type": "string"
              },
              "order": 1
            },
            "ipV4Addresses": {
              "type": "array",
              "title": "IPv4 Addresses",
              "description": "IPv4 addresses",
              "items": {
                "type": "string"
              },
              "order": 2
            },
            "ipV6Addresses": {
              "type": "array",
              "title": "IPv6 Addresses",
              "description": "IPv6 addresses",
              "items": {
                "type": "string"
              },
              "order": 3
            },
            "macAddress": {
              "type": "string",
              "title": "MAC Address",
              "description": "MAC address",
              "order": 4
            },
            "name": {
              "type": "string",
              "title": "Name",
              "description": "Name",
              "order": 5
            }
          }
        },
        "routes": {
          "type": "object",
          "title": "routes",
          "properties": {
            "dst": {
              "type": "string",
              "title": "DST",
              "description": "DST",
              "order": 1
            },
            "gateway": {
              "type": "string",
              "title": "Gateway",
              "description": "Gateway",
              "order": 2
            },
            "interface": {
              "type": "string",
              "title": "Interface",
              "description": "Interface",
              "order": 3
            }
          }
        }
      }
    },
    "policy": {
      "type": "object",
      "title": "policy",
      "properties": {
        "agentPolicySettings": {
          "$ref": "#/definitions/agentPolicySettings",
          "title": "Agent Policy Settings",
          "description": "Agent policy settings",
          "order": 1
        },
        "enforced": {
          "type": "boolean",
          "title": "Enforced",
          "description": "Enforced",
          "order": 2
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Name",
          "order": 3
        },
        "policyId": {
          "type": "string",
          "title": "Policy ID",
          "description": "Policy ID",
          "order": 4
        },
        "policyTs": {
          "type": "integer",
          "title": "Policy TS",
          "description": "Policy TS",
          "order": 5
        },
        "releaseGuid": {
          "type": "string",
          "title": "Release GUID",
          "description": "Release GUID",
          "order": 6
        },
        "tenant": {
          "type": "string",
          "title": "Tenant",
          "description": "Tenant",
          "order": 7
        },
        "type": {
          "type": "string",
          "title": "Type",
          "description": "Type",
          "order": 8
        },
        "typeDescription": {
          "type": "string",
          "title": "Type Description",
          "description": "Type description",
          "order": 9
        },
        "uninstall": {
          "type": "boolean",
          "title": "Uninstall",
          "description": "Uninstall",
          "order": 10
        }
      },
      "definitions": {
        "agentPolicySettings": {
          "type": "object",
          "title": "agentPolicySettings",
          "properties": {
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 1
            },
            "addToKeychain": {
              "type": "boolean",
              "title": "Add to Keychain",
              "description": "Add to keychain",
              "order": 2
            },
            "addToWindowsStore": {
              "type": "boolean",
              "title": "Add to Windows Store",
              "description": "Add to windows store",
              "order": 3
            },
            "certificates": {
              "type": "array",
              "title": "Certificates",
              "description": "Certificates",
              "items": {
                "type": "object"
              },
              "order": 4
            },
            "firefoxStoreMac": {
              "type": "string",
              "title": "Firefox Store MAC",
              "description": "Firefox store MAC",
              "order": 5
            },
            "firefoxStoreWindows": {
              "type": "string",
              "title": "Firefox Store Windows",
              "description": "Firefox store windows",
              "order": 6
            },
            "keepAfterUninstallClient": {
              "type": "boolean",
              "title": "Keep After Uninstall Client",
              "description": "Keep after uninstall client",
              "order": 7
            }
          }
        }
      }
    },
    "processes": {
      "type": "object",
      "title": "processes",
      "properties": {
        "description": {
          "type": "string",
          "title": "Description",
          "description": "Description",
          "order": 1
        },
        "executablePath": {
          "type": "string",
          "title": "Executable Path",
          "description": "Executable path",
          "order": 2
        },
        "memoryUsage": {
          "type": "integer",
          "title": "Memory Usage",
          "description": "Memory usage",
          "order": 3
        },
        "pid": {
          "type": "integer",
          "title": "PID",
          "description": "PID",
          "order": 4
        },
        "processName": {
          "type": "string",
          "title": "Process Name",
          "description": "Process name",
          "order": 5
        },
        "startTime": {
          "type": "integer",
          "title": "Start Time",
          "description": "Start time",
          "order": 6
        },
        "version": {
          "type": "string",
          "title": "Version",
          "description": "Version",
          "order": 7
        }
      }
    },
    "routes": {
      "type": "object",
      "title": "routes",
      "properties": {
        "dst": {
          "type": "string",
          "title": "DST",
          "description": "DST",
          "order": 1
        },
        "gateway": {
          "type": "string",
          "title": "Gateway",
          "description": "Gateway",
          "order": 2
        },
        "interface": {
          "type": "string",
          "title": "Interface",
          "description": "Interface",
          "order": 3
        }
      }
    },
    "tenant": {
      "type": "object",
      "title": "tenant",
      "properties": {
        "_id": {
          "type": "string",
          "title": "ID",
          "description": "ID",
          "order": 1
        },
        "s1Settings": {
          "type": "string",
          "title": "S1 Settings",
          "description": "S1 settings",
          "order": 2
        },
        "tenantId": {
          "type": "string",
          "title": "Tenant ID",
          "description": "Tenant ID",
          "order": 3
        },
        "tenantName": {
          "type": "string",
          "title": "Tenant Name",
          "description": "Tenant name",
          "order": 4
        }
      }
    },
    "tenant_0": {
      "type": "object",
      "title": "tenant_0",
      "properties": {
        "_id": {
          "type": "string",
          "title": "ID",
          "description": "ID",
          "order": 1
        },
        "tenantId": {
          "type": "string",
          "title": "Tenant ID",
          "description": "Tenant ID",
          "order": 2
        },
        "tenantName": {
          "type": "string",
          "title": "Tenant Name",
          "description": "Tenant Name",
          "order": 3
        }
      }
    },
    "users": {
      "type": "object",
      "title": "users",
      "properties": {
        "fullName": {
          "type": "string",
          "title": "Full Name",
          "description": "Full name",
          "order": 1
        },
        "policies": {
          "type": "array",
          "title": "Policies",
          "description": "Policies",
          "items": {
            "type": "object"
          },
          "order": 2
        },
        "tenant": {
          "$ref": "#/definitions/tenant_0",
          "title": "Tenant",
          "description": "Tenant",
          "order": 3
        },
        "userGroups": {
          "type": "array",
          "title": "User Groups",
          "description": "User groups",
          "items": {
            "type": "object"
          },
          "order": 4
        },
        "userId": {
          "type": "string",
          "title": "User ID",
          "description": "User ID",
          "order": 5
        },
        "username": {
          "type": "string",
          "title": "Username",
          "description": "Username",
          "order": 6
        }
      },
      "definitions": {
        "tenant_0": {
          "type": "object",
          "title": "tenant_0",
          "properties": {
            "_id": {
              "type": "string",
              "title": "ID",
              "description": "ID",
              "order": 1
            },
            "tenantId": {
              "type": "string",
              "title": "Tenant ID",
              "description": "Tenant ID",
              "order": 2
            },
            "tenantName": {
              "type": "string",
              "title": "Tenant Name",
              "description": "Tenant Name",
              "order": 3
            }
          }
        }
      }
    }
  }
}
    """)

    def __init__(self):
        super(self.__class__, self).__init__(self.schema)
