/* * InfluxDB OSS API Service * * The InfluxDB v2 API provides a programmatic interface for all interactions with InfluxDB. Access the InfluxDB API using the `/api/v2/` endpoint. * * OpenAPI spec version: 2.0.0 * * Generated by: https://github.com/openapitools/openapi-generator.git */ using System; using System.Linq; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using OpenAPIDateConverter = InfluxDB.Client.Api.Client.OpenAPIDateConverter; namespace InfluxDB.Client.Api.Domain { /// /// TemplateSummarySummaryVariables /// [DataContract] public partial class TemplateSummarySummaryVariables : IEquatable { /// /// Gets or Sets Kind /// [DataMember(Name = "kind", EmitDefaultValue = false)] public TemplateKind? Kind { get; set; } /// /// Initializes a new instance of the class. /// /// kind. /// templateMetaName. /// id. /// orgID. /// name. /// description. /// arguments. /// labelAssociations. /// envReferences. public TemplateSummarySummaryVariables(TemplateKind? kind = default, string templateMetaName = default, string id = default, string orgID = default, string name = default, string description = default, VariableProperties arguments = default, List labelAssociations = default, List envReferences = default) { Kind = kind; TemplateMetaName = templateMetaName; Id = id; OrgID = orgID; Name = name; Description = description; Arguments = arguments; LabelAssociations = labelAssociations; EnvReferences = envReferences; } /// /// Gets or Sets TemplateMetaName /// [DataMember(Name = "templateMetaName", EmitDefaultValue = false)] public string TemplateMetaName { get; set; } /// /// Gets or Sets Id /// [DataMember(Name = "id", EmitDefaultValue = false)] public string Id { get; set; } /// /// Gets or Sets OrgID /// [DataMember(Name = "orgID", EmitDefaultValue = false)] public string OrgID { get; set; } /// /// Gets or Sets Name /// [DataMember(Name = "name", EmitDefaultValue = false)] public string Name { get; set; } /// /// Gets or Sets Description /// [DataMember(Name = "description", EmitDefaultValue = false)] public string Description { get; set; } /// /// Gets or Sets Arguments /// [DataMember(Name = "arguments", EmitDefaultValue = false)] [JsonConverter(typeof(TemplateSummary_summary_variablesArgumentsAdapter))] public VariableProperties Arguments { get; set; } /// /// Gets or Sets LabelAssociations /// [DataMember(Name = "labelAssociations", EmitDefaultValue = false)] public List LabelAssociations { get; set; } /// /// Gets or Sets EnvReferences /// [DataMember(Name = "envReferences", EmitDefaultValue = false)] public List EnvReferences { get; set; } /// /// Returns the string presentation of the object /// /// String presentation of the object public override string ToString() { var sb = new StringBuilder(); sb.Append("class TemplateSummarySummaryVariables {\n"); sb.Append(" Kind: ").Append(Kind).Append("\n"); sb.Append(" TemplateMetaName: ").Append(TemplateMetaName).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" OrgID: ").Append(OrgID).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Description: ").Append(Description).Append("\n"); sb.Append(" Arguments: ").Append(Arguments).Append("\n"); sb.Append(" LabelAssociations: ").Append(LabelAssociations).Append("\n"); sb.Append(" EnvReferences: ").Append(EnvReferences).Append("\n"); sb.Append("}\n"); return sb.ToString(); } /// /// Returns the JSON string presentation of the object /// /// JSON string presentation of the object public virtual string ToJson() { return JsonConvert.SerializeObject(this, Formatting.Indented); } /// /// Returns true if objects are equal /// /// Object to be compared /// Boolean public override bool Equals(object input) { return Equals(input as TemplateSummarySummaryVariables); } /// /// Returns true if TemplateSummarySummaryVariables instances are equal /// /// Instance of TemplateSummarySummaryVariables to be compared /// Boolean public bool Equals(TemplateSummarySummaryVariables input) { if (input == null) { return false; } return ( Kind == input.Kind || Kind.Equals(input.Kind) ) && ( TemplateMetaName == input.TemplateMetaName || TemplateMetaName != null && TemplateMetaName.Equals(input.TemplateMetaName) ) && ( Id == input.Id || Id != null && Id.Equals(input.Id) ) && ( OrgID == input.OrgID || OrgID != null && OrgID.Equals(input.OrgID) ) && ( Name == input.Name || Name != null && Name.Equals(input.Name) ) && ( Description == input.Description || Description != null && Description.Equals(input.Description) ) && Arguments != null && Arguments.Equals(input.Arguments) && ( LabelAssociations == input.LabelAssociations || LabelAssociations != null && LabelAssociations.SequenceEqual(input.LabelAssociations) ) && ( EnvReferences == input.EnvReferences || EnvReferences != null && EnvReferences.SequenceEqual(input.EnvReferences) ); } /// /// Gets the hash code /// /// Hash code public override int GetHashCode() { unchecked // Overflow is fine, just wrap { var hashCode = 41; hashCode = hashCode * 59 + Kind.GetHashCode(); if (TemplateMetaName != null) { hashCode = hashCode * 59 + TemplateMetaName.GetHashCode(); } if (Id != null) { hashCode = hashCode * 59 + Id.GetHashCode(); } if (OrgID != null) { hashCode = hashCode * 59 + OrgID.GetHashCode(); } if (Name != null) { hashCode = hashCode * 59 + Name.GetHashCode(); } if (Description != null) { hashCode = hashCode * 59 + Description.GetHashCode(); } if (Arguments != null) { hashCode = hashCode * 59 + Arguments.GetHashCode(); } if (LabelAssociations != null) { hashCode = hashCode * 59 + LabelAssociations.GetHashCode(); } if (EnvReferences != null) { hashCode = hashCode * 59 + EnvReferences.GetHashCode(); } return hashCode; } } public class TemplateSummary_summary_variablesArgumentsAdapter : JsonConverter { private static readonly Dictionary Types = new Dictionary(new Client.DiscriminatorComparer()) { { new[] { "query" }, typeof(QueryVariableProperties) }, { new[] { "constant" }, typeof(ConstantVariableProperties) }, { new[] { "map" }, typeof(MapVariableProperties) } }; public override bool CanConvert(Type objectType) { return false; } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { serializer.Serialize(writer, value); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { return Deserialize(reader, objectType, serializer); } private object Deserialize(JsonReader reader, Type objectType, JsonSerializer serializer) { switch (reader.TokenType) { case JsonToken.StartObject: var jObject = Newtonsoft.Json.Linq.JObject.Load(reader); var discriminator = new[] { "type" }.Select(key => jObject[key].ToString()).ToArray(); Types.TryGetValue(discriminator, out var type); return serializer.Deserialize(jObject.CreateReader(), type); case JsonToken.StartArray: return DeserializeArray(reader, objectType, serializer); default: return serializer.Deserialize(reader, objectType); } } private IList DeserializeArray(JsonReader reader, Type targetType, JsonSerializer serializer) { var elementType = targetType.GenericTypeArguments.FirstOrDefault(); var list = (IList)Activator.CreateInstance(targetType); while (reader.Read() && reader.TokenType != JsonToken.EndArray) list.Add(Deserialize(reader, elementType, serializer)); return list; } } } }