Beispiel #1
0
        /// <summary>
        /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ITriggerContext.
        /// Note: the Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ITriggerContext interface is polymorphic,
        /// and the precise model class that will get deserialized is determined at runtime based on the payload.
        /// </summary>
        /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
        /// <returns>
        /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ITriggerContext.
        /// </returns>
        public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ITriggerContext FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
        {
            if (!(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json))
            {
                return(null);
            }
            // Polymorphic type -- select the appropriate constructor using the discriminator

            switch (json.StringProperty("objectType"))
            {
            case "ScheduleBasedTriggerContext":
            {
                return(new ScheduleBasedTriggerContext(json));
            }

            case "AdhocBasedTriggerContext":
            {
                return(new AdhocBasedTriggerContext(json));
            }
            }
            return(new TriggerContext(json));
        }
Beispiel #2
0
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IProtectionStatusDetails.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IProtectionStatusDetails.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IProtectionStatusDetails FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new ProtectionStatusDetails(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IBackupInstancesTriggerRehydrateAcceptedResponseHeaders.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IBackupInstancesTriggerRehydrateAcceptedResponseHeaders.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IBackupInstancesTriggerRehydrateAcceptedResponseHeaders FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new BackupInstancesTriggerRehydrateAcceptedResponseHeaders(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IBaseBackupPolicyResourceList.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IBaseBackupPolicyResourceList.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IBaseBackupPolicyResourceList FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new BaseBackupPolicyResourceList(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IRestoreTargetInfo.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IRestoreTargetInfo.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IRestoreTargetInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new RestoreTargetInfo(json) : null);
 }
Beispiel #6
0
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IScheduleBasedBackupCriteria.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IScheduleBasedBackupCriteria.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IScheduleBasedBackupCriteria FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new ScheduleBasedBackupCriteria(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAzureBackupRestoreWithRehydrationRequest.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAzureBackupRestoreWithRehydrationRequest.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAzureBackupRestoreWithRehydrationRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new AzureBackupRestoreWithRehydrationRequest(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IAzureBackupJobExportJobsAcceptedResponseHeaders.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IAzureBackupJobExportJobsAcceptedResponseHeaders.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IAzureBackupJobExportJobsAcceptedResponseHeaders FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new AzureBackupJobExportJobsAcceptedResponseHeaders(json) : null);
 }
Beispiel #9
0
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IDataProtectionBackupIdentity.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IDataProtectionBackupIdentity.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.IDataProtectionBackupIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new DataProtectionBackupIdentity(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IPatchResourceRequestInputTags.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IPatchResourceRequestInputTags.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IPatchResourceRequestInputTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new PatchResourceRequestInputTags(json) : null);
 }
Beispiel #11
0
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IResourceOperationGateKeeper.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IResourceOperationGateKeeper.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IResourceOperationGateKeeper FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new ResourceOperationGateKeeper(json) : null);
 }
Beispiel #12
0
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICheckNameAvailabilityRequest.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICheckNameAvailabilityRequest.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICheckNameAvailabilityRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new CheckNameAvailabilityRequest(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAdhocBasedTriggerContext.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAdhocBasedTriggerContext.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAdhocBasedTriggerContext FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new AdhocBasedTriggerContext(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IErrorAdditionalInfo1.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IErrorAdditionalInfo1.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IErrorAdditionalInfo1 FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new ErrorAdditionalInfo1(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IClientDiscoveryResponse.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IClientDiscoveryResponse.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IClientDiscoveryResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new ClientDiscoveryResponse(json) : null);
 }
Beispiel #16
0
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IExportJobsResult.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IExportJobsResult.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IExportJobsResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new ExportJobsResult(json) : null);
 }
Beispiel #17
0
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ISourceLifeCycle.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ISourceLifeCycle.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ISourceLifeCycle FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new SourceLifeCycle(json) : null);
 }
        /// <summary>
        /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IBackupParameters.
        /// Note: the Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IBackupParameters interface is
        /// polymorphic, and the precise model class that will get deserialized is determined at runtime based on the payload.
        /// </summary>
        /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
        /// <returns>
        /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IBackupParameters.
        /// </returns>
        public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IBackupParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
        {
            if (!(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json))
            {
                return(null);
            }
            // Polymorphic type -- select the appropriate constructor using the discriminator

            switch (json.StringProperty("objectType"))
            {
            case "AzureBackupParameters":
            {
                return(new AzureBackupParameters(json));
            }
            }
            return(new BackupParameters(json));
        }
Beispiel #19
0
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICopyOnExpiryOption.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICopyOnExpiryOption.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICopyOnExpiryOption FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new CopyOnExpiryOption(json) : null);
 }
Beispiel #20
0
        /// <summary>
        /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICopyOption.
        /// Note: the Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICopyOption interface is polymorphic,
        /// and the precise model class that will get deserialized is determined at runtime based on the payload.
        /// </summary>
        /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
        /// <returns>
        /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICopyOption.
        /// </returns>
        public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.ICopyOption FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
        {
            if (!(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json))
            {
                return(null);
            }
            // Polymorphic type -- select the appropriate constructor using the discriminator

            switch (json.StringProperty("objectType"))
            {
            case "CopyOnExpiryOption":
            {
                return(new CopyOnExpiryOption(json));
            }

            case "CustomCopyOption":
            {
                return(new CustomCopyOption(json));
            }

            case "ImmediateCopyOption":
            {
                return(new ImmediateCopyOption(json));
            }
            }
            return(new CopyOption(json));
        }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAzureBackupDiscreteRecoveryPoint.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAzureBackupDiscreteRecoveryPoint.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IAzureBackupDiscreteRecoveryPoint FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return(node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new AzureBackupDiscreteRecoveryPoint(json) : null);
 }
 /// <summary>
 /// Deserializes a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode"/> into an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IValidateRestoreRequestObject.
 /// </summary>
 /// <param name="node">a <see cref="Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode" /> to deserialize from.</param>
 /// <returns>
 /// an instance of Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IValidateRestoreRequestObject.
 /// </returns>
 public static Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Models.Api202001Alpha.IValidateRestoreRequestObject FromJson(Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonNode node)
 {
     return node is Microsoft.Azure.PowerShell.Cmdlets.DataProtectionBackup.Runtime.Json.JsonObject json ? new ValidateRestoreRequestObject(json) : null;
 }