diff --git a/dummy-data/adguardhome/control/stats b/dummy-data/adguardhome/control/stats new file mode 100644 index 0000000..c2c8815 --- /dev/null +++ b/dummy-data/adguardhome/control/stats @@ -0,0 +1,51 @@ +{ + "time_units": "hours", + "num_dns_queries": 28947, + "num_blocked_filtering": 12489, + "num_replaced_safebrowsing": 0, + "num_replaced_safesearch": 0, + "num_replaced_parental": 0, + "avg_processing_time": 0.34, + "top_queried_domains": [ + { + "name": "example.com", + "count": 1289 + }, + { + "name": "api.github.com", + "count": 892 + } + ], + "top_clients": [ + { + "name": "192.168.1.100", + "count": 8945 + }, + { + "name": "192.168.1.101", + "count": 6234 + } + ], + "top_blocked_domains": [ + { + "name": "ads.google.com", + "count": 1245 + }, + { + "name": "tracker.example.com", + "count": 987 + } + ], + "dns_queries": [ + 12450, 13200, 14100, 13800, 12900, 11200, 10800, 9600, 8200, 7800, + 9200, 10500, 12100, 13600, 14800, 15200, 14900, 13700, 12800, 11900, + 11200, 10800, 10200, 9800 + ], + "blocked_filtering": [ + 5200, 5800, 6100, 5900, 5400, 4800, 4600, 4200, 3600, 3400, + 4000, 4500, 5200, 5800, 6300, 6500, 6300, 5800, 5400, 5100, + 4800, 4600, 4300, 4200 + ], + "replaced_safebrowsing": [], + "replaced_parental": [] +} \ No newline at end of file diff --git a/dummy-data/adguardhome/control/status b/dummy-data/adguardhome/control/status new file mode 100644 index 0000000..3c47165 --- /dev/null +++ b/dummy-data/adguardhome/control/status @@ -0,0 +1,16 @@ +{ + "protection_enabled": true, + "version": "v0.107.48", + "language": "en", + "dns_address": "127.0.0.1:53", + "dns_port": 53, + "protection_disabled_duration": null, + "http_port": 80, + "https_port": 443, + "querylog_enabled": true, + "querylog_size": 5000, + "querylog_size_memory": 1000, + "querylog_interval": 2160, + "dhcp_available": true, + "running": true +} \ No newline at end of file diff --git a/dummy-data/dockersocketproxy/containers/json b/dummy-data/dockersocketproxy/containers/json new file mode 100644 index 0000000..e41c72f --- /dev/null +++ b/dummy-data/dockersocketproxy/containers/json @@ -0,0 +1,215 @@ +[ + { + "Id": "8dfafdbc3a40", + "Names": ["/boring_feynman"], + "Image": "nginx:latest", + "ImageID": "sha256:f6d0b4767a6c", + "Command": "/docker-entrypoint.sh nginx -g 'daemon off;'", + "Created": 1640995200, + "Ports": [ + { + "IP": "0.0.0.0", + "PrivatePort": 80, + "PublicPort": 8080, + "Type": "tcp" + } + ], + "Labels": { + "maintainer": "NGINX Docker Maintainers " + }, + "State": "running", + "Status": "Up 2 hours", + "HostConfig": { + "NetworkMode": "default" + }, + "NetworkSettings": { + "Networks": { + "bridge": { + "IPAMConfig": null, + "Links": null, + "Aliases": null, + "NetworkID": "f2de39df4171", + "EndpointID": "2cdc4edb1ded", + "Gateway": "172.17.0.1", + "IPAddress": "172.17.0.2", + "IPPrefixLen": 16, + "IPv6Gateway": "", + "GlobalIPv6Address": "", + "GlobalIPv6PrefixLen": 0, + "MacAddress": "02:42:ac:11:00:02" + } + } + }, + "Mounts": [] + }, + { + "Id": "9e87a2b84b8e", + "Names": ["/web-app"], + "Image": "node:16-alpine", + "ImageID": "sha256:c85b8f829d1f", + "Command": "npm start", + "Created": 1640991600, + "Ports": [ + { + "IP": "0.0.0.0", + "PrivatePort": 3000, + "PublicPort": 3000, + "Type": "tcp" + } + ], + "Labels": {}, + "State": "running", + "Status": "Up 3 hours", + "HostConfig": { + "NetworkMode": "default" + }, + "NetworkSettings": { + "Networks": { + "bridge": { + "IPAMConfig": null, + "Links": null, + "Aliases": null, + "NetworkID": "f2de39df4171", + "EndpointID": "3edc5fdb2efe", + "Gateway": "172.17.0.1", + "IPAddress": "172.17.0.3", + "IPPrefixLen": 16, + "IPv6Gateway": "", + "GlobalIPv6Address": "", + "GlobalIPv6PrefixLen": 0, + "MacAddress": "02:42:ac:11:00:03" + } + } + }, + "Mounts": [ + { + "Type": "bind", + "Source": "/home/user/app", + "Destination": "/app", + "Mode": "", + "RW": true, + "Propagation": "rprivate" + } + ] + }, + { + "Id": "7b9a3c6d2e1f", + "Names": ["/database"], + "Image": "postgres:13", + "ImageID": "sha256:b4ed8d5b4f3a", + "Command": "docker-entrypoint.sh postgres", + "Created": 1640988000, + "Ports": [ + { + "IP": "127.0.0.1", + "PrivatePort": 5432, + "PublicPort": 5432, + "Type": "tcp" + } + ], + "Labels": {}, + "State": "dead", + "Status": "Up 4 hours", + "HostConfig": { + "NetworkMode": "default" + }, + "NetworkSettings": { + "Networks": { + "bridge": { + "IPAMConfig": null, + "Links": null, + "Aliases": null, + "NetworkID": "f2de39df4171", + "EndpointID": "4fdc6gdb3gfg", + "Gateway": "172.17.0.1", + "IPAddress": "172.17.0.4", + "IPPrefixLen": 16, + "IPv6Gateway": "", + "GlobalIPv6Address": "", + "GlobalIPv6PrefixLen": 0, + "MacAddress": "02:42:ac:11:00:04" + } + } + }, + "Mounts": [ + { + "Type": "volume", + "Name": "postgres_data", + "Source": "/var/lib/docker/volumes/postgres_data/_data", + "Destination": "/var/lib/postgresql/data", + "Driver": "local", + "Mode": "rw", + "RW": true, + "Propagation": "" + } + ] + }, + { + "Id": "5c8d1f4e9a2b", + "Names": ["/old-service"], + "Image": "ubuntu:20.04", + "ImageID": "sha256:f643c72bc252", + "Command": "/bin/bash", + "Created": 1640984400, + "Ports": [], + "Labels": {}, + "State": "exited", + "Status": "Exited (0) 2 hours ago", + "HostConfig": { + "NetworkMode": "default" + }, + "NetworkSettings": { + "Networks": { + "bridge": { + "IPAMConfig": null, + "Links": null, + "Aliases": null, + "NetworkID": "", + "EndpointID": "", + "Gateway": "", + "IPAddress": "", + "IPPrefixLen": 0, + "IPv6Gateway": "", + "GlobalIPv6Address": "", + "GlobalIPv6PrefixLen": 0, + "MacAddress": "" + } + } + }, + "Mounts": [] + }, + { + "Id": "1a2b3c4d5e6f", + "Names": ["/backup-job"], + "Image": "alpine:latest", + "ImageID": "sha256:c059bfaa849c", + "Command": "sh -c 'sleep 3600'", + "Created": 1640980800, + "Ports": [], + "Labels": {}, + "State": "exited", + "Status": "Exited (0) 30 minutes ago", + "HostConfig": { + "NetworkMode": "default" + }, + "NetworkSettings": { + "Networks": { + "bridge": { + "IPAMConfig": null, + "Links": null, + "Aliases": null, + "NetworkID": "", + "EndpointID": "", + "Gateway": "", + "IPAddress": "", + "IPPrefixLen": 0, + "IPv6Gateway": "", + "GlobalIPv6Address": "", + "GlobalIPv6PrefixLen": 0, + "MacAddress": "" + } + } + }, + "Mounts": [] + } +] \ No newline at end of file diff --git a/dummy-data/emby/System/info/public b/dummy-data/emby/System/info/public new file mode 100644 index 0000000..ca727dc --- /dev/null +++ b/dummy-data/emby/System/info/public @@ -0,0 +1,24 @@ +{ + "LocalAddress": "192.168.1.100:8096", + "ServerName": "Homer-Emby-Server", + "Version": "4.8.8.0", + "ProductName": "Emby Server", + "OperatingSystem": "Linux", + "Id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", + "StartupWizardCompleted": true, + "SupportsLibraryMonitor": true, + "WebSocketPortNumber": 8096, + "CompletedInstallations": [], + "CanSelfRestart": true, + "CanSelfUpdate": true, + "CanLaunchWebBrowser": false, + "WanAddress": "192.168.1.100:8096", + "HasUpdateAvailable": false, + "SupportsAutoRunAtStartup": false, + "TranscodingTempPath": "/var/lib/emby/transcoding-temp", + "CachePath": "/var/lib/emby/cache", + "LogPath": "/var/log/emby", + "InternalMetadataPath": "/var/lib/emby/metadata", + "ItemsByNamePath": "/var/lib/emby/metadata/People", + "ProgramDataPath": "/var/lib/emby" +} \ No newline at end of file diff --git a/dummy-data/emby/items/counts b/dummy-data/emby/items/counts new file mode 100644 index 0000000..4c5243f --- /dev/null +++ b/dummy-data/emby/items/counts @@ -0,0 +1,12 @@ +{ + "MovieCount": 1247, + "SeriesCount": 89, + "EpisodeCount": 2156, + "ArtistCount": 234, + "AlbumCount": 567, + "SongCount": 8923, + "MusicVideoCount": 42, + "BoxSetCount": 23, + "BookCount": 156, + "ItemCount": 13437 +} \ No newline at end of file diff --git a/dummy-data/gotify/health b/dummy-data/gotify/health new file mode 100644 index 0000000..6df9f42 --- /dev/null +++ b/dummy-data/gotify/health @@ -0,0 +1,4 @@ +{ + "health": "green", + "database": "green" +} \ No newline at end of file diff --git a/dummy-data/gotify/message b/dummy-data/gotify/message new file mode 100644 index 0000000..3909775 --- /dev/null +++ b/dummy-data/gotify/message @@ -0,0 +1,65 @@ +{ + "messages": [ + { + "id": 1, + "appid": 1, + "message": "System backup completed successfully", + "title": "Backup Service", + "priority": 2, + "date": "2024-01-15T10:30:00Z" + }, + { + "id": 2, + "appid": 2, + "message": "Database optimization finished", + "title": "Database Manager", + "priority": 1, + "date": "2024-01-15T09:15:00Z" + }, + { + "id": 3, + "appid": 1, + "message": "Server restart scheduled for maintenance", + "title": "System Admin", + "priority": 5, + "date": "2024-01-15T08:45:00Z" + }, + { + "id": 4, + "appid": 3, + "message": "New user registration: john.doe@example.com", + "title": "User Management", + "priority": 1, + "date": "2024-01-15T07:20:00Z" + }, + { + "id": 5, + "appid": 2, + "message": "Weekly report generated and sent", + "title": "Report Generator", + "priority": 2, + "date": "2024-01-14T18:00:00Z" + }, + { + "id": 6, + "appid": 4, + "message": "Security scan completed - no threats detected", + "title": "Security Monitor", + "priority": 2, + "date": "2024-01-14T16:30:00Z" + }, + { + "id": 7, + "appid": 1, + "message": "Disk usage is at 85% on /var partition", + "title": "System Monitor", + "priority": 4, + "date": "2024-01-14T14:15:00Z" + } + ], + "paging": { + "size": 7, + "since": 0, + "limit": 100 + } +} \ No newline at end of file diff --git a/dummy-data/healthchecks/api/v1/checks b/dummy-data/healthchecks/api/v1/checks new file mode 100644 index 0000000..8db7e92 --- /dev/null +++ b/dummy-data/healthchecks/api/v1/checks @@ -0,0 +1,95 @@ +{ + "checks": [ + { + "name": "Database Backup", + "tags": "backup database", + "desc": "Daily database backup job", + "grace": 3600, + "n_pings": 127, + "status": "up", + "last_ping": "2024-01-15T10:30:00+00:00", + "next_ping": "2024-01-16T10:30:00+00:00", + "manual_resume": false, + "methods": "", + "unique_key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + { + "name": "Web Server Monitoring", + "tags": "web server nginx", + "desc": "Monitor web server health", + "grace": 300, + "n_pings": 2847, + "status": "up", + "last_ping": "2024-01-15T10:25:00+00:00", + "next_ping": "2024-01-15T10:30:00+00:00", + "manual_resume": false, + "methods": "", + "unique_key": "b2c3d4e5-f6g7-8901-bcde-f23456789012" + }, + { + "name": "SSL Certificate Check", + "tags": "ssl certificate", + "desc": "Weekly SSL certificate expiry check", + "grace": 86400, + "n_pings": 52, + "status": "up", + "last_ping": "2024-01-14T12:00:00+00:00", + "next_ping": "2024-01-21T12:00:00+00:00", + "manual_resume": false, + "methods": "", + "unique_key": "c3d4e5f6-g7h8-9012-cdef-345678901234" + }, + { + "name": "Log Cleanup Service", + "tags": "cleanup logs maintenance", + "desc": "Weekly log file cleanup", + "grace": 7200, + "n_pings": 15, + "status": "grace", + "last_ping": "2024-01-13T02:00:00+00:00", + "next_ping": "2024-01-20T02:00:00+00:00", + "manual_resume": false, + "methods": "", + "unique_key": "d4e5f6g7-h8i9-0123-defa-456789012345" + }, + { + "name": "Email Service", + "tags": "email smtp", + "desc": "Email service availability check", + "grace": 600, + "n_pings": 0, + "status": "down", + "last_ping": "2024-01-12T08:15:00+00:00", + "next_ping": "2024-01-15T08:15:00+00:00", + "manual_resume": false, + "methods": "", + "unique_key": "e5f6g7h8-i9j0-1234-efab-567890123456" + }, + { + "name": "API Health Check", + "tags": "api health", + "desc": "External API endpoint health monitoring", + "grace": 180, + "n_pings": 1440, + "status": "up", + "last_ping": "2024-01-15T10:28:00+00:00", + "next_ping": "2024-01-15T10:30:00+00:00", + "manual_resume": false, + "methods": "", + "unique_key": "f6g7h8i9-j0k1-2345-fabc-678901234567" + }, + { + "name": "Backup Verification", + "tags": "backup verify", + "desc": "Verify backup integrity", + "grace": 1800, + "n_pings": 45, + "status": "grace", + "last_ping": "2024-01-14T22:30:00+00:00", + "next_ping": "2024-01-15T22:30:00+00:00", + "manual_resume": false, + "methods": "", + "unique_key": "g7h8i9j0-k1l2-3456-gbcd-789012345678" + } + ] +} \ No newline at end of file diff --git a/dummy-data/homeassistant/api/config b/dummy-data/homeassistant/api/config new file mode 100644 index 0000000..209ee32 --- /dev/null +++ b/dummy-data/homeassistant/api/config @@ -0,0 +1,45 @@ +{ + "location_name": "Home", + "latitude": 40.7128, + "longitude": -74.0060, + "elevation": 10, + "unit_system": { + "length": "km", + "mass": "kg", + "pressure": "Pa", + "temperature": "°C", + "volume": "L" + }, + "time_zone": "America/New_York", + "components": [ + "automation", + "climate", + "device_tracker", + "frontend", + "history", + "light", + "logger", + "media_player", + "recorder", + "script", + "sensor", + "switch", + "system_health", + "weather" + ], + "config_dir": "/config", + "allowlist_external_dirs": [ + "/config", + "/share" + ], + "allowlist_external_urls": [], + "version": "2024.1.5", + "config_source": "storage", + "recovery_mode": false, + "state": "RUNNING", + "external_url": null, + "internal_url": null, + "currency": "USD", + "country": "US", + "language": "en" +} \ No newline at end of file diff --git a/dummy-data/homeassistant/api/states b/dummy-data/homeassistant/api/states new file mode 100644 index 0000000..2cc8989 --- /dev/null +++ b/dummy-data/homeassistant/api/states @@ -0,0 +1,141 @@ +[ + { + "entity_id": "sensor.living_room_temperature", + "state": "22.5", + "attributes": { + "unit_of_measurement": "°C", + "device_class": "temperature", + "friendly_name": "Living Room Temperature" + }, + "last_changed": "2024-01-15T10:30:00+00:00", + "last_updated": "2024-01-15T10:30:00+00:00", + "context": { + "id": "01HMV123456789", + "parent_id": null, + "user_id": null + } + }, + { + "entity_id": "light.bedroom_ceiling", + "state": "on", + "attributes": { + "brightness": 180, + "color_mode": "brightness", + "supported_color_modes": ["brightness"], + "friendly_name": "Bedroom Ceiling Light" + }, + "last_changed": "2024-01-15T09:15:00+00:00", + "last_updated": "2024-01-15T09:15:00+00:00", + "context": { + "id": "01HMV234567890", + "parent_id": null, + "user_id": "user123" + } + }, + { + "entity_id": "switch.coffee_maker", + "state": "off", + "attributes": { + "friendly_name": "Coffee Maker" + }, + "last_changed": "2024-01-14T22:00:00+00:00", + "last_updated": "2024-01-14T22:00:00+00:00", + "context": { + "id": "01HMV345678901", + "parent_id": null, + "user_id": null + } + }, + { + "entity_id": "climate.living_room", + "state": "heat", + "attributes": { + "temperature": 21.0, + "current_temperature": 20.5, + "hvac_modes": ["off", "heat", "cool", "auto"], + "min_temp": 7.0, + "max_temp": 35.0, + "target_temp_step": 0.5, + "friendly_name": "Living Room Thermostat" + }, + "last_changed": "2024-01-15T08:00:00+00:00", + "last_updated": "2024-01-15T10:25:00+00:00", + "context": { + "id": "01HMV456789012", + "parent_id": null, + "user_id": "user123" + } + }, + { + "entity_id": "sensor.front_door", + "state": "closed", + "attributes": { + "device_class": "door", + "friendly_name": "Front Door" + }, + "last_changed": "2024-01-15T07:30:00+00:00", + "last_updated": "2024-01-15T07:30:00+00:00", + "context": { + "id": "01HMV567890123", + "parent_id": null, + "user_id": null + } + }, + { + "entity_id": "media_player.living_room_tv", + "state": "playing", + "attributes": { + "volume_level": 0.4, + "is_volume_muted": false, + "media_content_type": "tvshow", + "media_title": "The Office", + "app_name": "Netflix", + "friendly_name": "Living Room TV" + }, + "last_changed": "2024-01-15T10:00:00+00:00", + "last_updated": "2024-01-15T10:20:00+00:00", + "context": { + "id": "01HMV678901234", + "parent_id": null, + "user_id": "user123" + } + }, + { + "entity_id": "automation.morning_routine", + "state": "on", + "attributes": { + "last_triggered": "2024-01-15T07:00:00+00:00", + "mode": "single", + "current": 0, + "friendly_name": "Morning Routine" + }, + "last_changed": "2024-01-14T07:00:00+00:00", + "last_updated": "2024-01-15T07:00:00+00:00", + "context": { + "id": "01HMV789012345", + "parent_id": null, + "user_id": null + } + }, + { + "entity_id": "weather.home", + "state": "partly-cloudy", + "attributes": { + "temperature": 18.0, + "humidity": 65, + "pressure": 1013.2, + "wind_speed": 12.5, + "wind_bearing": 225, + "visibility": 16.0, + "forecast": [], + "friendly_name": "Home Weather" + }, + "last_changed": "2024-01-15T10:00:00+00:00", + "last_updated": "2024-01-15T10:30:00+00:00", + "context": { + "id": "01HMV890123456", + "parent_id": null, + "user_id": null + } + } +] \ No newline at end of file diff --git a/dummy-data/homeassistant/api_root b/dummy-data/homeassistant/api_root new file mode 100644 index 0000000..a7ea0ce --- /dev/null +++ b/dummy-data/homeassistant/api_root @@ -0,0 +1,3 @@ +{ + "message": "API running." +} \ No newline at end of file diff --git a/dummy-data/immich/api/server/statistics b/dummy-data/immich/api/server/statistics new file mode 100644 index 0000000..1679d5e --- /dev/null +++ b/dummy-data/immich/api/server/statistics @@ -0,0 +1,41 @@ +{ + "photos": 12847, + "videos": 1523, + "usage": 248576851456, + "usageByUser": [ + { + "userId": "user-1234-5678-9abc-def0", + "userName": "john.doe", + "photos": 8945, + "videos": 892, + "usage": 156789012345 + }, + { + "userId": "user-2345-6789-abcd-ef01", + "userName": "jane.smith", + "photos": 2134, + "videos": 423, + "usage": 67891234567 + }, + { + "userId": "user-3456-789a-bcde-f012", + "userName": "family.shared", + "photos": 1768, + "videos": 208, + "usage": 23896604544 + } + ], + "usageRaw": 248576851456, + "photosGrowth": { + "date": "2024-01-15", + "value": 42 + }, + "videosGrowth": { + "date": "2024-01-15", + "value": 7 + }, + "usageGrowth": { + "date": "2024-01-15", + "value": 2147483648 + } +} \ No newline at end of file diff --git a/dummy-data/jellystat/proxy/getSessions b/dummy-data/jellystat/proxy/getSessions new file mode 100644 index 0000000..a1bbcb0 --- /dev/null +++ b/dummy-data/jellystat/proxy/getSessions @@ -0,0 +1,342 @@ +[ + { + "PlayState": { + "CanSeek": true, + "IsPaused": false, + "IsMuted": false, + "RepeatMode": "RepeatNone", + "ShuffleMode": "Sorted", + "VolumeLevel": 85, + "AudioStreamIndex": 1, + "SubtitleStreamIndex": -1, + "MediaSourceId": "12345abcdef", + "PlayMethod": "DirectPlay", + "PlaySessionId": "session-1-abc123", + "PlaylistItemId": "playlist-item-1", + "PositionTicks": 18000000000 + }, + "AdditionalUsers": [], + "Capabilities": { + "PlayableMediaTypes": ["Audio", "Video"], + "SupportedCommands": ["Play", "Pause", "Stop", "Seek"] + }, + "RemoteEndPoint": "192.168.1.100", + "PlayableMediaTypes": ["Audio", "Video"], + "Id": "session-1-abc123", + "UserId": "user123abc", + "UserName": "john_doe", + "Client": "Jellyfin Web", + "LastActivityDate": "2024-01-15T10:30:00.0000000Z", + "LastPlaybackCheckIn": "2024-01-15T10:30:00.0000000Z", + "DeviceName": "Chrome on Desktop", + "DeviceId": "device-desktop-chrome", + "ApplicationVersion": "10.8.13", + "IsActive": true, + "SupportsMediaControl": true, + "SupportsRemoteControl": true, + "NowPlayingItem": { + "Name": "The Office - S03E01 - Gay Witch Hunt", + "OriginalTitle": "Gay Witch Hunt", + "Id": "episode123abc", + "Etag": "etag123", + "SourceType": "Library", + "PlaylistItemId": "playlist-item-1", + "DateCreated": "2024-01-10T00:00:00.0000000Z", + "DateLastMediaAdded": "2024-01-10T00:00:00.0000000Z", + "ExtraType": null, + "AirsBeforeSeasonNumber": null, + "AirsAfterSeasonNumber": null, + "AirsBeforeEpisodeNumber": null, + "CanDelete": false, + "CanDownload": false, + "HasSubtitles": true, + "Container": "mkv", + "SortName": "office s03e01 gay witch hunt", + "ForcedSortName": null, + "Video3DFormat": null, + "PremiereDate": "2006-09-21T00:00:00.0000000Z", + "ExternalUrls": [], + "MediaSources": [], + "CriticRating": null, + "ProductionLocations": [], + "Path": "/media/tv/The Office/Season 03/S03E01.mkv", + "EnableMediaSourceDisplay": true, + "OfficialRating": "TV-14", + "CustomRating": null, + "ChannelId": null, + "ChannelName": null, + "Overview": "Michael's kiss with Oscar at the Dundies leads to sensitivity training for the office.", + "Taglines": [], + "Genres": ["Comedy"], + "CommunityRating": 8.1, + "CumulativeRunTimeTicks": 13050000000, + "RunTimeTicks": 13050000000, + "PlayAccess": "Full", + "AspectRatio": "16:9", + "ProductionYear": 2006, + "IsPlaceHolder": false, + "Number": null, + "ChannelNumber": null, + "IndexNumber": 1, + "IndexNumberEnd": null, + "ParentIndexNumber": 3, + "RemoteTrailers": [], + "ProviderIds": {}, + "IsHD": true, + "IsFolder": false, + "ParentId": "season3abc", + "Type": "Episode", + "People": [], + "Studios": [], + "GenreItems": [], + "ParentLogoItemId": null, + "ParentBackdropItemId": "series123", + "ParentBackdropImageTags": ["backdrop1"], + "LocalTrailerCount": 0, + "UserData": { + "Rating": null, + "PlayedPercentage": 75.5, + "UnplayedItemCount": null, + "PlaybackPositionTicks": 18000000000, + "PlayCount": 1, + "IsFavorite": false, + "Likes": null, + "LastPlayedDate": "2024-01-15T10:30:00.0000000Z", + "Played": false, + "Key": "episode123abc" + }, + "RecursiveItemCount": 0, + "ChildCount": 0, + "SeriesName": "The Office", + "SeriesId": "series123", + "SeasonId": "season3abc", + "SpecialFeatureCount": 0, + "DisplayPreferencesId": "episode123abc", + "Status": null, + "AirTime": null, + "AirDays": [], + "Tags": [], + "PrimaryImageAspectRatio": 1.777777777777778, + "Artists": [], + "ArtistItems": [], + "Album": null, + "CollectionType": null, + "DisplayOrder": null, + "AlbumId": null, + "AlbumPrimaryImageTag": null, + "SeriesPrimaryImageTag": "series-primary", + "AlbumArtist": null, + "AlbumArtists": [], + "SeasonName": "Season 3", + "MediaStreams": [], + "VideoType": "VideoFile", + "PartCount": 1, + "MediaSourceCount": 1, + "ImageTags": { + "Primary": "episode-primary" + }, + "BackdropImageTags": [], + "ScreenshotImageTags": [], + "ParentLogoImageTag": null, + "ParentArtItemId": null, + "ParentArtImageTag": null, + "SeriesThumbImageTag": null, + "ImageBlurHashes": {}, + "SeriesStudio": "NBC", + "ParentThumbItemId": null, + "ParentThumbImageTag": null, + "ParentPrimaryImageItemId": "series123", + "ParentPrimaryImageTag": "series-primary", + "Chapters": [], + "LocationType": "FileSystem", + "IsoType": null, + "MediaType": "Video", + "EndDate": null, + "LockedFields": [], + "TrailerCount": 0, + "MovieCount": 0, + "SeriesCount": 0, + "ProgramCount": 0, + "EpisodeCount": 0, + "SongCount": 0, + "AlbumCount": 0, + "ArtistCount": 0, + "MusicVideoCount": 0, + "LockData": false, + "Width": 1920, + "Height": 1080, + "CameraMake": null, + "CameraModel": null, + "Software": null, + "ExposureTime": null, + "FocalLength": null, + "ImageOrientation": null, + "Aperture": null, + "ShutterSpeed": null, + "Latitude": null, + "Longitude": null, + "Altitude": null, + "IsoSpeedRating": null, + "SeriesTimerId": null, + "ProgramId": null, + "ChannelPrimaryImageTag": null, + "StartDate": null, + "CompletionPercentage": null, + "IsRepeat": null, + "EpisodeTitle": "Gay Witch Hunt", + "ChannelType": null, + "Audio": null, + "IsMovie": false, + "IsSports": false, + "IsNews": false, + "IsKids": false, + "IsPremiere": false, + "TimerId": null, + "NormalizationGain": null, + "CurrentProgram": null + }, + "FullNowPlayingItem": {}, + "NowViewingItem": null, + "DeviceType": "Desktop", + "NowPlayingQueue": [], + "NowPlayingQueueFullItems": [], + "HasCustomDeviceName": false, + "PlaylistItemId": "playlist-item-1", + "ServerId": "jellyfin-server-123", + "UserPrimaryImageTag": null, + "SupportedCommands": [] + }, + { + "PlayState": { + "CanSeek": true, + "IsPaused": true, + "IsMuted": false, + "RepeatMode": "RepeatNone", + "ShuffleMode": "Sorted", + "VolumeLevel": 65, + "AudioStreamIndex": 1, + "SubtitleStreamIndex": 2, + "MediaSourceId": "67890defghi", + "PlayMethod": "DirectPlay", + "PlaySessionId": "session-2-def456", + "PlaylistItemId": "playlist-item-2", + "PositionTicks": 45000000000 + }, + "AdditionalUsers": [], + "Capabilities": { + "PlayableMediaTypes": ["Audio", "Video"], + "SupportedCommands": ["Play", "Pause", "Stop", "Seek"] + }, + "RemoteEndPoint": "192.168.1.101", + "PlayableMediaTypes": ["Audio", "Video"], + "Id": "session-2-def456", + "UserId": "user456def", + "UserName": "jane_smith", + "Client": "Jellyfin Android", + "LastActivityDate": "2024-01-15T10:25:00.0000000Z", + "LastPlaybackCheckIn": "2024-01-15T10:25:00.0000000Z", + "DeviceName": "Samsung Galaxy S21", + "DeviceId": "device-android-samsung", + "ApplicationVersion": "2.6.2", + "IsActive": true, + "SupportsMediaControl": true, + "SupportsRemoteControl": true, + "NowPlayingItem": { + "Name": "Inception", + "OriginalTitle": "Inception", + "Id": "movie456def", + "Etag": "etag456", + "SourceType": "Library", + "PlaylistItemId": "playlist-item-2", + "DateCreated": "2024-01-05T00:00:00.0000000Z", + "DateLastMediaAdded": "2024-01-05T00:00:00.0000000Z", + "Container": "mkv", + "SortName": "inception", + "PremiereDate": "2010-07-16T00:00:00.0000000Z", + "Path": "/media/movies/Inception (2010)/Inception.mkv", + "EnableMediaSourceDisplay": true, + "OfficialRating": "PG-13", + "Overview": "A thief who steals corporate secrets through the use of dream-sharing technology is given the inverse task of planting an idea into the mind of a C.E.O.", + "Taglines": ["Your mind is the scene of the crime"], + "Genres": ["Action", "Sci-Fi", "Thriller"], + "CommunityRating": 8.8, + "CumulativeRunTimeTicks": 88800000000, + "RunTimeTicks": 88800000000, + "PlayAccess": "Full", + "AspectRatio": "2.40:1", + "ProductionYear": 2010, + "IsPlaceHolder": false, + "IsHD": true, + "IsFolder": false, + "Type": "Movie", + "LocalTrailerCount": 0, + "UserData": { + "PlayedPercentage": 50.6, + "PlaybackPositionTicks": 45000000000, + "PlayCount": 0, + "IsFavorite": true, + "LastPlayedDate": "2024-01-15T10:25:00.0000000Z", + "Played": false, + "Key": "movie456def" + }, + "PrimaryImageAspectRatio": 0.6666666666666666, + "VideoType": "VideoFile", + "PartCount": 1, + "MediaSourceCount": 1, + "ImageTags": { + "Primary": "movie-primary" + }, + "BackdropImageTags": ["backdrop1", "backdrop2"], + "LocationType": "FileSystem", + "MediaType": "Video", + "Width": 1920, + "Height": 800, + "IsMovie": true, + "IsSports": false, + "IsNews": false, + "IsKids": false, + "IsPremiere": false + }, + "FullNowPlayingItem": {}, + "NowViewingItem": null, + "DeviceType": "Phone", + "NowPlayingQueue": [], + "NowPlayingQueueFullItems": [], + "HasCustomDeviceName": false, + "PlaylistItemId": "playlist-item-2", + "ServerId": "jellyfin-server-123", + "UserPrimaryImageTag": null, + "SupportedCommands": [] + }, + { + "PlayState": null, + "AdditionalUsers": [], + "Capabilities": { + "PlayableMediaTypes": ["Audio", "Video"], + "SupportedCommands": ["Play", "Pause", "Stop"] + }, + "RemoteEndPoint": "192.168.1.102", + "PlayableMediaTypes": ["Audio", "Video"], + "Id": "session-3-ghi789", + "UserId": "user789ghi", + "UserName": "family_user", + "Client": "Jellyfin for Roku", + "LastActivityDate": "2024-01-15T10:20:00.0000000Z", + "LastPlaybackCheckIn": "2024-01-15T10:20:00.0000000Z", + "DeviceName": "Roku Ultra", + "DeviceId": "device-roku-ultra", + "ApplicationVersion": "1.6.8", + "IsActive": true, + "SupportsMediaControl": true, + "SupportsRemoteControl": true, + "FullNowPlayingItem": {}, + "NowViewingItem": null, + "DeviceType": "Tv", + "NowPlayingQueue": [], + "NowPlayingQueueFullItems": [], + "HasCustomDeviceName": false, + "ServerId": "jellyfin-server-123", + "UserPrimaryImageTag": null, + "SupportedCommands": [] + } +] \ No newline at end of file diff --git a/dummy-data/lidarr/api/v1/health b/dummy-data/lidarr/api/v1/health new file mode 100644 index 0000000..af26676 --- /dev/null +++ b/dummy-data/lidarr/api/v1/health @@ -0,0 +1,35 @@ +[ + { + "source": "IndexerStatusCheck", + "type": "warning", + "message": "Indexer MusicBrainzDB is unavailable due to recent indexer errors: Service temporarily unavailable", + "wikiUrl": "https://wiki.servarr.com/lidarr/health#indexers-are-unavailable-due-to-recent-failures" + }, + { + "source": "ImportMechanismCheck", + "type": "ok", + "message": "No issues with import mechanism checks" + }, + { + "source": "DownloadClientStatusCheck", + "type": "ok", + "message": "All download clients are available" + }, + { + "source": "RootFolderCheck", + "type": "error", + "message": "Missing root folder: /music", + "wikiUrl": "https://wiki.servarr.com/lidarr/health#missing-root-folder" + }, + { + "source": "UpdateCheck", + "type": "ok", + "message": "Update available: 1.3.6.3557 -> 2.0.7.3849" + }, + { + "source": "MetadataProviderCheck", + "type": "warning", + "message": "Metadata provider Last.fm API key is invalid or expired", + "wikiUrl": "https://wiki.servarr.com/lidarr/health#metadata-provider-issues" + } +] \ No newline at end of file diff --git a/dummy-data/lidarr/api/v1/queue/status b/dummy-data/lidarr/api/v1/queue/status new file mode 100644 index 0000000..cc7e0d1 --- /dev/null +++ b/dummy-data/lidarr/api/v1/queue/status @@ -0,0 +1,7 @@ +{ + "totalCount": 4, + "count": 4, + "unknownCount": 0, + "errors": false, + "warnings": false +} \ No newline at end of file diff --git a/dummy-data/lidarr/api/v1/wanted/missing b/dummy-data/lidarr/api/v1/wanted/missing new file mode 100644 index 0000000..6b81a1b --- /dev/null +++ b/dummy-data/lidarr/api/v1/wanted/missing @@ -0,0 +1,179 @@ +{ + "page": 1, + "pageSize": 20, + "sortKey": "releaseDate", + "sortDirection": "descending", + "totalRecords": 7, + "records": [ + { + "artistId": 1, + "albumId": 12345, + "foreignAlbumId": "mbid-123-456-789", + "title": "Dark Side of the Moon", + "disambiguation": "", + "overview": "The eighth studio album by Pink Floyd, released in 1973.", + "artistName": "Pink Floyd", + "foreignArtistId": "mbid-artist-123", + "monitored": true, + "anyReleaseOk": true, + "profileId": 1, + "duration": 2580000, + "albumType": "Album", + "secondaryTypes": [], + "mediumCount": 1, + "releaseDate": "1973-03-01T00:00:00Z", + "releases": [ + { + "id": 67890, + "albumId": 12345, + "foreignReleaseId": "mbid-release-123", + "title": "Dark Side of the Moon", + "status": "Official", + "duration": 2580000, + "trackCount": 10, + "mediumCount": 1, + "disambiguation": "", + "country": ["US"], + "label": ["Harvest", "Capitol"], + "monitored": true + } + ], + "genres": ["Progressive Rock", "Psychedelic Rock"], + "media": [ + { + "mediumNumber": 1, + "mediumName": "", + "mediumFormat": "CD" + } + ], + "artist": { + "artistName": "Pink Floyd", + "foreignArtistId": "mbid-artist-123", + "nameSlug": "pink-floyd", + "overview": "English rock band formed in London in 1965.", + "disambiguation": "", + "links": [], + "images": [], + "path": "/music/Pink Floyd", + "qualityProfileId": 1, + "metadataProfileId": 1, + "monitored": true, + "monitorNewItems": "all", + "genres": ["Progressive Rock", "Psychedelic Rock", "Art Rock"], + "cleanName": "pinkfloyd", + "sortName": "Pink Floyd", + "tags": [], + "added": "2024-01-01T00:00:00Z", + "ratings": { + "votes": 54321, + "value": 9.2 + }, + "statistics": { + "albumCount": 15, + "trackFileCount": 142, + "trackCount": 149, + "totalTrackCount": 149, + "sizeOnDisk": 7516192768, + "percentOfTracks": 95.3 + }, + "id": 1 + }, + "images": [], + "links": [], + "statistics": { + "trackFileCount": 0, + "trackCount": 10, + "totalTrackCount": 10, + "sizeOnDisk": 0, + "percentOfTracks": 0.0 + }, + "grabbed": false, + "id": 12345 + }, + { + "artistId": 2, + "albumId": 23456, + "foreignAlbumId": "mbid-234-567-890", + "title": "OK Computer", + "disambiguation": "", + "overview": "The third studio album by Radiohead, released in 1997.", + "artistName": "Radiohead", + "foreignArtistId": "mbid-artist-234", + "monitored": true, + "anyReleaseOk": true, + "profileId": 1, + "duration": 3230000, + "albumType": "Album", + "secondaryTypes": [], + "mediumCount": 1, + "releaseDate": "1997-06-16T00:00:00Z", + "releases": [ + { + "id": 78901, + "albumId": 23456, + "foreignReleaseId": "mbid-release-234", + "title": "OK Computer", + "status": "Official", + "duration": 3230000, + "trackCount": 12, + "mediumCount": 1, + "disambiguation": "", + "country": ["GB"], + "label": ["Parlophone", "Capitol"], + "monitored": true + } + ], + "genres": ["Alternative Rock", "Art Rock"], + "media": [ + { + "mediumNumber": 1, + "mediumName": "", + "mediumFormat": "CD" + } + ], + "artist": { + "artistName": "Radiohead", + "foreignArtistId": "mbid-artist-234", + "nameSlug": "radiohead", + "overview": "English rock band formed in Abingdon, Oxfordshire, in 1985.", + "disambiguation": "", + "links": [], + "images": [], + "path": "/music/Radiohead", + "qualityProfileId": 1, + "metadataProfileId": 1, + "monitored": true, + "monitorNewItems": "all", + "genres": ["Alternative Rock", "Art Rock", "Electronic"], + "cleanName": "radiohead", + "sortName": "Radiohead", + "tags": [], + "added": "2024-01-01T00:00:00Z", + "ratings": { + "votes": 45678, + "value": 8.9 + }, + "statistics": { + "albumCount": 9, + "trackFileCount": 89, + "trackCount": 95, + "totalTrackCount": 95, + "sizeOnDisk": 4831838208, + "percentOfTracks": 93.7 + }, + "id": 2 + }, + "images": [], + "links": [], + "statistics": { + "trackFileCount": 0, + "trackCount": 12, + "totalTrackCount": 12, + "sizeOnDisk": 0, + "percentOfTracks": 0.0 + }, + "grabbed": false, + "id": 23456 + } + ] +} \ No newline at end of file diff --git a/dummy-data/linkding/api/bookmarks b/dummy-data/linkding/api/bookmarks new file mode 100644 index 0000000..9701f65 --- /dev/null +++ b/dummy-data/linkding/api/bookmarks @@ -0,0 +1,61 @@ +{ + "count": 12, + "next": null, + "previous": null, + "results": [ + { + "id": 1, + "url": "https://github.com/bastienwirtz/homer", + "title": "Homer - A very simple static homepage for your server", + "description": "A dead simple static HOMepage for your servER to keep your services on hand, from a simple yaml configuration file.", + "notes": "", + "website_title": "GitHub", + "website_description": "GitHub is where over 100 million developers shape the future of software, together.", + "web_archive_snapshot_url": "", + "favicon_url": "https://github.githubassets.com/favicons/favicon.svg", + "preview_image_url": "", + "is_archived": false, + "unread": false, + "shared": false, + "tag_names": ["selfhosted", "dashboard", "yaml"], + "date_added": "2024-01-15T10:30:00.123456Z", + "date_modified": "2024-01-15T10:30:00.123456Z" + }, + { + "id": 2, + "url": "https://docs.docker.com/", + "title": "Docker Documentation", + "description": "Official Docker documentation with guides, references, and tutorials for containerization.", + "notes": "Essential for container management", + "website_title": "Docker Docs", + "website_description": "Docker helps developers build, share, run, and verify applications anywhere.", + "web_archive_snapshot_url": "", + "favicon_url": "https://docs.docker.com/favicons/docs@2x.ico", + "preview_image_url": "", + "is_archived": false, + "unread": false, + "shared": false, + "tag_names": ["docker", "containers", "documentation"], + "date_added": "2024-01-14T15:20:00.123456Z", + "date_modified": "2024-01-14T15:20:00.123456Z" + }, + { + "id": 3, + "url": "https://nginx.org/en/docs/", + "title": "nginx documentation", + "description": "Official nginx web server documentation covering installation, configuration, and modules.", + "notes": "", + "website_title": "nginx", + "website_description": "nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server.", + "web_archive_snapshot_url": "", + "favicon_url": "https://nginx.org/favicon.ico", + "preview_image_url": "", + "is_archived": false, + "unread": false, + "shared": false, + "tag_names": ["nginx", "webserver", "proxy"], + "date_added": "2024-01-13T09:45:00.123456Z", + "date_modified": "2024-01-13T09:45:00.123456Z" + } + ] +} \ No newline at end of file diff --git a/dummy-data/matrix/_matrix/federation/v1/version b/dummy-data/matrix/_matrix/federation/v1/version new file mode 100644 index 0000000..fbc4e1a --- /dev/null +++ b/dummy-data/matrix/_matrix/federation/v1/version @@ -0,0 +1,6 @@ +{ + "server": { + "name": "Synapse", + "version": "1.99.0" + } +} \ No newline at end of file diff --git a/dummy-data/mealie/api/admin/about/statistics b/dummy-data/mealie/api/admin/about/statistics new file mode 100644 index 0000000..80d793f --- /dev/null +++ b/dummy-data/mealie/api/admin/about/statistics @@ -0,0 +1,18 @@ +{ + "totalRecipes": 247, + "totalUsers": 5, + "totalGroups": 2, + "totalCategories": 18, + "totalTags": 42, + "totalTools": 15, + "totalMealPlans": 156, + "totalShoppingLists": 28, + "totalComments": 89, + "lastUpdated": "2024-01-15T10:30:00Z", + "version": "1.0.0", + "demoStatus": false, + "allowSignup": true, + "defaultGroup": "Home", + "buildVersion": "v1.0.0-1234567", + "apiVersion": "v1" +} \ No newline at end of file diff --git a/dummy-data/mealie/api/groups/mealplans/today b/dummy-data/mealie/api/groups/mealplans/today new file mode 100644 index 0000000..82e3ffa --- /dev/null +++ b/dummy-data/mealie/api/groups/mealplans/today @@ -0,0 +1,64 @@ +[ + { + "id": "meal-123-abc", + "date": "2024-01-15", + "entryType": "dinner", + "title": "Dinner", + "text": "", + "recipe": { + "id": "recipe-456-def", + "name": "Chicken Tikka Masala", + "slug": "chicken-tikka-masala", + "image": "recipe-456-def.webp", + "description": "Creamy tomato-based curry with tender chicken pieces and aromatic spices", + "recipeCategory": [ + { + "id": "cat-1", + "name": "Indian", + "slug": "indian" + }, + { + "id": "cat-2", + "name": "Main Course", + "slug": "main-course" + } + ], + "tags": [ + { + "id": "tag-1", + "name": "Curry", + "slug": "curry" + }, + { + "id": "tag-2", + "name": "Chicken", + "slug": "chicken" + }, + { + "id": "tag-3", + "name": "Spicy", + "slug": "spicy" + } + ], + "rating": 4.5, + "totalTime": "45 minutes", + "prepTime": "15 minutes", + "cookTime": "30 minutes", + "performTime": null, + "servings": 4, + "dateAdded": "2024-01-10T00:00:00Z", + "dateUpdated": "2024-01-14T12:30:00Z", + "createdBy": { + "id": "user-789", + "username": "chef_sarah", + "fullName": "Sarah Mitchell" + }, + "updateBy": { + "id": "user-789", + "username": "chef_sarah", + "fullName": "Sarah Mitchell" + } + }, + "groupId": "group-default-123" + } +] \ No newline at end of file diff --git a/dummy-data/medusa/api/v2/config b/dummy-data/medusa/api/v2/config new file mode 100644 index 0000000..2a1cd54 --- /dev/null +++ b/dummy-data/medusa/api/v2/config @@ -0,0 +1,108 @@ +{ + "system": { + "news": { + "unread": 3, + "latest": [ + { + "title": "Medusa v1.0.19 Released", + "date": "2024-01-14", + "content": "Bug fixes and performance improvements", + "read": false + }, + { + "title": "New indexer support added", + "date": "2024-01-12", + "content": "Support for additional torrent indexers", + "read": false + }, + { + "title": "Database maintenance completed", + "date": "2024-01-10", + "content": "Weekly database optimization finished", + "read": false + } + ] + }, + "version": { + "version": "1.0.19", + "branch": "master", + "commit": "abc123def456", + "dbVersion": 44, + "pythonVersion": "3.11.7" + }, + "os": { + "platform": "Linux", + "release": "6.5.0-15-generic", + "version": "#15~22.04.1-Ubuntu" + }, + "memory": { + "used": 512.5, + "total": 8192.0, + "percent": 6.3 + } + }, + "main": { + "logs": { + "numWarnings": 2, + "numErrors": 1, + "loggingLevels": [ + "DEBUG", + "INFO", + "WARNING", + "ERROR" + ], + "currentLevel": "INFO" + }, + "general": { + "webHost": "0.0.0.0", + "webPort": 8081, + "webRoot": "", + "launchBrowser": false, + "versionNotify": true, + "autoUpdate": false, + "logDir": "/app/Logs", + "dataDir": "/app/Data", + "configVersion": 12 + }, + "showDefaults": { + "status": "Skipped/Wanted/Snatched/Downloaded", + "statusAfter": "Downloaded", + "season_folders": true, + "anime": false, + "scene": false, + "archive_firstmatch": false, + "quality_default": "Standard Definition", + "subtitles": false, + "flatten_folders": false, + "indexer_default": "tvdb", + "indexer_timeout": 20, + "skip_removed_files": false + } + }, + "search": { + "general": { + "randomize_providers": false, + "download_propers": true, + "check_propers_interval": "daily", + "propers_search_days": 2, + "backlog_days": 7, + "cache_trimming": false, + "max_cache_age": 30 + }, + "nzb": { + "nzbs": false, + "nzbs_uid": "", + "nzbs_hash": "" + }, + "torrent": { + "torrent_method": "blackhole", + "torrent_path": "", + "torrent_seed_time": 0, + "torrent_paused": false, + "torrent_high_bandwidth": false, + "torrent_label": "", + "torrent_label_anime": "", + "torrent_verify_cert": false + } + } +} \ No newline at end of file diff --git a/dummy-data/nextcloud/status.php b/dummy-data/nextcloud/status.php new file mode 100644 index 0000000..058e022 --- /dev/null +++ b/dummy-data/nextcloud/status.php @@ -0,0 +1,10 @@ +{ + "installed": true, + "maintenance": false, + "needsDbUpgrade": false, + "version": "28.0.2.1", + "versionstring": "28.0.2", + "edition": "", + "productname": "Nextcloud", + "extendedSupport": false +} \ No newline at end of file diff --git a/dummy-data/paperlessng/api/documents b/dummy-data/paperlessng/api/documents new file mode 100644 index 0000000..de575ec --- /dev/null +++ b/dummy-data/paperlessng/api/documents @@ -0,0 +1,88 @@ +{ + "count": 1847, + "next": "http://paperless.local/api/documents/?page=2", + "previous": null, + "all": [1, 2, 3, 4, 5], + "results": [ + { + "id": 1847, + "correspondent": 15, + "document_type": 12, + "storage_path": null, + "title": "Bank Statement - January 2024", + "content": "Monthly bank statement with account summary and transaction details", + "tags": [8, 15, 23], + "created": "2024-01-15T10:30:00Z", + "created_date": "2024-01-15", + "modified": "2024-01-15T10:30:00Z", + "added": "2024-01-15T10:30:00Z", + "archive_serial_number": "ASN2024001847", + "original_file_name": "bank_statement_202401.pdf", + "archived_file_name": "0001847.pdf" + }, + { + "id": 1846, + "correspondent": 23, + "document_type": 5, + "storage_path": null, + "title": "Utility Bill - Electric Company", + "content": "Monthly electricity bill for December 2023", + "tags": [12, 18], + "created": "2024-01-14T16:45:00Z", + "created_date": "2024-01-14", + "modified": "2024-01-14T16:45:00Z", + "added": "2024-01-14T16:45:00Z", + "archive_serial_number": "ASN2024001846", + "original_file_name": "electric_bill_202312.pdf", + "archived_file_name": "0001846.pdf" + }, + { + "id": 1845, + "correspondent": 7, + "document_type": 18, + "storage_path": null, + "title": "Insurance Policy Renewal Notice", + "content": "Annual home insurance policy renewal documentation", + "tags": [5, 11, 19], + "created": "2024-01-13T14:20:00Z", + "created_date": "2024-01-13", + "modified": "2024-01-13T14:20:00Z", + "added": "2024-01-13T14:20:00Z", + "archive_serial_number": "ASN2024001845", + "original_file_name": "insurance_renewal_2024.pdf", + "archived_file_name": "0001845.pdf" + }, + { + "id": 1844, + "correspondent": 31, + "document_type": 9, + "storage_path": null, + "title": "Tax Document - W2 Form 2023", + "content": "Annual W2 tax form from employer", + "tags": [2, 14, 25], + "created": "2024-01-12T09:15:00Z", + "created_date": "2024-01-12", + "modified": "2024-01-12T09:15:00Z", + "added": "2024-01-12T09:15:00Z", + "archive_serial_number": "ASN2024001844", + "original_file_name": "w2_form_2023.pdf", + "archived_file_name": "0001844.pdf" + }, + { + "id": 1843, + "correspondent": 42, + "document_type": 21, + "storage_path": null, + "title": "Medical Records - Annual Checkup", + "content": "Annual physical examination results and health summary", + "tags": [6, 17, 28], + "created": "2024-01-11T11:30:00Z", + "created_date": "2024-01-11", + "modified": "2024-01-11T11:30:00Z", + "added": "2024-01-11T11:30:00Z", + "archive_serial_number": "ASN2024001843", + "original_file_name": "medical_checkup_2024.pdf", + "archived_file_name": "0001843.pdf" + } + ] +} \ No newline at end of file diff --git a/dummy-data/plex/library/sections b/dummy-data/plex/library/sections new file mode 100644 index 0000000..982a6ad --- /dev/null +++ b/dummy-data/plex/library/sections @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/dummy-data/plex/library/sections1all b/dummy-data/plex/library/sections1all new file mode 100644 index 0000000..e29c733 --- /dev/null +++ b/dummy-data/plex/library/sections1all @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/dummy-data/plex/library/sections2all b/dummy-data/plex/library/sections2all new file mode 100644 index 0000000..bd7ea41 --- /dev/null +++ b/dummy-data/plex/library/sections2all @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/dummy-data/plex/status/sessions b/dummy-data/plex/status/sessions new file mode 100644 index 0000000..7a1a1ff --- /dev/null +++ b/dummy-data/plex/status/sessions @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/dummy-data/portainer/api/endpoints b/dummy-data/portainer/api/endpoints new file mode 100644 index 0000000..124afd3 --- /dev/null +++ b/dummy-data/portainer/api/endpoints @@ -0,0 +1,94 @@ +[ + { + "Id": 1, + "Name": "local", + "Type": 1, + "URL": "unix:///var/run/docker.sock", + "GroupId": 1, + "PublicURL": "", + "Status": 1, + "UserAccessPolicies": {}, + "TeamAccessPolicies": {}, + "Extensions": [], + "TagIds": [], + "AssociatedEndpoints": [], + "Snapshots": [ + { + "Time": 1705317600, + "DockerVersion": "24.0.7", + "Swarm": false, + "TotalCPU": 8, + "TotalMemory": 16777216000, + "RunningContainerCount": 12, + "StoppedContainerCount": 5, + "HealthyContainerCount": 10, + "UnhealthyContainerCount": 0, + "VolumeCount": 25, + "ImageCount": 47, + "ServiceCount": 0, + "StackCount": 0, + "DockerRootDir": "/var/lib/docker" + } + ], + "Kubernetes": { + "Snapshots": [] + }, + "Agent": { + "NodeName": "", + "ChecklnInterval": 5, + "Version": "" + }, + "Edge": { + "AsyncMode": false, + "PingInterval": 60, + "CommandInterval": 5, + "SnapshotInterval": 5 + } + }, + { + "Id": 2, + "Name": "production", + "Type": 2, + "URL": "tcp://prod-docker:2376", + "GroupId": 1, + "PublicURL": "https://prod-docker.example.com", + "Status": 1, + "UserAccessPolicies": {}, + "TeamAccessPolicies": {}, + "Extensions": [], + "TagIds": [], + "AssociatedEndpoints": [], + "Snapshots": [ + { + "Time": 1705317600, + "DockerVersion": "24.0.7", + "Swarm": false, + "TotalCPU": 16, + "TotalMemory": 33554432000, + "RunningContainerCount": 25, + "StoppedContainerCount": 3, + "HealthyContainerCount": 23, + "UnhealthyContainerCount": 2, + "VolumeCount": 40, + "ImageCount": 75, + "ServiceCount": 0, + "StackCount": 0, + "DockerRootDir": "/var/lib/docker" + } + ], + "Kubernetes": { + "Snapshots": [] + }, + "Agent": { + "NodeName": "", + "ChecklnInterval": 5, + "Version": "" + }, + "Edge": { + "AsyncMode": false, + "PingInterval": 60, + "CommandInterval": 5, + "SnapshotInterval": 5 + } + } +] \ No newline at end of file diff --git a/dummy-data/portainer/api/endpoints.backup b/dummy-data/portainer/api/endpoints.backup new file mode 100644 index 0000000..124afd3 --- /dev/null +++ b/dummy-data/portainer/api/endpoints.backup @@ -0,0 +1,94 @@ +[ + { + "Id": 1, + "Name": "local", + "Type": 1, + "URL": "unix:///var/run/docker.sock", + "GroupId": 1, + "PublicURL": "", + "Status": 1, + "UserAccessPolicies": {}, + "TeamAccessPolicies": {}, + "Extensions": [], + "TagIds": [], + "AssociatedEndpoints": [], + "Snapshots": [ + { + "Time": 1705317600, + "DockerVersion": "24.0.7", + "Swarm": false, + "TotalCPU": 8, + "TotalMemory": 16777216000, + "RunningContainerCount": 12, + "StoppedContainerCount": 5, + "HealthyContainerCount": 10, + "UnhealthyContainerCount": 0, + "VolumeCount": 25, + "ImageCount": 47, + "ServiceCount": 0, + "StackCount": 0, + "DockerRootDir": "/var/lib/docker" + } + ], + "Kubernetes": { + "Snapshots": [] + }, + "Agent": { + "NodeName": "", + "ChecklnInterval": 5, + "Version": "" + }, + "Edge": { + "AsyncMode": false, + "PingInterval": 60, + "CommandInterval": 5, + "SnapshotInterval": 5 + } + }, + { + "Id": 2, + "Name": "production", + "Type": 2, + "URL": "tcp://prod-docker:2376", + "GroupId": 1, + "PublicURL": "https://prod-docker.example.com", + "Status": 1, + "UserAccessPolicies": {}, + "TeamAccessPolicies": {}, + "Extensions": [], + "TagIds": [], + "AssociatedEndpoints": [], + "Snapshots": [ + { + "Time": 1705317600, + "DockerVersion": "24.0.7", + "Swarm": false, + "TotalCPU": 16, + "TotalMemory": 33554432000, + "RunningContainerCount": 25, + "StoppedContainerCount": 3, + "HealthyContainerCount": 23, + "UnhealthyContainerCount": 2, + "VolumeCount": 40, + "ImageCount": 75, + "ServiceCount": 0, + "StackCount": 0, + "DockerRootDir": "/var/lib/docker" + } + ], + "Kubernetes": { + "Snapshots": [] + }, + "Agent": { + "NodeName": "", + "ChecklnInterval": 5, + "Version": "" + }, + "Edge": { + "AsyncMode": false, + "PingInterval": 60, + "CommandInterval": 5, + "SnapshotInterval": 5 + } + } +] \ No newline at end of file diff --git a/dummy-data/portainer/api/status b/dummy-data/portainer/api/status new file mode 100644 index 0000000..7e892da --- /dev/null +++ b/dummy-data/portainer/api/status @@ -0,0 +1,38 @@ +{ + "Version": "2.19.4", + "APIVersion": "2.19.4", + "DatabaseVersion": "34", + "Build": { + "BuildNumber": "1234567890", + "ImageTag": "2.19.4-alpine", + "NodejsVersion": "v18.17.1", + "YarnVersion": "1.22.19", + "WebpackVersion": "5.88.2", + "GoVersion": "go1.21.5" + }, + "InstanceID": "portainer-instance-abc123def456", + "Edition": "CE", + "DemoEnvironment": { + "Enabled": false, + "URL": "" + }, + "AnalyticsEnabled": false, + "AuthenticationMethod": 1, + "Users": 3, + "ValidLicense": false, + "LicenseInfo": { + "Company": "", + "CreatedAt": 0, + "ExpiresAt": 0, + "LicenseKey": "", + "ProductEdition": "", + "Seats": 0, + "Valid": false + }, + "RequiredPasswordLength": 12, + "UserSessionTimeout": "8h", + "Features": { + "EdgeDeviceUntrustedMode": false + }, + "EdgeAgentCheckinIntervalSeconds": 5 +} \ No newline at end of file diff --git a/dummy-data/prometheus/api/v1/alerts b/dummy-data/prometheus/api/v1/alerts new file mode 100644 index 0000000..b09c90a --- /dev/null +++ b/dummy-data/prometheus/api/v1/alerts @@ -0,0 +1,99 @@ +{ + "status": "success", + "data": { + "alerts": [ + { + "labels": { + "alertname": "HighCPUUsage", + "instance": "localhost:9090", + "job": "prometheus", + "severity": "warning" + }, + "annotations": { + "description": "CPU usage is above 80% for more than 5 minutes", + "summary": "High CPU usage detected" + }, + "state": "firing", + "activeAt": "2024-01-15T10:30:00.000Z", + "value": "85.2" + }, + { + "labels": { + "alertname": "HighMemoryUsage", + "instance": "web-server-01:9090", + "job": "node-exporter", + "severity": "critical" + }, + "annotations": { + "description": "Memory usage is above 90% for more than 10 minutes", + "summary": "Critical memory usage detected" + }, + "state": "firing", + "activeAt": "2024-01-15T10:25:00.000Z", + "value": "92.8" + }, + { + "labels": { + "alertname": "DiskSpaceLow", + "instance": "db-server-01:9090", + "job": "node-exporter", + "severity": "warning", + "device": "/dev/sda1" + }, + "annotations": { + "description": "Disk space is below 20% on {{ $labels.device }}", + "summary": "Low disk space warning" + }, + "state": "pending", + "activeAt": "2024-01-15T11:00:00.000Z", + "value": "18.5" + }, + { + "labels": { + "alertname": "ServiceDown", + "instance": "api-server-02:8080", + "job": "api-health-check", + "severity": "critical", + "service": "user-api" + }, + "annotations": { + "description": "Service {{ $labels.service }} is not responding", + "summary": "Service is down" + }, + "state": "pending", + "activeAt": "2024-01-15T11:10:00.000Z", + "value": "0" + }, + { + "labels": { + "alertname": "DatabaseConnections", + "instance": "db-server-01:5432", + "job": "postgres-exporter", + "severity": "info" + }, + "annotations": { + "description": "Database connection count is normal", + "summary": "Database connections stable" + }, + "state": "inactive", + "activeAt": "2024-01-15T09:00:00.000Z", + "value": "45" + }, + { + "labels": { + "alertname": "HTTPResponseTime", + "instance": "web-server-02:80", + "job": "blackbox-exporter", + "severity": "info" + }, + "annotations": { + "description": "HTTP response time is within acceptable limits", + "summary": "Response time normal" + }, + "state": "inactive", + "activeAt": "2024-01-15T08:30:00.000Z", + "value": "150" + } + ] + } +} \ No newline at end of file diff --git a/dummy-data/prowlarr/api/v1/health b/dummy-data/prowlarr/api/v1/health new file mode 100644 index 0000000..5809a87 --- /dev/null +++ b/dummy-data/prowlarr/api/v1/health @@ -0,0 +1,41 @@ +[ + { + "source": "IndexerStatusCheck", + "type": "warning", + "message": "Indexer 1337x has been disabled due to recent failures: Connection timeout after 30 seconds", + "wikiUrl": "https://wiki.servarr.com/prowlarr/health#indexers-are-unavailable-due-to-recent-failures" + }, + { + "source": "IndexerRSSCheck", + "type": "ok", + "message": "All indexer RSS feeds are functioning normally" + }, + { + "source": "ApplicationStatusCheck", + "type": "warning", + "message": "Application Sonarr sync failed: Unable to connect to Sonarr at http://sonarr:8989", + "wikiUrl": "https://wiki.servarr.com/prowlarr/health#applications-are-unavailable-due-to-recent-failures" + }, + { + "source": "UpdateCheck", + "type": "ok", + "message": "Update available: 1.11.4.4173 -> 1.12.2.4211" + }, + { + "source": "IndexerSearchCheck", + "type": "error", + "message": "Indexer TorrentLeech returned invalid search results: Malformed JSON response", + "wikiUrl": "https://wiki.servarr.com/prowlarr/health#indexer-search-failures" + }, + { + "source": "ProxyCheck", + "type": "ok", + "message": "No proxy configuration issues detected" + }, + { + "source": "IndexerLongTermStatusCheck", + "type": "warning", + "message": "Indexer RARBG has been failing for more than 6 hours: HTTP 403 Forbidden", + "wikiUrl": "https://wiki.servarr.com/prowlarr/health#indexers-are-unavailable-due-to-recent-failures" + } +] \ No newline at end of file diff --git a/dummy-data/radarr/api/v3/health b/dummy-data/radarr/api/v3/health new file mode 100644 index 0000000..67ffd2b --- /dev/null +++ b/dummy-data/radarr/api/v3/health @@ -0,0 +1,35 @@ +[ + { + "source": "IndexerStatusCheck", + "type": "warning", + "message": "Indexer TorrentDay is unavailable due to recent indexer errors: HTTP 503 Service Unavailable", + "wikiUrl": "https://wiki.servarr.com/radarr/health#indexers-are-unavailable-due-to-recent-failures" + }, + { + "source": "ImportMechanismCheck", + "type": "ok", + "message": "No issues with import mechanism checks" + }, + { + "source": "DownloadClientStatusCheck", + "type": "ok", + "message": "All download clients are available" + }, + { + "source": "RootFolderCheck", + "type": "warning", + "message": "Missing root folder: /movies", + "wikiUrl": "https://wiki.servarr.com/radarr/health#missing-root-folder" + }, + { + "source": "UpdateCheck", + "type": "ok", + "message": "Update available: 4.7.5.7809 -> 5.0.3.8127" + }, + { + "source": "DiskSpaceCheck", + "type": "error", + "message": "Disk space is critically low on /movies: 2.1 GB remaining", + "wikiUrl": "https://wiki.servarr.com/radarr/health#disk-space" + } +] \ No newline at end of file diff --git a/dummy-data/radarr/api/v3/queue b/dummy-data/radarr/api/v3/queue new file mode 100644 index 0000000..14785fd --- /dev/null +++ b/dummy-data/radarr/api/v3/queue @@ -0,0 +1,8 @@ +{ + "page": 1, + "pageSize": 20, + "sortKey": "progress", + "sortDirection": "descending", + "totalRecords": 2, + "records": [] +} \ No newline at end of file diff --git a/dummy-data/radarr/api/v3/queuedetails b/dummy-data/radarr/api/v3/queuedetails new file mode 100644 index 0000000..e459947 --- /dev/null +++ b/dummy-data/radarr/api/v3/queuedetails @@ -0,0 +1,16 @@ +[ + { + "movieId": 1, + "title": "Inception (2010)", + "trackedDownloadStatus": "ok", + "trackedDownloadState": "importPending", + "id": 1 + }, + { + "movieId": 2, + "title": "The Matrix (1999)", + "trackedDownloadStatus": "warning", + "trackedDownloadState": "downloading", + "id": 2 + } +] \ No newline at end of file diff --git a/dummy-data/radarr/api/v3/wanted/missing b/dummy-data/radarr/api/v3/wanted/missing new file mode 100644 index 0000000..2a0b134 --- /dev/null +++ b/dummy-data/radarr/api/v3/wanted/missing @@ -0,0 +1,161 @@ +{ + "page": 1, + "pageSize": 20, + "sortKey": "digitalRelease", + "sortDirection": "descending", + "totalRecords": 5, + "records": [ + { + "title": "Dune: Part Two", + "originalTitle": "Dune: Part Two", + "originalLanguage": { + "id": 1, + "name": "English" + }, + "alternateTitles": [], + "secondaryYear": null, + "secondaryYearSourceId": 0, + "sortTitle": "dune part two", + "sizeOnDisk": 0, + "status": "released", + "overview": "Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.", + "inCinemas": "2024-02-29T00:00:00Z", + "physicalRelease": "2024-05-14T00:00:00Z", + "digitalRelease": "2024-04-16T00:00:00Z", + "images": [], + "website": "", + "remotePoster": "", + "year": 2024, + "hasFile": false, + "youTubeTrailerId": "", + "studio": "Warner Bros. Pictures", + "path": "/movies/Dune Part Two (2024)", + "qualityProfileId": 1, + "monitored": true, + "minimumAvailability": "announced", + "isAvailable": true, + "folderName": "Dune Part Two (2024)", + "runtime": 166, + "cleanTitle": "duneparttwo", + "imdbId": "tt15239678", + "tmdbId": 693134, + "titleSlug": "dune-part-two-2024", + "certification": "PG-13", + "genres": ["Adventure", "Drama", "Science Fiction"], + "tags": [], + "added": "2024-01-10T00:00:00Z", + "ratings": { + "votes": 234567, + "value": 8.9 + }, + "movieFile": null, + "collection": { + "name": "Dune Collection", + "tmdbId": 726871, + "images": [] + }, + "popularity": 89.245, + "id": 3 + }, + { + "title": "Oppenheimer", + "originalTitle": "Oppenheimer", + "originalLanguage": { + "id": 1, + "name": "English" + }, + "alternateTitles": [], + "secondaryYear": null, + "secondaryYearSourceId": 0, + "sortTitle": "oppenheimer", + "sizeOnDisk": 0, + "status": "released", + "overview": "The story of J. Robert Oppenheimer's role in the development of the atomic bomb during World War II.", + "inCinemas": "2023-07-21T00:00:00Z", + "physicalRelease": "2023-11-21T00:00:00Z", + "digitalRelease": "2023-10-31T00:00:00Z", + "images": [], + "website": "", + "remotePoster": "", + "year": 2023, + "hasFile": false, + "youTubeTrailerId": "", + "studio": "Universal Pictures", + "path": "/movies/Oppenheimer (2023)", + "qualityProfileId": 1, + "monitored": true, + "minimumAvailability": "announced", + "isAvailable": true, + "folderName": "Oppenheimer (2023)", + "runtime": 180, + "cleanTitle": "oppenheimer", + "imdbId": "tt15398776", + "tmdbId": 872585, + "titleSlug": "oppenheimer-2023", + "certification": "R", + "genres": ["Drama", "History"], + "tags": [], + "added": "2024-01-05T00:00:00Z", + "ratings": { + "votes": 456789, + "value": 8.4 + }, + "movieFile": null, + "collection": null, + "popularity": 92.567, + "id": 4 + }, + { + "title": "Spider-Man: Across the Spider-Verse", + "originalTitle": "Spider-Man: Across the Spider-Verse", + "originalLanguage": { + "id": 1, + "name": "English" + }, + "alternateTitles": [], + "secondaryYear": null, + "secondaryYearSourceId": 0, + "sortTitle": "spider man across spider verse", + "sizeOnDisk": 0, + "status": "released", + "overview": "After reuniting with Gwen Stacy, Brooklyn's full-time, friendly neighborhood Spider-Man is catapulted across the Multiverse, where he encounters the Spider-Society.", + "inCinemas": "2023-06-02T00:00:00Z", + "physicalRelease": "2023-09-05T00:00:00Z", + "digitalRelease": "2023-08-08T00:00:00Z", + "images": [], + "website": "", + "remotePoster": "", + "year": 2023, + "hasFile": false, + "youTubeTrailerId": "", + "studio": "Sony Pictures Animation", + "path": "/movies/Spider-Man Across the Spider-Verse (2023)", + "qualityProfileId": 2, + "monitored": true, + "minimumAvailability": "announced", + "isAvailable": true, + "folderName": "Spider-Man Across the Spider-Verse (2023)", + "runtime": 140, + "cleanTitle": "spidermanacrossthespiderverse", + "imdbId": "tt9362722", + "tmdbId": 569094, + "titleSlug": "spider-man-across-the-spider-verse-2023", + "certification": "PG", + "genres": ["Animation", "Action", "Adventure"], + "tags": [], + "added": "2024-01-03T00:00:00Z", + "ratings": { + "votes": 345678, + "value": 8.7 + }, + "movieFile": null, + "collection": { + "name": "Spider-Verse Collection", + "tmdbId": 573436, + "images": [] + }, + "popularity": 85.432, + "id": 5 + } + ] +} \ No newline at end of file diff --git a/dummy-data/sabnzbd/api b/dummy-data/sabnzbd/api new file mode 100644 index 0000000..290561f --- /dev/null +++ b/dummy-data/sabnzbd/api @@ -0,0 +1,97 @@ +{ + "queue": { + "version": "4.1.0", + "paused": false, + "pause_int": "0", + "paused_all": false, + "diskspace1": "465.47", + "diskspace2": "465.47", + "diskspacetotal1": "931.51", + "diskspacetotal2": "931.51", + "speedlimit": "", + "speedlimit_abs": "", + "have_warnings": "0", + "finishaction": null, + "quota": "", + "left_quota": "0 ", + "cache_art": "0", + "cache_size": "0 B", + "kbpersec": "8547.82", + "speed": "8.35", + "mbleft": "2847.93", + "mb": "2847.93", + "noofslots": 3, + "noofslots_total": 8, + "status": "Downloading", + "timeleft": "0:05:41", + "eta": "22:15:41", + "slots": [ + { + "index": 0, + "nzo_id": "SABnzbd_nzo_abc123", + "unpackopts": "3", + "priority": "Normal", + "script": "None", + "filename": "Ubuntu.22.04.3.Desktop.amd64.iso", + "labels": [], + "password": "", + "cat": "software", + "mbleft": "1847.52", + "mb": "1847.52", + "size": "1.8 GB", + "sizeleft": "1.8 GB", + "percentage": "0", + "mbmissing": "0.00", + "direct_unpack": "0", + "status": "Downloading", + "timeleft": "0:03:41", + "eta": "unknown", + "avg_age": "4d" + }, + { + "index": 1, + "nzo_id": "SABnzbd_nzo_def456", + "unpackopts": "3", + "priority": "High", + "script": "None", + "filename": "Movie.Collection.2023.1080p.BluRay.x264", + "labels": ["movie"], + "password": "", + "cat": "movies", + "mbleft": "756.41", + "mb": "756.41", + "size": "756.4 MB", + "sizeleft": "756.4 MB", + "percentage": "12", + "mbmissing": "0.00", + "direct_unpack": "0", + "status": "Downloading", + "timeleft": "0:01:35", + "eta": "unknown", + "avg_age": "1d" + }, + { + "index": 2, + "nzo_id": "SABnzbd_nzo_ghi789", + "unpackopts": "3", + "priority": "Normal", + "script": "cleanup.py", + "filename": "TV.Show.S05E08.1080p.WEB.H264-GROUP", + "labels": ["tv"], + "password": "", + "cat": "tv", + "mbleft": "244.00", + "mb": "244.00", + "size": "244.0 MB", + "sizeleft": "244.0 MB", + "percentage": "65", + "mbmissing": "0.00", + "direct_unpack": "1", + "status": "Downloading", + "timeleft": "0:00:25", + "eta": "unknown", + "avg_age": "12h" + } + ] + } +} \ No newline at end of file diff --git a/dummy-data/scrutiny/api/summary b/dummy-data/scrutiny/api/summary new file mode 100644 index 0000000..0adeabc --- /dev/null +++ b/dummy-data/scrutiny/api/summary @@ -0,0 +1,162 @@ +{ + "success": true, + "data": { + "summary": { + "0x5000cca264eb01d7": { + "device": { + "wwn": "0x5000cca264eb01d7", + "device_name": "Samsung SSD 980 1TB", + "device_uuid": "WWN-0x5000cca264eb01d7", + "device_serial_id": "S64HNE0T123456A", + "device_label": "", + "manufacture": "Samsung", + "model_name": "Samsung SSD 980 1TB", + "interface_type": "nvme", + "interface_speed": "", + "serial_number": "S64HNE0T123456A", + "firmware": "2B4QGXA7", + "rotational_speed": 0, + "capacity": 1000204886016, + "form_factor": "", + "smart_support": true, + "device_protocol": "NVMe", + "device_type": "", + "device_status": 0, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T11:45:00Z", + "deleted_at": null + }, + "smart": { + "collector_date": "2024-01-15T11:45:00Z", + "temp": 35, + "power_on_hours": 2847, + "power_cycle_count": 1247 + } + }, + "0x5000cca264eb01d8": { + "device": { + "wwn": "0x5000cca264eb01d8", + "device_name": "Western Digital WD Blue 2TB", + "device_uuid": "WWN-0x5000cca264eb01d8", + "device_serial_id": "WD-WCC4N7DS2468", + "device_label": "", + "manufacture": "Western Digital", + "model_name": "WDC WD20EZAZ-00GXCB0", + "interface_type": "ata", + "interface_speed": "", + "serial_number": "WD-WCC4N7DS2468", + "firmware": "80.00A80", + "rotational_speed": 5400, + "capacity": 2000398934016, + "form_factor": "", + "smart_support": true, + "device_protocol": "ATA", + "device_type": "", + "device_status": 0, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T11:45:00Z", + "deleted_at": null + }, + "smart": { + "collector_date": "2024-01-15T11:45:00Z", + "temp": 41, + "power_on_hours": 8942, + "power_cycle_count": 892 + } + }, + "0x500a0751e6b8a7c3": { + "device": { + "wwn": "0x500a0751e6b8a7c3", + "device_name": "Seagate Barracuda 4TB", + "device_uuid": "WWN-0x500a0751e6b8a7c3", + "device_serial_id": "ST4000DM004-2CV104", + "device_label": "", + "manufacture": "Seagate", + "model_name": "ST4000DM004-2CV104", + "interface_type": "ata", + "interface_speed": "", + "serial_number": "ZFN123AB", + "firmware": "0001", + "rotational_speed": 5400, + "capacity": 4000787030016, + "form_factor": "", + "smart_support": true, + "device_protocol": "ATA", + "device_type": "", + "device_status": 2, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T11:45:00Z", + "deleted_at": null + }, + "smart": { + "collector_date": "2024-01-15T11:45:00Z", + "temp": 47, + "power_on_hours": 12456, + "power_cycle_count": 456 + } + }, + "0x5000cca264eb01d9": { + "device": { + "wwn": "0x5000cca264eb01d9", + "device_name": "Kingston NV2 500GB", + "device_uuid": "WWN-0x5000cca264eb01d9", + "device_serial_id": "50026B7784123456", + "device_label": "", + "manufacture": "Kingston", + "model_name": "KINGSTON SNV2S500G", + "interface_type": "nvme", + "interface_speed": "", + "serial_number": "50026B7784123456", + "firmware": "SNV2S2.1.0", + "rotational_speed": 0, + "capacity": 500107862016, + "form_factor": "", + "smart_support": true, + "device_protocol": "NVMe", + "device_type": "", + "device_status": 4, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T11:45:00Z", + "deleted_at": null + }, + "smart": { + "collector_date": "2024-01-15T11:45:00Z", + "temp": 52, + "power_on_hours": 1247, + "power_cycle_count": 89 + } + }, + "0x5000cca264eb01da": { + "device": { + "wwn": "0x5000cca264eb01da", + "device_name": "Crucial MX500 1TB", + "device_uuid": "WWN-0x5000cca264eb01da", + "device_serial_id": "194251A12345", + "device_label": "", + "manufacture": "Crucial", + "model_name": "CT1000MX500SSD1", + "interface_type": "ata", + "interface_speed": "", + "serial_number": "194251A12345", + "firmware": "M3CR033", + "rotational_speed": 0, + "capacity": 1000204886016, + "form_factor": "", + "smart_support": true, + "device_protocol": "ATA", + "device_type": "", + "device_status": 0, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T11:45:00Z", + "deleted_at": null + }, + "smart": { + "collector_date": "2024-01-15T11:45:00Z", + "temp": 39, + "power_on_hours": 5642, + "power_cycle_count": 1089 + } + } + } + } +} \ No newline at end of file diff --git a/dummy-data/sonarr/api/v3/health b/dummy-data/sonarr/api/v3/health new file mode 100644 index 0000000..38bc506 --- /dev/null +++ b/dummy-data/sonarr/api/v3/health @@ -0,0 +1,29 @@ +[ + { + "source": "IndexerStatusCheck", + "type": "warning", + "message": "Indexer MyIndexer is unavailable due to recent indexer errors: Request timeout", + "wikiUrl": "https://wiki.servarr.com/sonarr/health#indexers-are-unavailable-due-to-recent-failures" + }, + { + "source": "ImportMechanismCheck", + "type": "ok", + "message": "No issues with import mechanism checks" + }, + { + "source": "DownloadClientStatusCheck", + "type": "ok", + "message": "All download clients are available" + }, + { + "source": "RootFolderCheck", + "type": "warning", + "message": "Missing root folder: /media/tv", + "wikiUrl": "https://wiki.servarr.com/sonarr/health#missing-root-folder" + }, + { + "source": "UpdateCheck", + "type": "ok", + "message": "Update available: 3.0.10.1567 -> 4.0.1.929" + } +] \ No newline at end of file diff --git a/dummy-data/sonarr/api/v3/queue b/dummy-data/sonarr/api/v3/queue new file mode 100644 index 0000000..64406b2 --- /dev/null +++ b/dummy-data/sonarr/api/v3/queue @@ -0,0 +1,77 @@ +{ + "page": 1, + "pageSize": 20, + "sortKey": "progress", + "sortDirection": "descending", + "totalRecords": 3, + "records": [ + { + "seriesId": 1, + "episodeId": 12345, + "seasonNumber": 5, + "episodeNumber": 8, + "title": "The Office S05E08 - Business Trip", + "size": 1073741824, + "sizeleft": 0, + "timeleft": "00:00:00", + "estimatedCompletionTime": "2024-01-15T10:30:00Z", + "status": "completed", + "trackedDownloadStatus": "ok", + "trackedDownloadState": "importPending", + "statusMessages": [], + "downloadId": "download123abc", + "protocol": "torrent", + "downloadClient": "qBittorrent", + "indexer": "Prowlarr", + "outputPath": "/downloads/complete/The.Office.US.S05E08.720p.WEB.x264-GROUP", + "id": 1 + }, + { + "seriesId": 2, + "episodeId": 67890, + "seasonNumber": 3, + "episodeNumber": 15, + "title": "Breaking Bad S03E15 - Half Measures", + "size": 2147483648, + "sizeleft": 536870912, + "timeleft": "00:15:23", + "estimatedCompletionTime": "2024-01-15T10:45:23Z", + "status": "downloading", + "trackedDownloadStatus": "ok", + "trackedDownloadState": "downloading", + "statusMessages": [], + "downloadId": "download456def", + "protocol": "torrent", + "downloadClient": "qBittorrent", + "indexer": "Prowlarr", + "outputPath": "/downloads/incomplete/Breaking.Bad.S03E15.1080p.BluRay.x264-GROUP", + "id": 2 + }, + { + "seriesId": 3, + "episodeId": 11121, + "seasonNumber": 1, + "episodeNumber": 3, + "title": "Better Call Saul S01E03 - Nacho", + "size": 1610612736, + "sizeleft": 1073741824, + "timeleft": "01:24:15", + "estimatedCompletionTime": "2024-01-15T12:09:15Z", + "status": "downloading", + "trackedDownloadStatus": "warning", + "trackedDownloadState": "downloading", + "statusMessages": [ + { + "title": "Slow Download Speed", + "messages": ["Download speed is below expected threshold"] + } + ], + "downloadId": "download789ghi", + "protocol": "usenet", + "downloadClient": "SABnzbd", + "indexer": "NZBgeek", + "outputPath": "/downloads/incomplete/Better.Call.Saul.S01E03.720p.WEB.x264-GROUP", + "id": 3 + } + ] +} \ No newline at end of file diff --git a/dummy-data/sonarr/api/v3/wanted/missing b/dummy-data/sonarr/api/v3/wanted/missing new file mode 100644 index 0000000..cc6c02f --- /dev/null +++ b/dummy-data/sonarr/api/v3/wanted/missing @@ -0,0 +1,129 @@ +{ + "page": 1, + "pageSize": 20, + "sortKey": "airDateUtc", + "sortDirection": "descending", + "totalRecords": 15, + "records": [ + { + "seriesId": 1, + "tvdbId": 73244, + "seasonNumber": 9, + "episodeNumber": 23, + "title": "Finale", + "airDate": "2013-05-16", + "airDateUtc": "2013-05-17T01:00:00Z", + "overview": "One year later, Dunder Mifflin Scranton has thrived, but Jim and Pam are looking to a move to Philadelphia.", + "episodeFile": null, + "hasFile": false, + "monitored": true, + "absoluteEpisodeNumber": 201, + "series": { + "title": "The Office (US)", + "sortTitle": "office us", + "seasonCount": 9, + "status": "ended", + "overview": "A mockumentary about a group of typical office workers.", + "network": "NBC", + "airTime": "21:00", + "images": [], + "seasons": [], + "year": 2005, + "path": "/media/tv/The Office (US)", + "qualityProfileId": 1, + "languageProfileId": 1, + "seasonFolder": true, + "monitored": true, + "useSceneNumbering": false, + "runtime": 22, + "tvdbId": 73244, + "tvRageId": 6061, + "tvMazeId": 526, + "firstAired": "2005-03-24T00:00:00Z", + "lastInfoSync": "2024-01-15T09:00:00Z", + "seriesType": "standard", + "cleanTitle": "theoffice", + "imdbId": "tt0386676", + "titleSlug": "the-office-us", + "certification": "TV-14", + "genres": ["Comedy"], + "tags": [], + "added": "2024-01-01T00:00:00Z", + "ratings": { + "votes": 654321, + "value": 8.9 + }, + "statistics": { + "seasonCount": 9, + "episodeFileCount": 200, + "episodeCount": 201, + "totalEpisodeCount": 201, + "sizeOnDisk": 107374182400, + "percentOfEpisodes": 99.5 + }, + "id": 1 + }, + "id": 4567 + }, + { + "seriesId": 2, + "tvdbId": 81189, + "seasonNumber": 5, + "episodeNumber": 16, + "title": "Felina", + "airDate": "2013-09-29", + "airDateUtc": "2013-09-30T01:00:00Z", + "overview": "Walt's final confrontation with his past mistakes leads to a climactic conclusion.", + "episodeFile": null, + "hasFile": false, + "monitored": true, + "absoluteEpisodeNumber": 62, + "series": { + "title": "Breaking Bad", + "sortTitle": "breaking bad", + "seasonCount": 5, + "status": "ended", + "overview": "A high school chemistry teacher turned methamphetamine manufacturer.", + "network": "AMC", + "airTime": "21:00", + "images": [], + "seasons": [], + "year": 2008, + "path": "/media/tv/Breaking Bad", + "qualityProfileId": 1, + "languageProfileId": 1, + "seasonFolder": true, + "monitored": true, + "useSceneNumbering": false, + "runtime": 47, + "tvdbId": 81189, + "tvRageId": 18164, + "tvMazeId": 169, + "firstAired": "2008-01-20T00:00:00Z", + "lastInfoSync": "2024-01-15T09:00:00Z", + "seriesType": "standard", + "cleanTitle": "breakingbad", + "imdbId": "tt0903747", + "titleSlug": "breaking-bad", + "certification": "TV-MA", + "genres": ["Crime", "Drama", "Thriller"], + "tags": [], + "added": "2024-01-01T00:00:00Z", + "ratings": { + "votes": 1234567, + "value": 9.5 + }, + "statistics": { + "seasonCount": 5, + "episodeFileCount": 61, + "episodeCount": 62, + "totalEpisodeCount": 62, + "sizeOnDisk": 161061273600, + "percentOfEpisodes": 98.4 + }, + "id": 2 + }, + "id": 8901 + } + ] +} \ No newline at end of file diff --git a/dummy-data/tautulli/api/v2 b/dummy-data/tautulli/api/v2 new file mode 100644 index 0000000..6dd7605 --- /dev/null +++ b/dummy-data/tautulli/api/v2 @@ -0,0 +1,185 @@ +{ + "response": { + "result": "success", + "message": null, + "data": { + "stream_count": 3, + "stream_count_direct_play": 1, + "stream_count_direct_stream": 1, + "stream_count_transcode": 1, + "total_bandwidth": 15420, + "wan_bandwidth": 8240, + "lan_bandwidth": 7180, + "sessions": [ + { + "session_key": "425", + "session_id": "tautulli_session_425", + "media_index": "1", + "parent_media_index": "1", + "art": "/library/metadata/98765/art/1705317600", + "thumb": "/library/metadata/98765/thumb/1705317600", + "grandparent_thumb": "/library/metadata/98765/thumb/1705317600", + "title": "The One Where Monica Gets a Roommate", + "parent_title": "Season 1", + "grandparent_title": "Friends", + "original_title": "", + "year": 1994, + "media_type": "episode", + "rating_key": "98765", + "parent_rating_key": "98764", + "grandparent_rating_key": "98763", + "state": "playing", + "session_progress": 42, + "view_offset": 630000, + "duration": 1500000, + "remaining_time": 870000, + "progress_percent": 42, + "username": "john_doe", + "friendly_name": "John's iPhone", + "user_id": 1, + "user": "john_doe", + "ip_address": "192.168.1.105", + "ip_address_public": "203.0.113.45", + "location": "lan", + "secure": 1, + "relayed": 0, + "platform": "iOS", + "platform_name": "iPhone", + "platform_version": "17.2", + "product": "Plex for iOS", + "product_version": "8.25.1", + "profile": "Mobile", + "player": "PlexMobile", + "machine_id": "abc123def456", + "bandwidth": 4820, + "quality_profile": "4 Mbps 720p", + "video_resolution": "720p", + "video_framerate": "24p", + "video_codec": "h264", + "video_bitrate": 4200, + "video_width": 1280, + "video_height": 720, + "audio_codec": "aac", + "audio_bitrate": 128, + "audio_channels": 2, + "transcode_decision": "transcode", + "stream_container": "mkv", + "stream_video_codec": "h264", + "stream_audio_codec": "aac" + }, + { + "session_key": "426", + "session_id": "tautulli_session_426", + "media_index": "3", + "parent_media_index": "2", + "art": "/library/metadata/45678/art/1705317600", + "thumb": "/library/metadata/45678/thumb/1705317600", + "grandparent_thumb": "/library/metadata/45678/thumb/1705317600", + "title": "The One with the Sonogram at the End", + "parent_title": "Season 1", + "grandparent_title": "Friends", + "original_title": "", + "year": 1994, + "media_type": "episode", + "rating_key": "45678", + "parent_rating_key": "45677", + "grandparent_rating_key": "45676", + "state": "playing", + "session_progress": 18, + "view_offset": 270000, + "duration": 1500000, + "remaining_time": 1230000, + "progress_percent": 18, + "username": "sarah_smith", + "friendly_name": "Sarah's TV", + "user_id": 2, + "user": "sarah_smith", + "ip_address": "192.168.1.110", + "ip_address_public": "203.0.113.45", + "location": "lan", + "secure": 1, + "relayed": 0, + "platform": "Roku", + "platform_name": "Roku Ultra", + "platform_version": "12.5.0", + "product": "Plex for Roku", + "product_version": "6.8.0", + "profile": "Roku", + "player": "Roku", + "machine_id": "def456ghi789", + "bandwidth": 2360, + "quality_profile": "2 Mbps 480p", + "video_resolution": "480p", + "video_framerate": "24p", + "video_codec": "h264", + "video_bitrate": 2000, + "video_width": 720, + "video_height": 480, + "audio_codec": "aac", + "audio_bitrate": 128, + "audio_channels": 2, + "transcode_decision": "direct_stream", + "stream_container": "mkv", + "stream_video_codec": "h264", + "stream_audio_codec": "aac" + }, + { + "session_key": "427", + "session_id": "tautulli_session_427", + "media_index": null, + "parent_media_index": null, + "art": "/library/metadata/12345/art/1705317600", + "thumb": "/library/metadata/12345/thumb/1705317600", + "grandparent_thumb": "", + "title": "Inception", + "parent_title": "", + "grandparent_title": "", + "original_title": "Inception", + "year": 2010, + "media_type": "movie", + "rating_key": "12345", + "parent_rating_key": "", + "grandparent_rating_key": "", + "state": "playing", + "session_progress": 67, + "view_offset": 5952000, + "duration": 8880000, + "remaining_time": 2928000, + "progress_percent": 67, + "username": "movie_buff", + "friendly_name": "Living Room TV", + "user_id": 3, + "user": "movie_buff", + "ip_address": "10.0.0.15", + "ip_address_public": "198.51.100.25", + "location": "wan", + "secure": 1, + "relayed": 1, + "platform": "Android TV", + "platform_name": "NVIDIA Shield TV", + "platform_version": "11", + "product": "Plex for Android TV", + "product_version": "9.12.0", + "profile": "Android TV", + "player": "AndroidTV", + "machine_id": "ghi789jkl012", + "bandwidth": 8240, + "quality_profile": "8 Mbps 1080p", + "video_resolution": "1080p", + "video_framerate": "24p", + "video_codec": "h264", + "video_bitrate": 8000, + "video_width": 1920, + "video_height": 1080, + "audio_codec": "ac3", + "audio_bitrate": 640, + "audio_channels": 6, + "transcode_decision": "direct_play", + "stream_container": "mkv", + "stream_video_codec": "h264", + "stream_audio_codec": "ac3" + } + ] + } + } +} \ No newline at end of file diff --git a/dummy-data/truenasscale/api/v2.0/system/version b/dummy-data/truenasscale/api/v2.0/system/version new file mode 100644 index 0000000..1d94464 --- /dev/null +++ b/dummy-data/truenasscale/api/v2.0/system/version @@ -0,0 +1 @@ +"TrueNAS-SCALE-22.12.4.2" \ No newline at end of file diff --git a/dummy-data/uptimekuma/api/status-page/default b/dummy-data/uptimekuma/api/status-page/default new file mode 100644 index 0000000..fb69a18 --- /dev/null +++ b/dummy-data/uptimekuma/api/status-page/default @@ -0,0 +1,64 @@ +{ + "config": { + "title": "Homer Dashboard Status", + "description": "Status page for all monitored services", + "icon": "/icon.svg", + "theme": "light", + "published": true, + "showTags": true, + "domainNames": [ + "status.homer.local" + ], + "customCSS": "", + "footerText": null, + "showPoweredBy": true, + "googleAnalyticsId": null, + "showCertificateExpiry": false, + "certExpiryDays": 14 + }, + "incident": null, + "publicGroupList": [ + { + "id": 1, + "name": "Web Services", + "weight": 1, + "monitorList": [ + { + "id": 1, + "name": "Main Website", + "url": "https://example.com", + "type": "http", + "interval": 60 + }, + { + "id": 2, + "name": "API Server", + "url": "https://api.example.com", + "type": "http", + "interval": 60 + } + ] + }, + { + "id": 2, + "name": "Infrastructure", + "weight": 2, + "monitorList": [ + { + "id": 3, + "name": "Database Server", + "url": "postgresql://db.example.com:5432", + "type": "postgres", + "interval": 120 + }, + { + "id": 4, + "name": "Redis Cache", + "url": "redis://cache.example.com:6379", + "type": "redis", + "interval": 60 + } + ] + } + ] +} \ No newline at end of file diff --git a/dummy-data/uptimekuma/api/status-page/heartbeat/default b/dummy-data/uptimekuma/api/status-page/heartbeat/default new file mode 100644 index 0000000..6c3032a --- /dev/null +++ b/dummy-data/uptimekuma/api/status-page/heartbeat/default @@ -0,0 +1,114 @@ +{ + "heartbeatList": { + "1": [ + { + "status": 1, + "time": "2024-01-15 10:00:00", + "msg": "200 - OK", + "ping": 45, + "important": false, + "duration": 0 + }, + { + "status": 1, + "time": "2024-01-15 10:01:00", + "msg": "200 - OK", + "ping": 52, + "important": false, + "duration": 0 + }, + { + "status": 1, + "time": "2024-01-15 10:02:00", + "msg": "200 - OK", + "ping": 38, + "important": false, + "duration": 0 + } + ], + "2": [ + { + "status": 1, + "time": "2024-01-15 10:00:00", + "msg": "200 - OK", + "ping": 67, + "important": false, + "duration": 0 + }, + { + "status": 1, + "time": "2024-01-15 10:01:00", + "msg": "200 - OK", + "ping": 71, + "important": false, + "duration": 0 + }, + { + "status": 1, + "time": "2024-01-15 10:02:00", + "msg": "200 - OK", + "ping": 63, + "important": false, + "duration": 0 + } + ], + "3": [ + { + "status": 1, + "time": "2024-01-15 10:00:00", + "msg": "Connected successfully", + "ping": 12, + "important": false, + "duration": 0 + }, + { + "status": 0, + "time": "2024-01-15 10:02:00", + "msg": "Connection timeout", + "ping": null, + "important": true, + "duration": 5000 + }, + { + "status": 1, + "time": "2024-01-15 10:04:00", + "msg": "Connected successfully", + "ping": 15, + "important": false, + "duration": 0 + } + ], + "4": [ + { + "status": 1, + "time": "2024-01-15 10:00:00", + "msg": "PONG received", + "ping": 3, + "important": false, + "duration": 0 + }, + { + "status": 1, + "time": "2024-01-15 10:01:00", + "msg": "PONG received", + "ping": 2, + "important": false, + "duration": 0 + }, + { + "status": 1, + "time": "2024-01-15 10:02:00", + "msg": "PONG received", + "ping": 4, + "important": false, + "duration": 0 + } + ] + }, + "uptimeList": { + "1": 1.0, + "2": 1.0, + "3": 0.95, + "4": 1.0 + } +} \ No newline at end of file diff --git a/dummy-data/vaultwarden/api/version b/dummy-data/vaultwarden/api/version new file mode 100644 index 0000000..c450c5e --- /dev/null +++ b/dummy-data/vaultwarden/api/version @@ -0,0 +1 @@ +"1.30.3" \ No newline at end of file diff --git a/dummy-data/wud/api/containers b/dummy-data/wud/api/containers new file mode 100644 index 0000000..e3e1b2e --- /dev/null +++ b/dummy-data/wud/api/containers @@ -0,0 +1,182 @@ +[ + { + "id": "nginx-proxy", + "name": "nginx-proxy", + "watcher": "docker", + "image": { + "registry": { + "name": "hub.docker.com", + "url": "https://registry-1.docker.io/v2" + }, + "name": "nginx", + "tag": { + "value": "1.25.3", + "semver": true + }, + "digest": { + "watch": false, + "repo": "sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" + }, + "architecture": "amd64", + "os": "linux", + "created": "2023-12-15T10:30:00Z" + }, + "result": { + "tag": "1.25.4" + }, + "updateAvailable": true, + "status": "running", + "created": "2024-01-10T08:15:00Z", + "updated": "2024-01-15T11:30:00Z" + }, + { + "id": "postgres-db", + "name": "postgres-db", + "watcher": "docker", + "image": { + "registry": { + "name": "hub.docker.com", + "url": "https://registry-1.docker.io/v2" + }, + "name": "postgres", + "tag": { + "value": "15.5-alpine", + "semver": true + }, + "digest": { + "watch": false, + "repo": "sha256:2345678901abcdef2345678901abcdef2345678901abcdef2345678901abcdef" + }, + "architecture": "amd64", + "os": "linux", + "created": "2023-11-28T14:22:00Z" + }, + "result": { + "tag": "16.1-alpine" + }, + "updateAvailable": true, + "status": "running", + "created": "2024-01-08T12:45:00Z", + "updated": "2024-01-15T11:30:00Z" + }, + { + "id": "redis-cache", + "name": "redis-cache", + "watcher": "docker", + "image": { + "registry": { + "name": "hub.docker.com", + "url": "https://registry-1.docker.io/v2" + }, + "name": "redis", + "tag": { + "value": "7.2.4-alpine", + "semver": true + }, + "digest": { + "watch": false, + "repo": "sha256:3456789012abcdef3456789012abcdef3456789012abcdef3456789012abcdef" + }, + "architecture": "amd64", + "os": "linux", + "created": "2024-01-12T09:18:00Z" + }, + "result": { + "tag": "7.2.4-alpine" + }, + "updateAvailable": false, + "status": "running", + "created": "2024-01-12T16:20:00Z", + "updated": "2024-01-15T11:30:00Z" + }, + { + "id": "portainer-agent", + "name": "portainer-agent", + "watcher": "docker", + "image": { + "registry": { + "name": "hub.docker.com", + "url": "https://registry-1.docker.io/v2" + }, + "name": "portainer/agent", + "tag": { + "value": "2.19.4", + "semver": true + }, + "digest": { + "watch": false, + "repo": "sha256:4567890123abcdef4567890123abcdef4567890123abcdef4567890123abcdef" + }, + "architecture": "amd64", + "os": "linux", + "created": "2024-01-05T07:42:00Z" + }, + "result": { + "tag": "2.19.4" + }, + "updateAvailable": false, + "status": "running", + "created": "2024-01-05T14:30:00Z", + "updated": "2024-01-15T11:30:00Z" + }, + { + "id": "app-backend", + "name": "app-backend", + "watcher": "docker", + "image": { + "registry": { + "name": "hub.docker.com", + "url": "https://registry-1.docker.io/v2" + }, + "name": "node", + "tag": { + "value": "18.19.0-alpine", + "semver": true + }, + "digest": { + "watch": false, + "repo": "sha256:5678901234abcdef5678901234abcdef5678901234abcdef5678901234abcdef" + }, + "architecture": "amd64", + "os": "linux", + "created": "2023-12-28T11:15:00Z" + }, + "result": { + "tag": "20.11.0-alpine" + }, + "updateAvailable": true, + "status": "running", + "created": "2024-01-07T09:12:00Z", + "updated": "2024-01-15T11:30:00Z" + }, + { + "id": "prometheus", + "name": "prometheus", + "watcher": "docker", + "image": { + "registry": { + "name": "quay.io", + "url": "https://quay.io/v2" + }, + "name": "prometheus/prometheus", + "tag": { + "value": "v2.48.1", + "semver": true + }, + "digest": { + "watch": false, + "repo": "sha256:6789012345abcdef6789012345abcdef6789012345abcdef6789012345abcdef" + }, + "architecture": "amd64", + "os": "linux", + "created": "2023-12-20T16:33:00Z" + }, + "result": { + "tag": "v2.49.1" + }, + "updateAvailable": true, + "status": "running", + "created": "2024-01-03T13:55:00Z", + "updated": "2024-01-15T11:30:00Z" + } +] \ No newline at end of file