// 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.

// ReplicationRecoveryPlans is the client for the ReplicationRecoveryPlans methods of the SiteRecoveryManagementClient
// service.
import Foundation
import azureSwiftRuntime
extension Commands {
public struct ReplicationRecoveryPlans {
    public static func Create(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String, input: CreateRecoveryPlanInputProtocol) -> ReplicationRecoveryPlansCreate {
        return CreateCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName, input: input)
    }
    public static func Delete(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String) -> ReplicationRecoveryPlansDelete {
        return DeleteCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName)
    }
    public static func FailoverCommit(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String) -> ReplicationRecoveryPlansFailoverCommit {
        return FailoverCommitCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName)
    }
    public static func Get(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String) -> ReplicationRecoveryPlansGet {
        return GetCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName)
    }
    public static func List(resourceName: String, resourceGroupName: String, subscriptionId: String) -> ReplicationRecoveryPlansList {
        return ListCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId)
    }
    public static func PlannedFailover(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String, input: RecoveryPlanPlannedFailoverInputProtocol) -> ReplicationRecoveryPlansPlannedFailover {
        return PlannedFailoverCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName, input: input)
    }
    public static func Reprotect(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String) -> ReplicationRecoveryPlansReprotect {
        return ReprotectCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName)
    }
    public static func TestFailover(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String, input: RecoveryPlanTestFailoverInputProtocol) -> ReplicationRecoveryPlansTestFailover {
        return TestFailoverCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName, input: input)
    }
    public static func TestFailoverCleanup(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String, input: RecoveryPlanTestFailoverCleanupInputProtocol) -> ReplicationRecoveryPlansTestFailoverCleanup {
        return TestFailoverCleanupCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName, input: input)
    }
    public static func UnplannedFailover(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String, input: RecoveryPlanUnplannedFailoverInputProtocol) -> ReplicationRecoveryPlansUnplannedFailover {
        return UnplannedFailoverCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName, input: input)
    }
    public static func Update(resourceName: String, resourceGroupName: String, subscriptionId: String, recoveryPlanName: String, input: UpdateRecoveryPlanInputProtocol) -> ReplicationRecoveryPlansUpdate {
        return UpdateCommand(resourceName: resourceName, resourceGroupName: resourceGroupName, subscriptionId: subscriptionId, recoveryPlanName: recoveryPlanName, input: input)
    }
}
}
