/* * OpenAPI Petstore * * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. * * The version of the OpenAPI document: 1.0.0 * Generated by: https://github.com/openapitools/openapi-generator.git */ using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.IO; using System.Runtime.Serialization; using System.Text; using System.Text.RegularExpressions; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using System.ComponentModel.DataAnnotations; using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter; namespace Org.OpenAPITools.Models { /// /// A pet for sale in the pet store /// [DataContract(Name = "Pet")] public partial class Pet : IEquatable, IValidatableObject { /// /// pet status in the store /// /// pet status in the store [JsonConverter(typeof(StringEnumConverter))] public enum StatusEnum { /// /// Enum Available for value: available /// [EnumMember(Value = "available")] Available = 1, /// /// Enum Pending for value: pending /// [EnumMember(Value = "pending")] Pending = 2, /// /// Enum Sold for value: sold /// [EnumMember(Value = "sold")] Sold = 3 } /// /// pet status in the store /// /// pet status in the store [DataMember(Name = "status", EmitDefaultValue = false)] public StatusEnum? Status { get; set; } /// /// Initializes a new instance of the class. /// [JsonConstructorAttribute] protected Pet() { } /// /// Initializes a new instance of the class. /// /// id. /// category. /// name (required). /// photoUrls (required). /// tags. /// pet status in the store. public Pet(long id = default(long), Category category = default(Category), string name = default(string), List photoUrls = default(List), List tags = default(List), StatusEnum? status = default(StatusEnum?)) { // to ensure "name" is required (not null) this.Name = name ?? throw new ArgumentNullException("name is a required property for Pet and cannot be null"); // to ensure "photoUrls" is required (not null) this.PhotoUrls = photoUrls ?? throw new ArgumentNullException("photoUrls is a required property for Pet and cannot be null"); this.Id = id; this.Category = category; this.Tags = tags; this.Status = status; } /// /// Gets or Sets Id /// [DataMember(Name = "id", EmitDefaultValue = false)] public long Id { get; set; } /// /// Gets or Sets Category /// [DataMember(Name = "category", EmitDefaultValue = false)] public Category Category { get; set; } /// /// Gets or Sets Name /// [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = false)] public string Name { get; set; } /// /// Gets or Sets PhotoUrls /// [DataMember(Name = "photoUrls", IsRequired = true, EmitDefaultValue = false)] public List PhotoUrls { get; set; } /// /// Gets or Sets Tags /// [DataMember(Name = "tags", EmitDefaultValue = false)] public List Tags { 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 Pet {\n"); sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Category: ").Append(Category).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" PhotoUrls: ").Append(PhotoUrls).Append("\n"); sb.Append(" Tags: ").Append(Tags).Append("\n"); sb.Append(" Status: ").Append(Status).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 Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); } /// /// Returns true if objects are equal /// /// Object to be compared /// Boolean public override bool Equals(object input) { return this.Equals(input as Pet); } /// /// Returns true if Pet instances are equal /// /// Instance of Pet to be compared /// Boolean public bool Equals(Pet input) { if (input == null) return false; return ( this.Id == input.Id || this.Id.Equals(input.Id) ) && ( this.Category == input.Category || (this.Category != null && this.Category.Equals(input.Category)) ) && ( this.Name == input.Name || (this.Name != null && this.Name.Equals(input.Name)) ) && ( this.PhotoUrls == input.PhotoUrls || this.PhotoUrls != null && input.PhotoUrls != null && this.PhotoUrls.SequenceEqual(input.PhotoUrls) ) && ( this.Tags == input.Tags || this.Tags != null && input.Tags != null && this.Tags.SequenceEqual(input.Tags) ) && ( this.Status == input.Status || this.Status.Equals(input.Status) ); } /// /// Gets the hash code /// /// Hash code public override int GetHashCode() { unchecked // Overflow is fine, just wrap { int hashCode = 41; hashCode = hashCode * 59 + this.Id.GetHashCode(); if (this.Category != null) hashCode = hashCode * 59 + this.Category.GetHashCode(); if (this.Name != null) hashCode = hashCode * 59 + this.Name.GetHashCode(); if (this.PhotoUrls != null) hashCode = hashCode * 59 + this.PhotoUrls.GetHashCode(); if (this.Tags != null) hashCode = hashCode * 59 + this.Tags.GetHashCode(); hashCode = hashCode * 59 + this.Status.GetHashCode(); return hashCode; } } /// /// To validate all properties of the instance /// /// Validation context /// Validation Result IEnumerable IValidatableObject.Validate(ValidationContext validationContext) { yield break; } } }