//----------------------
// <auto-generated>
//     Generated using the NSwag toolchain v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)
// </auto-generated>
//----------------------


using StreamChat.Core.InternalDTO.Responses;
using StreamChat.Core.InternalDTO.Events;
using StreamChat.Core.InternalDTO.Models;

namespace StreamChat.Core.InternalDTO.Requests
{
    using System = global::System;

    [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))")]

    internal readonly struct TranslateMessageRequestLanguageInternalDTO : System.IEquatable<TranslateMessageRequestLanguageInternalDTO>, StreamChat.Core.LowLevelClient.IEnumeratedStruct<TranslateMessageRequestLanguageInternalDTO>
    {
        public string Value { get; }

        public static readonly TranslateMessageRequestLanguageInternalDTO Af = new TranslateMessageRequestLanguageInternalDTO("af");
        public static readonly TranslateMessageRequestLanguageInternalDTO Sq = new TranslateMessageRequestLanguageInternalDTO("sq");
        public static readonly TranslateMessageRequestLanguageInternalDTO Am = new TranslateMessageRequestLanguageInternalDTO("am");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ar = new TranslateMessageRequestLanguageInternalDTO("ar");
        public static readonly TranslateMessageRequestLanguageInternalDTO Az = new TranslateMessageRequestLanguageInternalDTO("az");
        public static readonly TranslateMessageRequestLanguageInternalDTO Bn = new TranslateMessageRequestLanguageInternalDTO("bn");
        public static readonly TranslateMessageRequestLanguageInternalDTO Bs = new TranslateMessageRequestLanguageInternalDTO("bs");
        public static readonly TranslateMessageRequestLanguageInternalDTO Bg = new TranslateMessageRequestLanguageInternalDTO("bg");
        public static readonly TranslateMessageRequestLanguageInternalDTO Zh = new TranslateMessageRequestLanguageInternalDTO("zh");
        public static readonly TranslateMessageRequestLanguageInternalDTO ZhTW = new TranslateMessageRequestLanguageInternalDTO("zh-TW");
        public static readonly TranslateMessageRequestLanguageInternalDTO Hr = new TranslateMessageRequestLanguageInternalDTO("hr");
        public static readonly TranslateMessageRequestLanguageInternalDTO Cs = new TranslateMessageRequestLanguageInternalDTO("cs");
        public static readonly TranslateMessageRequestLanguageInternalDTO Da = new TranslateMessageRequestLanguageInternalDTO("da");
        public static readonly TranslateMessageRequestLanguageInternalDTO FaAF = new TranslateMessageRequestLanguageInternalDTO("fa-AF");
        public static readonly TranslateMessageRequestLanguageInternalDTO Nl = new TranslateMessageRequestLanguageInternalDTO("nl");
        public static readonly TranslateMessageRequestLanguageInternalDTO En = new TranslateMessageRequestLanguageInternalDTO("en");
        public static readonly TranslateMessageRequestLanguageInternalDTO Et = new TranslateMessageRequestLanguageInternalDTO("et");
        public static readonly TranslateMessageRequestLanguageInternalDTO Fi = new TranslateMessageRequestLanguageInternalDTO("fi");
        public static readonly TranslateMessageRequestLanguageInternalDTO Fr = new TranslateMessageRequestLanguageInternalDTO("fr");
        public static readonly TranslateMessageRequestLanguageInternalDTO FrCA = new TranslateMessageRequestLanguageInternalDTO("fr-CA");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ka = new TranslateMessageRequestLanguageInternalDTO("ka");
        public static readonly TranslateMessageRequestLanguageInternalDTO De = new TranslateMessageRequestLanguageInternalDTO("de");
        public static readonly TranslateMessageRequestLanguageInternalDTO El = new TranslateMessageRequestLanguageInternalDTO("el");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ha = new TranslateMessageRequestLanguageInternalDTO("ha");
        public static readonly TranslateMessageRequestLanguageInternalDTO He = new TranslateMessageRequestLanguageInternalDTO("he");
        public static readonly TranslateMessageRequestLanguageInternalDTO Hi = new TranslateMessageRequestLanguageInternalDTO("hi");
        public static readonly TranslateMessageRequestLanguageInternalDTO Hu = new TranslateMessageRequestLanguageInternalDTO("hu");
        public static readonly TranslateMessageRequestLanguageInternalDTO Id = new TranslateMessageRequestLanguageInternalDTO("id");
        public static readonly TranslateMessageRequestLanguageInternalDTO It = new TranslateMessageRequestLanguageInternalDTO("it");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ja = new TranslateMessageRequestLanguageInternalDTO("ja");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ko = new TranslateMessageRequestLanguageInternalDTO("ko");
        public static readonly TranslateMessageRequestLanguageInternalDTO Lv = new TranslateMessageRequestLanguageInternalDTO("lv");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ms = new TranslateMessageRequestLanguageInternalDTO("ms");
        public static readonly TranslateMessageRequestLanguageInternalDTO No = new TranslateMessageRequestLanguageInternalDTO("no");
        public static readonly TranslateMessageRequestLanguageInternalDTO Fa = new TranslateMessageRequestLanguageInternalDTO("fa");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ps = new TranslateMessageRequestLanguageInternalDTO("ps");
        public static readonly TranslateMessageRequestLanguageInternalDTO Pl = new TranslateMessageRequestLanguageInternalDTO("pl");
        public static readonly TranslateMessageRequestLanguageInternalDTO Pt = new TranslateMessageRequestLanguageInternalDTO("pt");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ro = new TranslateMessageRequestLanguageInternalDTO("ro");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ru = new TranslateMessageRequestLanguageInternalDTO("ru");
        public static readonly TranslateMessageRequestLanguageInternalDTO Sr = new TranslateMessageRequestLanguageInternalDTO("sr");
        public static readonly TranslateMessageRequestLanguageInternalDTO Sk = new TranslateMessageRequestLanguageInternalDTO("sk");
        public static readonly TranslateMessageRequestLanguageInternalDTO Sl = new TranslateMessageRequestLanguageInternalDTO("sl");
        public static readonly TranslateMessageRequestLanguageInternalDTO So = new TranslateMessageRequestLanguageInternalDTO("so");
        public static readonly TranslateMessageRequestLanguageInternalDTO Es = new TranslateMessageRequestLanguageInternalDTO("es");
        public static readonly TranslateMessageRequestLanguageInternalDTO EsMX = new TranslateMessageRequestLanguageInternalDTO("es-MX");
        public static readonly TranslateMessageRequestLanguageInternalDTO Sw = new TranslateMessageRequestLanguageInternalDTO("sw");
        public static readonly TranslateMessageRequestLanguageInternalDTO Sv = new TranslateMessageRequestLanguageInternalDTO("sv");
        public static readonly TranslateMessageRequestLanguageInternalDTO Tl = new TranslateMessageRequestLanguageInternalDTO("tl");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ta = new TranslateMessageRequestLanguageInternalDTO("ta");
        public static readonly TranslateMessageRequestLanguageInternalDTO Th = new TranslateMessageRequestLanguageInternalDTO("th");
        public static readonly TranslateMessageRequestLanguageInternalDTO Tr = new TranslateMessageRequestLanguageInternalDTO("tr");
        public static readonly TranslateMessageRequestLanguageInternalDTO Uk = new TranslateMessageRequestLanguageInternalDTO("uk");
        public static readonly TranslateMessageRequestLanguageInternalDTO Ur = new TranslateMessageRequestLanguageInternalDTO("ur");
        public static readonly TranslateMessageRequestLanguageInternalDTO Vi = new TranslateMessageRequestLanguageInternalDTO("vi");

        public TranslateMessageRequestLanguageInternalDTO(string value)
        {
            Value = value;
        }

        public TranslateMessageRequestLanguageInternalDTO Parse(string value) => new TranslateMessageRequestLanguageInternalDTO(value);

        public override string ToString() => Value;

        public bool Equals(TranslateMessageRequestLanguageInternalDTO other) => Value == other.Value;

        public override bool Equals(object obj) => obj is TranslateMessageRequestLanguageInternalDTO other && Equals(other);

        public override int GetHashCode() => Value.GetHashCode();

        public static bool operator ==(TranslateMessageRequestLanguageInternalDTO left, TranslateMessageRequestLanguageInternalDTO right) => left.Equals(right);

        public static bool operator !=(TranslateMessageRequestLanguageInternalDTO left, TranslateMessageRequestLanguageInternalDTO right) => !left.Equals(right);

        public static implicit operator TranslateMessageRequestLanguageInternalDTO(string value) => new TranslateMessageRequestLanguageInternalDTO(value);

        public static implicit operator string(TranslateMessageRequestLanguageInternalDTO type) => type.Value;
    }
}
