generated/api/Models/JobDetailForStorage.json.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.9.4, generator: @autorest/powershell@3.0.415)
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

namespace Commvault.Powershell.Models
{
    using static Commvault.Powershell.Runtime.Extensions;

    /// <summary>Details of a Job on storage.</summary>
    public partial class JobDetailForStorage
    {

        /// <summary>
        /// <c>AfterFromJson</c> will be called after the json deserialization has finished, allowing customization of the object
        /// before it is returned. Implement this method in a partial class to enable this behavior
        /// </summary>
        /// <param name="json">The JsonNode that should be deserialized into this object.</param>

        partial void AfterFromJson(Commvault.Powershell.Runtime.Json.JsonObject json);

        /// <summary>
        /// <c>AfterToJson</c> will be called after the json erialization has finished, allowing customization of the <see cref="Commvault.Powershell.Runtime.Json.JsonObject"
        /// /> before it is returned. Implement this method in a partial class to enable this behavior
        /// </summary>
        /// <param name="container">The JSON container that the serialization result will be placed in.</param>

        partial void AfterToJson(ref Commvault.Powershell.Runtime.Json.JsonObject container);

        /// <summary>
        /// <c>BeforeFromJson</c> will be called before the json deserialization has commenced, allowing complete customization of
        /// the object before it is deserialized.
        /// If you wish to disable the default deserialization entirely, return <c>true</c> in the <see "returnNow" /> output parameter.
        /// Implement this method in a partial class to enable this behavior.
        /// </summary>
        /// <param name="json">The JsonNode that should be deserialized into this object.</param>
        /// <param name="returnNow">Determines if the rest of the deserialization should be processed, or if the method should return
        /// instantly.</param>

        partial void BeforeFromJson(Commvault.Powershell.Runtime.Json.JsonObject json, ref bool returnNow);

        /// <summary>
        /// <c>BeforeToJson</c> will be called before the json serialization has commenced, allowing complete customization of the
        /// object before it is serialized.
        /// If you wish to disable the default serialization entirely, return <c>true</c> in the <see "returnNow" /> output parameter.
        /// Implement this method in a partial class to enable this behavior.
        /// </summary>
        /// <param name="container">The JSON container that the serialization result will be placed in.</param>
        /// <param name="returnNow">Determines if the rest of the serialization should be processed, or if the method should return
        /// instantly.</param>

        partial void BeforeToJson(ref Commvault.Powershell.Runtime.Json.JsonObject container, ref bool returnNow);

        /// <summary>
        /// Deserializes a <see cref="Commvault.Powershell.Runtime.Json.JsonNode"/> into an instance of Commvault.Powershell.Models.IJobDetailForStorage.
        /// </summary>
        /// <param name="node">a <see cref="Commvault.Powershell.Runtime.Json.JsonNode" /> to deserialize from.</param>
        /// <returns>an instance of Commvault.Powershell.Models.IJobDetailForStorage.</returns>
        public static Commvault.Powershell.Models.IJobDetailForStorage FromJson(Commvault.Powershell.Runtime.Json.JsonNode node)
        {
            return node is Commvault.Powershell.Runtime.Json.JsonObject json ? new JobDetailForStorage(json) : null;
        }

        /// <summary>
        /// Deserializes a Commvault.Powershell.Runtime.Json.JsonObject into a new instance of <see cref="JobDetailForStorage" />.
        /// </summary>
        /// <param name="json">A Commvault.Powershell.Runtime.Json.JsonObject instance to deserialize from.</param>
        internal JobDetailForStorage(Commvault.Powershell.Runtime.Json.JsonObject json)
        {
            bool returnNow = false;
            BeforeFromJson(json, ref returnNow);
            if (returnNow)
            {
                return;
            }
            {_server = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonObject>("server"), out var __jsonServer) ? Commvault.Powershell.Models.IdName.FromJson(__jsonServer) : Server;}
            {_agentType = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonObject>("agentType"), out var __jsonAgentType) ? Commvault.Powershell.Models.IdName.FromJson(__jsonAgentType) : AgentType;}
            {_subClient = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonObject>("subClient"), out var __jsonSubClient) ? Commvault.Powershell.Models.IdName.FromJson(__jsonSubClient) : SubClient;}
            {_instance = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonObject>("instance"), out var __jsonInstance) ? Commvault.Powershell.Models.IdName.FromJson(__jsonInstance) : Instance;}
            {_backupSet = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonObject>("backupSet"), out var __jsonBackupSet) ? Commvault.Powershell.Models.IdName.FromJson(__jsonBackupSet) : BackupSet;}
            {_region = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonObject>("region"), out var __jsonRegion) ? Commvault.Powershell.Models.IdName.FromJson(__jsonRegion) : Region;}
            {_jobId = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("jobId"), out var __jsonJobId) ? (long?)__jsonJobId : JobId;}
            {_status = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;}
            {_jobType = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("jobType"), out var __jsonJobType) ? (string)__jsonJobType : (string)JobType;}
            {_startTime = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("startTime"), out var __jsonStartTime) ? (long?)__jsonStartTime : StartTime;}
            {_sizeOfApplication = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("sizeOfApplication"), out var __jsonSizeOfApplication) ? (long?)__jsonSizeOfApplication : SizeOfApplication;}
            {_retainUntil = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("retainUntil"), out var __jsonRetainUntil) ? (long?)__jsonRetainUntil : RetainUntil;}
            {_retentionReason = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("retentionReason"), out var __jsonRetentionReason) ? (string)__jsonRetentionReason : (string)RetentionReason;}
            {_username = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("username"), out var __jsonUsername) ? (string)__jsonUsername : (string)Username;}
            {_description = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;}
            {_savingPercentage = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("savingPercentage"), out var __jsonSavingPercentage) ? (float?)__jsonSavingPercentage : SavingPercentage;}
            {_dataWritten = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("dataWritten"), out var __jsonDataWritten) ? (long?)__jsonDataWritten : DataWritten;}
            {_avgThroughput = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("avgThroughput"), out var __jsonAvgThroughput) ? (float?)__jsonAvgThroughput : AvgThroughput;}
            {_endTime = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("endTime"), out var __jsonEndTime) ? (long?)__jsonEndTime : EndTime;}
            {_duration = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("duration"), out var __jsonDuration) ? (long?)__jsonDuration : Duration;}
            {_dataVerificationStatus = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("dataVerificationStatus"), out var __jsonDataVerificationStatus) ? (long?)__jsonDataVerificationStatus : DataVerificationStatus;}
            {_hardwareEncrypted = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonBoolean>("hardwareEncrypted"), out var __jsonHardwareEncrypted) ? (bool?)__jsonHardwareEncrypted : HardwareEncrypted;}
            {_lastVerifiedOn = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("lastVerifiedOn"), out var __jsonLastVerifiedOn) ? (string)__jsonLastVerifiedOn : (string)LastVerifiedOn;}
            {_copiedTime = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("copiedTime"), out var __jsonCopiedTime) ? (long?)__jsonCopiedTime : CopiedTime;}
            {_encrypted = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonBoolean>("encrypted"), out var __jsonEncrypted) ? (bool?)__jsonEncrypted : Encrypted;}
            {_parentJobId = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("parentJobId"), out var __jsonParentJobId) ? (long?)__jsonParentJobId : ParentJobId;}
            {_retainedBy = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("retainedBy"), out var __jsonRetainedBy) ? (long?)__jsonRetainedBy : RetainedBy;}
            {_deduplicated = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonBoolean>("deduplicated"), out var __jsonDeduplicated) ? (bool?)__jsonDeduplicated : Deduplicated;}
            {_requiredByJobs = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("requiredByJobs"), out var __jsonRequiredByJobs) ? (string)__jsonRequiredByJobs : (string)RequiredByJobs;}
            {_strRetainedBy = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("strRetainedBy"), out var __jsonStrRetainedBy) ? (string)__jsonStrRetainedBy : (string)StrRetainedBy;}
            {_strDataVerificationStatus = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("strDataVerificationStatus"), out var __jsonStrDataVerificationStatus) ? (string)__jsonStrDataVerificationStatus : (string)StrDataVerificationStatus;}
            {_isAged = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonBoolean>("isAged"), out var __jsonIsAged) ? (bool?)__jsonIsAged : IsAged;}
            {_statusId = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("statusId"), out var __jsonStatusId) ? (long?)__jsonStatusId : StatusId;}
            {_jobAttributesEx = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonNumber>("jobAttributesEx"), out var __jsonJobAttributesEx) ? (long?)__jsonJobAttributesEx : JobAttributesEx;}
            {_isSoftAged = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonBoolean>("isSoftAged"), out var __jsonIsSoftAged) ? (bool?)__jsonIsSoftAged : IsSoftAged;}
            {_retentionCode = If( json?.PropertyT<Commvault.Powershell.Runtime.Json.JsonString>("retentionCode"), out var __jsonRetentionCode) ? (string)__jsonRetentionCode : (string)RetentionCode;}
            AfterFromJson(json);
        }

        /// <summary>
        /// Serializes this instance of <see cref="JobDetailForStorage" /> into a <see cref="Commvault.Powershell.Runtime.Json.JsonNode" />.
        /// </summary>
        /// <param name="container">The <see cref="Commvault.Powershell.Runtime.Json.JsonObject"/> container to serialize this object into. If the caller
        /// passes in <c>null</c>, a new instance will be created and returned to the caller.</param>
        /// <param name="serializationMode">Allows the caller to choose the depth of the serialization. See <see cref="Commvault.Powershell.Runtime.SerializationMode"/>.</param>
        /// <returns>
        /// a serialized instance of <see cref="JobDetailForStorage" /> as a <see cref="Commvault.Powershell.Runtime.Json.JsonNode" />.
        /// </returns>
        public Commvault.Powershell.Runtime.Json.JsonNode ToJson(Commvault.Powershell.Runtime.Json.JsonObject container, Commvault.Powershell.Runtime.SerializationMode serializationMode)
        {
            container = container ?? new Commvault.Powershell.Runtime.Json.JsonObject();

            bool returnNow = false;
            BeforeToJson(ref container, ref returnNow);
            if (returnNow)
            {
                return container;
            }
            AddIf( null != this._server ? (Commvault.Powershell.Runtime.Json.JsonNode) this._server.ToJson(null,serializationMode) : null, "server" ,container.Add );
            AddIf( null != this._agentType ? (Commvault.Powershell.Runtime.Json.JsonNode) this._agentType.ToJson(null,serializationMode) : null, "agentType" ,container.Add );
            AddIf( null != this._subClient ? (Commvault.Powershell.Runtime.Json.JsonNode) this._subClient.ToJson(null,serializationMode) : null, "subClient" ,container.Add );
            AddIf( null != this._instance ? (Commvault.Powershell.Runtime.Json.JsonNode) this._instance.ToJson(null,serializationMode) : null, "instance" ,container.Add );
            AddIf( null != this._backupSet ? (Commvault.Powershell.Runtime.Json.JsonNode) this._backupSet.ToJson(null,serializationMode) : null, "backupSet" ,container.Add );
            AddIf( null != this._region ? (Commvault.Powershell.Runtime.Json.JsonNode) this._region.ToJson(null,serializationMode) : null, "region" ,container.Add );
            AddIf( null != this._jobId ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._jobId) : null, "jobId" ,container.Add );
            AddIf( null != (((object)this._status)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add );
            AddIf( null != (((object)this._jobType)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._jobType.ToString()) : null, "jobType" ,container.Add );
            AddIf( null != this._startTime ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._startTime) : null, "startTime" ,container.Add );
            AddIf( null != this._sizeOfApplication ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._sizeOfApplication) : null, "sizeOfApplication" ,container.Add );
            AddIf( null != this._retainUntil ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._retainUntil) : null, "retainUntil" ,container.Add );
            AddIf( null != (((object)this._retentionReason)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._retentionReason.ToString()) : null, "retentionReason" ,container.Add );
            AddIf( null != (((object)this._username)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._username.ToString()) : null, "username" ,container.Add );
            AddIf( null != (((object)this._description)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add );
            AddIf( null != this._savingPercentage ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((float)this._savingPercentage) : null, "savingPercentage" ,container.Add );
            AddIf( null != this._dataWritten ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._dataWritten) : null, "dataWritten" ,container.Add );
            AddIf( null != this._avgThroughput ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((float)this._avgThroughput) : null, "avgThroughput" ,container.Add );
            AddIf( null != this._endTime ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._endTime) : null, "endTime" ,container.Add );
            AddIf( null != this._duration ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._duration) : null, "duration" ,container.Add );
            AddIf( null != this._dataVerificationStatus ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._dataVerificationStatus) : null, "dataVerificationStatus" ,container.Add );
            AddIf( null != this._hardwareEncrypted ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonBoolean((bool)this._hardwareEncrypted) : null, "hardwareEncrypted" ,container.Add );
            AddIf( null != (((object)this._lastVerifiedOn)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._lastVerifiedOn.ToString()) : null, "lastVerifiedOn" ,container.Add );
            AddIf( null != this._copiedTime ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._copiedTime) : null, "copiedTime" ,container.Add );
            AddIf( null != this._encrypted ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonBoolean((bool)this._encrypted) : null, "encrypted" ,container.Add );
            AddIf( null != this._parentJobId ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._parentJobId) : null, "parentJobId" ,container.Add );
            AddIf( null != this._retainedBy ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._retainedBy) : null, "retainedBy" ,container.Add );
            AddIf( null != this._deduplicated ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonBoolean((bool)this._deduplicated) : null, "deduplicated" ,container.Add );
            AddIf( null != (((object)this._requiredByJobs)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._requiredByJobs.ToString()) : null, "requiredByJobs" ,container.Add );
            AddIf( null != (((object)this._strRetainedBy)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._strRetainedBy.ToString()) : null, "strRetainedBy" ,container.Add );
            AddIf( null != (((object)this._strDataVerificationStatus)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._strDataVerificationStatus.ToString()) : null, "strDataVerificationStatus" ,container.Add );
            AddIf( null != this._isAged ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonBoolean((bool)this._isAged) : null, "isAged" ,container.Add );
            AddIf( null != this._statusId ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._statusId) : null, "statusId" ,container.Add );
            AddIf( null != this._jobAttributesEx ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonNumber((long)this._jobAttributesEx) : null, "jobAttributesEx" ,container.Add );
            AddIf( null != this._isSoftAged ? (Commvault.Powershell.Runtime.Json.JsonNode)new Commvault.Powershell.Runtime.Json.JsonBoolean((bool)this._isSoftAged) : null, "isSoftAged" ,container.Add );
            AddIf( null != (((object)this._retentionCode)?.ToString()) ? (Commvault.Powershell.Runtime.Json.JsonNode) new Commvault.Powershell.Runtime.Json.JsonString(this._retentionCode.ToString()) : null, "retentionCode" ,container.Add );
            AfterToJson(ref container);
            return container;
        }
    }
}