/*
 * ProxMox VE API
 *
 * ProxMox VE API
 *
 * The version of the OpenAPI document: 2.0
 * Contact: support@lumaserv.com
 * 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 = ProxmoxSharp.Client.OpenAPIDateConverter;

namespace ProxmoxSharp.Model
{
    /// <summary>
    /// UpdateNodesSingleConfigRequest
    /// </summary>
    [DataContract(Name = "UpdateNodesSingleConfigRequest")]
    public partial class UpdateNodesSingleConfigRequest : IValidatableObject
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="UpdateNodesSingleConfigRequest" /> class.
        /// </summary>
        /// <param name="acme">acme.</param>
        /// <param name="acmedomain0">acmedomain0.</param>
        /// <param name="acmedomain1">acmedomain1.</param>
        /// <param name="acmedomain2">acmedomain2.</param>
        /// <param name="acmedomain3">acmedomain3.</param>
        /// <param name="acmedomain4">acmedomain4.</param>
        /// <param name="acmedomain5">acmedomain5.</param>
        /// <param name="acmedomain6">acmedomain6.</param>
        /// <param name="acmedomain7">acmedomain7.</param>
        /// <param name="acmedomain8">acmedomain8.</param>
        /// <param name="acmedomain9">acmedomain9.</param>
        /// <param name="acmedomain10">acmedomain10.</param>
        /// <param name="acmedomain11">acmedomain11.</param>
        /// <param name="acmedomain12">acmedomain12.</param>
        /// <param name="acmedomain13">acmedomain13.</param>
        /// <param name="acmedomain14">acmedomain14.</param>
        /// <param name="acmedomain15">acmedomain15.</param>
        /// <param name="acmedomain16">acmedomain16.</param>
        /// <param name="acmedomain17">acmedomain17.</param>
        /// <param name="acmedomain18">acmedomain18.</param>
        /// <param name="acmedomain19">acmedomain19.</param>
        /// <param name="acmedomain20">acmedomain20.</param>
        /// <param name="acmedomain21">acmedomain21.</param>
        /// <param name="acmedomain22">acmedomain22.</param>
        /// <param name="acmedomain23">acmedomain23.</param>
        /// <param name="acmedomain24">acmedomain24.</param>
        /// <param name="acmedomain25">acmedomain25.</param>
        /// <param name="acmedomain26">acmedomain26.</param>
        /// <param name="acmedomain27">acmedomain27.</param>
        /// <param name="acmedomain28">acmedomain28.</param>
        /// <param name="acmedomain29">acmedomain29.</param>
        /// <param name="ballooningTarget">ballooningTarget.</param>
        /// <param name="delete">delete.</param>
        /// <param name="description">description.</param>
        /// <param name="digest">digest.</param>
        /// <param name="startallOnbootDelay">startallOnbootDelay.</param>
        /// <param name="wakeonlan">wakeonlan.</param>
        public UpdateNodesSingleConfigRequest(string acme = default(string), string acmedomain0 = default(string), string acmedomain1 = default(string), string acmedomain2 = default(string), string acmedomain3 = default(string), string acmedomain4 = default(string), string acmedomain5 = default(string), string acmedomain6 = default(string), string acmedomain7 = default(string), string acmedomain8 = default(string), string acmedomain9 = default(string), string acmedomain10 = default(string), string acmedomain11 = default(string), string acmedomain12 = default(string), string acmedomain13 = default(string), string acmedomain14 = default(string), string acmedomain15 = default(string), string acmedomain16 = default(string), string acmedomain17 = default(string), string acmedomain18 = default(string), string acmedomain19 = default(string), string acmedomain20 = default(string), string acmedomain21 = default(string), string acmedomain22 = default(string), string acmedomain23 = default(string), string acmedomain24 = default(string), string acmedomain25 = default(string), string acmedomain26 = default(string), string acmedomain27 = default(string), string acmedomain28 = default(string), string acmedomain29 = default(string), int ballooningTarget = default(int), string delete = default(string), string description = default(string), string digest = default(string), int startallOnbootDelay = default(int), string wakeonlan = default(string))
        {
            this.Acme = acme;
            this.Acmedomain0 = acmedomain0;
            this.Acmedomain1 = acmedomain1;
            this.Acmedomain2 = acmedomain2;
            this.Acmedomain3 = acmedomain3;
            this.Acmedomain4 = acmedomain4;
            this.Acmedomain5 = acmedomain5;
            this.Acmedomain6 = acmedomain6;
            this.Acmedomain7 = acmedomain7;
            this.Acmedomain8 = acmedomain8;
            this.Acmedomain9 = acmedomain9;
            this.Acmedomain10 = acmedomain10;
            this.Acmedomain11 = acmedomain11;
            this.Acmedomain12 = acmedomain12;
            this.Acmedomain13 = acmedomain13;
            this.Acmedomain14 = acmedomain14;
            this.Acmedomain15 = acmedomain15;
            this.Acmedomain16 = acmedomain16;
            this.Acmedomain17 = acmedomain17;
            this.Acmedomain18 = acmedomain18;
            this.Acmedomain19 = acmedomain19;
            this.Acmedomain20 = acmedomain20;
            this.Acmedomain21 = acmedomain21;
            this.Acmedomain22 = acmedomain22;
            this.Acmedomain23 = acmedomain23;
            this.Acmedomain24 = acmedomain24;
            this.Acmedomain25 = acmedomain25;
            this.Acmedomain26 = acmedomain26;
            this.Acmedomain27 = acmedomain27;
            this.Acmedomain28 = acmedomain28;
            this.Acmedomain29 = acmedomain29;
            this.BallooningTarget = ballooningTarget;
            this.Delete = delete;
            this.Description = description;
            this.Digest = digest;
            this.StartallOnbootDelay = startallOnbootDelay;
            this.Wakeonlan = wakeonlan;
        }

        /// <summary>
        /// Gets or Sets Acme
        /// </summary>
        [DataMember(Name = "acme", EmitDefaultValue = false)]
        public string Acme { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain0
        /// </summary>
        [DataMember(Name = "acmedomain0", EmitDefaultValue = false)]
        public string Acmedomain0 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain1
        /// </summary>
        [DataMember(Name = "acmedomain1", EmitDefaultValue = false)]
        public string Acmedomain1 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain2
        /// </summary>
        [DataMember(Name = "acmedomain2", EmitDefaultValue = false)]
        public string Acmedomain2 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain3
        /// </summary>
        [DataMember(Name = "acmedomain3", EmitDefaultValue = false)]
        public string Acmedomain3 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain4
        /// </summary>
        [DataMember(Name = "acmedomain4", EmitDefaultValue = false)]
        public string Acmedomain4 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain5
        /// </summary>
        [DataMember(Name = "acmedomain5", EmitDefaultValue = false)]
        public string Acmedomain5 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain6
        /// </summary>
        [DataMember(Name = "acmedomain6", EmitDefaultValue = false)]
        public string Acmedomain6 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain7
        /// </summary>
        [DataMember(Name = "acmedomain7", EmitDefaultValue = false)]
        public string Acmedomain7 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain8
        /// </summary>
        [DataMember(Name = "acmedomain8", EmitDefaultValue = false)]
        public string Acmedomain8 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain9
        /// </summary>
        [DataMember(Name = "acmedomain9", EmitDefaultValue = false)]
        public string Acmedomain9 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain10
        /// </summary>
        [DataMember(Name = "acmedomain10", EmitDefaultValue = false)]
        public string Acmedomain10 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain11
        /// </summary>
        [DataMember(Name = "acmedomain11", EmitDefaultValue = false)]
        public string Acmedomain11 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain12
        /// </summary>
        [DataMember(Name = "acmedomain12", EmitDefaultValue = false)]
        public string Acmedomain12 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain13
        /// </summary>
        [DataMember(Name = "acmedomain13", EmitDefaultValue = false)]
        public string Acmedomain13 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain14
        /// </summary>
        [DataMember(Name = "acmedomain14", EmitDefaultValue = false)]
        public string Acmedomain14 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain15
        /// </summary>
        [DataMember(Name = "acmedomain15", EmitDefaultValue = false)]
        public string Acmedomain15 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain16
        /// </summary>
        [DataMember(Name = "acmedomain16", EmitDefaultValue = false)]
        public string Acmedomain16 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain17
        /// </summary>
        [DataMember(Name = "acmedomain17", EmitDefaultValue = false)]
        public string Acmedomain17 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain18
        /// </summary>
        [DataMember(Name = "acmedomain18", EmitDefaultValue = false)]
        public string Acmedomain18 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain19
        /// </summary>
        [DataMember(Name = "acmedomain19", EmitDefaultValue = false)]
        public string Acmedomain19 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain20
        /// </summary>
        [DataMember(Name = "acmedomain20", EmitDefaultValue = false)]
        public string Acmedomain20 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain21
        /// </summary>
        [DataMember(Name = "acmedomain21", EmitDefaultValue = false)]
        public string Acmedomain21 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain22
        /// </summary>
        [DataMember(Name = "acmedomain22", EmitDefaultValue = false)]
        public string Acmedomain22 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain23
        /// </summary>
        [DataMember(Name = "acmedomain23", EmitDefaultValue = false)]
        public string Acmedomain23 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain24
        /// </summary>
        [DataMember(Name = "acmedomain24", EmitDefaultValue = false)]
        public string Acmedomain24 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain25
        /// </summary>
        [DataMember(Name = "acmedomain25", EmitDefaultValue = false)]
        public string Acmedomain25 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain26
        /// </summary>
        [DataMember(Name = "acmedomain26", EmitDefaultValue = false)]
        public string Acmedomain26 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain27
        /// </summary>
        [DataMember(Name = "acmedomain27", EmitDefaultValue = false)]
        public string Acmedomain27 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain28
        /// </summary>
        [DataMember(Name = "acmedomain28", EmitDefaultValue = false)]
        public string Acmedomain28 { get; set; }

        /// <summary>
        /// Gets or Sets Acmedomain29
        /// </summary>
        [DataMember(Name = "acmedomain29", EmitDefaultValue = false)]
        public string Acmedomain29 { get; set; }

        /// <summary>
        /// Gets or Sets BallooningTarget
        /// </summary>
        [DataMember(Name = "ballooning-target", EmitDefaultValue = false)]
        public int BallooningTarget { get; set; }

        /// <summary>
        /// Gets or Sets Delete
        /// </summary>
        [DataMember(Name = "delete", EmitDefaultValue = false)]
        public string Delete { get; set; }

        /// <summary>
        /// Gets or Sets Description
        /// </summary>
        [DataMember(Name = "description", EmitDefaultValue = false)]
        public string Description { get; set; }

        /// <summary>
        /// Gets or Sets Digest
        /// </summary>
        [DataMember(Name = "digest", EmitDefaultValue = false)]
        public string Digest { get; set; }

        /// <summary>
        /// Gets or Sets StartallOnbootDelay
        /// </summary>
        [DataMember(Name = "startall-onboot-delay", EmitDefaultValue = false)]
        public int StartallOnbootDelay { get; set; }

        /// <summary>
        /// Gets or Sets Wakeonlan
        /// </summary>
        [DataMember(Name = "wakeonlan", EmitDefaultValue = false)]
        public string Wakeonlan { get; set; }

        /// <summary>
        /// Returns the string presentation of the object
        /// </summary>
        /// <returns>String presentation of the object</returns>
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("class UpdateNodesSingleConfigRequest {\n");
            sb.Append("  Acme: ").Append(Acme).Append("\n");
            sb.Append("  Acmedomain0: ").Append(Acmedomain0).Append("\n");
            sb.Append("  Acmedomain1: ").Append(Acmedomain1).Append("\n");
            sb.Append("  Acmedomain2: ").Append(Acmedomain2).Append("\n");
            sb.Append("  Acmedomain3: ").Append(Acmedomain3).Append("\n");
            sb.Append("  Acmedomain4: ").Append(Acmedomain4).Append("\n");
            sb.Append("  Acmedomain5: ").Append(Acmedomain5).Append("\n");
            sb.Append("  Acmedomain6: ").Append(Acmedomain6).Append("\n");
            sb.Append("  Acmedomain7: ").Append(Acmedomain7).Append("\n");
            sb.Append("  Acmedomain8: ").Append(Acmedomain8).Append("\n");
            sb.Append("  Acmedomain9: ").Append(Acmedomain9).Append("\n");
            sb.Append("  Acmedomain10: ").Append(Acmedomain10).Append("\n");
            sb.Append("  Acmedomain11: ").Append(Acmedomain11).Append("\n");
            sb.Append("  Acmedomain12: ").Append(Acmedomain12).Append("\n");
            sb.Append("  Acmedomain13: ").Append(Acmedomain13).Append("\n");
            sb.Append("  Acmedomain14: ").Append(Acmedomain14).Append("\n");
            sb.Append("  Acmedomain15: ").Append(Acmedomain15).Append("\n");
            sb.Append("  Acmedomain16: ").Append(Acmedomain16).Append("\n");
            sb.Append("  Acmedomain17: ").Append(Acmedomain17).Append("\n");
            sb.Append("  Acmedomain18: ").Append(Acmedomain18).Append("\n");
            sb.Append("  Acmedomain19: ").Append(Acmedomain19).Append("\n");
            sb.Append("  Acmedomain20: ").Append(Acmedomain20).Append("\n");
            sb.Append("  Acmedomain21: ").Append(Acmedomain21).Append("\n");
            sb.Append("  Acmedomain22: ").Append(Acmedomain22).Append("\n");
            sb.Append("  Acmedomain23: ").Append(Acmedomain23).Append("\n");
            sb.Append("  Acmedomain24: ").Append(Acmedomain24).Append("\n");
            sb.Append("  Acmedomain25: ").Append(Acmedomain25).Append("\n");
            sb.Append("  Acmedomain26: ").Append(Acmedomain26).Append("\n");
            sb.Append("  Acmedomain27: ").Append(Acmedomain27).Append("\n");
            sb.Append("  Acmedomain28: ").Append(Acmedomain28).Append("\n");
            sb.Append("  Acmedomain29: ").Append(Acmedomain29).Append("\n");
            sb.Append("  BallooningTarget: ").Append(BallooningTarget).Append("\n");
            sb.Append("  Delete: ").Append(Delete).Append("\n");
            sb.Append("  Description: ").Append(Description).Append("\n");
            sb.Append("  Digest: ").Append(Digest).Append("\n");
            sb.Append("  StartallOnbootDelay: ").Append(StartallOnbootDelay).Append("\n");
            sb.Append("  Wakeonlan: ").Append(Wakeonlan).Append("\n");
            sb.Append("}\n");
            return sb.ToString();
        }

        /// <summary>
        /// Returns the JSON string presentation of the object
        /// </summary>
        /// <returns>JSON string presentation of the object</returns>
        public virtual string ToJson()
        {
            return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
        }

        /// <summary>
        /// To validate all properties of the instance
        /// </summary>
        /// <param name="validationContext">Validation context</param>
        /// <returns>Validation Result</returns>
        IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
        {
            yield break;
        }
    }

}
