/* * 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 { /// /// Updates to a rule to expire or retain data. /// [DataContract] public partial class PatchRetentionRule : IEquatable { /// /// Defines Type /// [JsonConverter(typeof(StringEnumConverter))] public enum TypeEnum { /// /// Enum Expire for value: expire /// [EnumMember(Value = "expire")] Expire = 1 } /// /// Gets or Sets Type /// [DataMember(Name = "type", EmitDefaultValue = false)] public TypeEnum Type { get; set; } /// /// Initializes a new instance of the class. /// [JsonConstructorAttribute] protected PatchRetentionRule() { } /// /// Initializes a new instance of the class. /// /// type (required) (default to TypeEnum.Expire). /// Duration in seconds for how long data will be kept in the database. 0 means infinite.. /// Shard duration measured in seconds.. public PatchRetentionRule(TypeEnum type = TypeEnum.Expire, long? everySeconds = default, long? shardGroupDurationSeconds = default) { // to ensure "type" is required (not null) Type = type; EverySeconds = everySeconds; ShardGroupDurationSeconds = shardGroupDurationSeconds; } /// /// Duration in seconds for how long data will be kept in the database. 0 means infinite. /// /// Duration in seconds for how long data will be kept in the database. 0 means infinite. [DataMember(Name = "everySeconds", EmitDefaultValue = false)] public long? EverySeconds { get; set; } /// /// Shard duration measured in seconds. /// /// Shard duration measured in seconds. [DataMember(Name = "shardGroupDurationSeconds", EmitDefaultValue = false)] public long? ShardGroupDurationSeconds { 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 PatchRetentionRule {\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append(" EverySeconds: ").Append(EverySeconds).Append("\n"); sb.Append(" ShardGroupDurationSeconds: ").Append(ShardGroupDurationSeconds).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 PatchRetentionRule); } /// /// Returns true if PatchRetentionRule instances are equal /// /// Instance of PatchRetentionRule to be compared /// Boolean public bool Equals(PatchRetentionRule input) { if (input == null) { return false; } return ( Type == input.Type || Type.Equals(input.Type) ) && ( EverySeconds == input.EverySeconds || EverySeconds != null && EverySeconds.Equals(input.EverySeconds) ) && ( ShardGroupDurationSeconds == input.ShardGroupDurationSeconds || ShardGroupDurationSeconds != null && ShardGroupDurationSeconds.Equals(input.ShardGroupDurationSeconds) ); } /// /// Gets the hash code /// /// Hash code public override int GetHashCode() { unchecked // Overflow is fine, just wrap { var hashCode = 41; hashCode = hashCode * 59 + Type.GetHashCode(); if (EverySeconds != null) { hashCode = hashCode * 59 + EverySeconds.GetHashCode(); } if (ShardGroupDurationSeconds != null) { hashCode = hashCode * 59 + ShardGroupDurationSeconds.GetHashCode(); } return hashCode; } } } }