// <auto-generated>
// 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.
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.
// </auto-generated>

namespace Microsoft.Azure.Management.NetApp.Models
{
    using Newtonsoft.Json;
    using System.Linq;

    /// <summary>
    /// Replication status
    /// </summary>
    public partial class ReplicationStatus
    {
        /// <summary>
        /// Initializes a new instance of the ReplicationStatus class.
        /// </summary>
        public ReplicationStatus()
        {
            CustomInit();
        }

        /// <summary>
        /// Initializes a new instance of the ReplicationStatus class.
        /// </summary>
        /// <param name="healthy">Replication health check</param>
        /// <param name="relationshipStatus">Status of the mirror relationship.
        /// Possible values include: 'Idle', 'Transferring'</param>
        /// <param name="mirrorState">The status of the replication. Possible
        /// values include: 'Uninitialized', 'Mirrored', 'Broken'</param>
        /// <param name="totalProgress">The progress of the replication</param>
        /// <param name="errorMessage">Displays error message if the
        /// replication is in an error state</param>
        public ReplicationStatus(bool? healthy = default(bool?), string relationshipStatus = default(string), string mirrorState = default(string), string totalProgress = default(string), string errorMessage = default(string))
        {
            Healthy = healthy;
            RelationshipStatus = relationshipStatus;
            MirrorState = mirrorState;
            TotalProgress = totalProgress;
            ErrorMessage = errorMessage;
            CustomInit();
        }

        /// <summary>
        /// An initialization method that performs custom operations like setting defaults
        /// </summary>
        partial void CustomInit();

        /// <summary>
        /// Gets or sets replication health check
        /// </summary>
        [JsonProperty(PropertyName = "healthy")]
        public bool? Healthy { get; set; }

        /// <summary>
        /// Gets or sets status of the mirror relationship. Possible values
        /// include: 'Idle', 'Transferring'
        /// </summary>
        [JsonProperty(PropertyName = "relationshipStatus")]
        public string RelationshipStatus { get; set; }

        /// <summary>
        /// Gets or sets the status of the replication. Possible values
        /// include: 'Uninitialized', 'Mirrored', 'Broken'
        /// </summary>
        [JsonProperty(PropertyName = "mirrorState")]
        public string MirrorState { get; set; }

        /// <summary>
        /// Gets or sets the progress of the replication
        /// </summary>
        [JsonProperty(PropertyName = "totalProgress")]
        public string TotalProgress { get; set; }

        /// <summary>
        /// Gets or sets displays error message if the replication is in an
        /// error state
        /// </summary>
        [JsonProperty(PropertyName = "errorMessage")]
        public string ErrorMessage { get; set; }

    }
}
