Files
jellyfin/Jellyfin.Api/Models/SystemInfoDtos/SystemStorageDto.cs
JPVenson a0931baa8e
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Add Api and startup check for sufficient storage capacity (#13888)
2025-04-20 20:06:50 -06:00

68 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using MediaBrowser.Model.System;
namespace Jellyfin.Api.Models.SystemInfoDtos;
/// <summary>
/// Contains informations about the systems storage.
/// </summary>
public record SystemStorageDto
{
/// <summary>
/// Gets or sets the Storage information of the program data folder.
/// </summary>
public required FolderStorageDto ProgramDataFolder { get; set; }
/// <summary>
/// Gets or sets the Storage information of the web UI resources folder.
/// </summary>
public required FolderStorageDto WebFolder { get; set; }
/// <summary>
/// Gets or sets the Storage information of the folder where images are cached.
/// </summary>
public required FolderStorageDto ImageCacheFolder { get; set; }
/// <summary>
/// Gets or sets the Storage information of the cache folder.
/// </summary>
public required FolderStorageDto CacheFolder { get; set; }
/// <summary>
/// Gets or sets the Storage information of the folder where logfiles are saved to.
/// </summary>
public required FolderStorageDto LogFolder { get; set; }
/// <summary>
/// Gets or sets the Storage information of the folder where metadata is stored.
/// </summary>
public required FolderStorageDto InternalMetadataFolder { get; set; }
/// <summary>
/// Gets or sets the Storage information of the transcoding cache.
/// </summary>
public required FolderStorageDto TranscodingTempFolder { get; set; }
/// <summary>
/// Gets or sets the storage informations of all libraries.
/// </summary>
public required IReadOnlyCollection<LibraryStorageDto> Libraries { get; set; }
internal static SystemStorageDto FromSystemStorageInfo(SystemStorageInfo model)
{
return new SystemStorageDto()
{
ProgramDataFolder = FolderStorageDto.FromFolderStorageInfo(model.ProgramDataFolder),
WebFolder = FolderStorageDto.FromFolderStorageInfo(model.WebFolder),
ImageCacheFolder = FolderStorageDto.FromFolderStorageInfo(model.ImageCacheFolder),
CacheFolder = FolderStorageDto.FromFolderStorageInfo(model.CacheFolder),
LogFolder = FolderStorageDto.FromFolderStorageInfo(model.LogFolder),
InternalMetadataFolder = FolderStorageDto.FromFolderStorageInfo(model.InternalMetadataFolder),
TranscodingTempFolder = FolderStorageDto.FromFolderStorageInfo(model.TranscodingTempFolder),
Libraries = model.Libraries.Select(LibraryStorageDto.FromLibraryStorageModel).ToArray()
};
}
}