// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
//
// Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.

namespace Microsoft.Azure.Management.RecoveryServices.Backup.Models
{
    using System.Linq;

    /// <summary>
    /// Azure IaaS VM workload-specific additional information for job.
    /// </summary>
    public partial class AzureIaaSVMJobExtendedInfo
    {
        /// <summary>
        /// Initializes a new instance of the AzureIaaSVMJobExtendedInfo class.
        /// </summary>
        public AzureIaaSVMJobExtendedInfo() { }

        /// <summary>
        /// Initializes a new instance of the AzureIaaSVMJobExtendedInfo class.
        /// </summary>
        /// <param name="tasksList">List of tasks associated with this
        /// job.</param>
        /// <param name="propertyBag">Job properties.</param>
        /// <param name="progressPercentage">Indicates progress of the job.
        /// Null if it has not started or completed.</param>
        /// <param name="dynamicErrorMessage">Non localized error message on
        /// job execution.</param>
        public AzureIaaSVMJobExtendedInfo(System.Collections.Generic.IList<AzureIaaSVMJobTaskDetails> tasksList = default(System.Collections.Generic.IList<AzureIaaSVMJobTaskDetails>), System.Collections.Generic.IDictionary<string, string> propertyBag = default(System.Collections.Generic.IDictionary<string, string>), double? progressPercentage = default(double?), string dynamicErrorMessage = default(string))
        {
            TasksList = tasksList;
            PropertyBag = propertyBag;
            ProgressPercentage = progressPercentage;
            DynamicErrorMessage = dynamicErrorMessage;
        }

        /// <summary>
        /// Gets or sets list of tasks associated with this job.
        /// </summary>
        [Newtonsoft.Json.JsonProperty(PropertyName = "tasksList")]
        public System.Collections.Generic.IList<AzureIaaSVMJobTaskDetails> TasksList { get; set; }

        /// <summary>
        /// Gets or sets job properties.
        /// </summary>
        [Newtonsoft.Json.JsonProperty(PropertyName = "propertyBag")]
        public System.Collections.Generic.IDictionary<string, string> PropertyBag { get; set; }

        /// <summary>
        /// Gets or sets indicates progress of the job. Null if it has not
        /// started or completed.
        /// </summary>
        [Newtonsoft.Json.JsonProperty(PropertyName = "progressPercentage")]
        public double? ProgressPercentage { get; set; }

        /// <summary>
        /// Gets or sets non localized error message on job execution.
        /// </summary>
        [Newtonsoft.Json.JsonProperty(PropertyName = "dynamicErrorMessage")]
        public string DynamicErrorMessage { get; set; }

    }
}
