//------------------------------------------------------------------------------
//
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
//
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
///
/// the name of the task to be started.
///
[JsonConverter(typeof(OpenEnumConverter))]
public class TaskName : IEquatable
{
public static readonly TaskName BackupDatabase = new TaskName("BackupDatabase");
public static readonly TaskName BuildGracenoteCollections = new TaskName("BuildGracenoteCollections");
public static readonly TaskName CheckForUpdates = new TaskName("CheckForUpdates");
public static readonly TaskName CleanOldBundles = new TaskName("CleanOldBundles");
public static readonly TaskName CleanOldCacheFiles = new TaskName("CleanOldCacheFiles");
public static readonly TaskName DeepMediaAnalysis = new TaskName("DeepMediaAnalysis");
public static readonly TaskName GenerateAutoTags = new TaskName("GenerateAutoTags");
public static readonly TaskName GenerateChapterThumbs = new TaskName("GenerateChapterThumbs");
public static readonly TaskName GenerateMediaIndexFiles = new TaskName("GenerateMediaIndexFiles");
public static readonly TaskName OptimizeDatabase = new TaskName("OptimizeDatabase");
public static readonly TaskName RefreshLibraries = new TaskName("RefreshLibraries");
public static readonly TaskName RefreshLocalMedia = new TaskName("RefreshLocalMedia");
public static readonly TaskName RefreshPeriodicMetadata = new TaskName("RefreshPeriodicMetadata");
public static readonly TaskName UpgradeMediaAnalysis = new TaskName("UpgradeMediaAnalysis");
private static readonly Dictionary _knownValues =
new Dictionary ()
{
["BackupDatabase"] = BackupDatabase,
["BuildGracenoteCollections"] = BuildGracenoteCollections,
["CheckForUpdates"] = CheckForUpdates,
["CleanOldBundles"] = CleanOldBundles,
["CleanOldCacheFiles"] = CleanOldCacheFiles,
["DeepMediaAnalysis"] = DeepMediaAnalysis,
["GenerateAutoTags"] = GenerateAutoTags,
["GenerateChapterThumbs"] = GenerateChapterThumbs,
["GenerateMediaIndexFiles"] = GenerateMediaIndexFiles,
["OptimizeDatabase"] = OptimizeDatabase,
["RefreshLibraries"] = RefreshLibraries,
["RefreshLocalMedia"] = RefreshLocalMedia,
["RefreshPeriodicMetadata"] = RefreshPeriodicMetadata,
["UpgradeMediaAnalysis"] = UpgradeMediaAnalysis
};
private static readonly ConcurrentDictionary _values =
new ConcurrentDictionary(_knownValues);
private TaskName(string value)
{
if (value == null) throw new ArgumentNullException(nameof(value));
Value = value;
}
public string Value { get; }
public static TaskName Of(string value)
{
return _values.GetOrAdd(value, _ => new TaskName(value));
}
public static implicit operator TaskName(string value) => Of(value);
public static implicit operator string(TaskName taskname) => taskname.Value;
public static TaskName[] Values()
{
return _values.Values.ToArray();
}
public override string ToString() => Value.ToString();
public bool IsKnown()
{
return _knownValues.ContainsKey(Value);
}
public override bool Equals(object? obj) => Equals(obj as TaskName);
public bool Equals(TaskName? other)
{
if (ReferenceEquals(this, other)) return true;
if (other is null) return false;
return string.Equals(Value, other.Value);
}
public override int GetHashCode() => Value.GetHashCode();
}
}