/// <summary>
        /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonObject into a new instance of <see cref="AdhocBasedTriggerContext" />.
        /// </summary>
        /// <param name="json">A Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonObject instance to deserialize from.</param>
        internal AdhocBasedTriggerContext(Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonObject json)
        {
            bool returnNow = false;

            BeforeFromJson(json, ref returnNow);
            if (returnNow)
            {
                return;
            }
            __triggerContext = new Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.TriggerContext(json);
            { _taggingCriterion = If(json?.PropertyT <Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonObject>("taggingCriteria"), out var __jsonTaggingCriteria) ? Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AdhocBasedTaggingCriteria.FromJson(__jsonTaggingCriteria) : TaggingCriterion; }
            AfterFromJson(json);
        }
        /// <summary>
        /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonObject into a new instance of <see cref="ScheduleBasedTriggerContext" />.
        /// </summary>
        /// <param name="json">A Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonObject instance to deserialize from.</param>
        internal ScheduleBasedTriggerContext(Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonObject json)
        {
            bool returnNow = false;

            BeforeFromJson(json, ref returnNow);
            if (returnNow)
            {
                return;
            }
            __triggerContext = new Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.TriggerContext(json);
            { _schedule = If(json?.PropertyT <Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonObject>("schedule"), out var __jsonSchedule) ? Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.BackupSchedule.FromJson(__jsonSchedule) : Schedule; }
            { _taggingCriterion = If(json?.PropertyT <Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonArray>("taggingCriteria"), out var __jsonTaggingCriteria) ? If(__jsonTaggingCriteria as Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Runtime.Json.JsonArray, out var __v) ? new global::System.Func <Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ITaggingCriteria[]>(() => global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u) => (Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ITaggingCriteria)(Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.TaggingCriteria.FromJson(__u)))))() : null : TaggingCriterion; }
            AfterFromJson(json);
        }