/// <summary>
 /// Create new Protection Policy.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.BackupServices.ICSMProtectionPolicyOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required.
 /// </param>
 /// <param name='resourceName'>
 /// Required.
 /// </param>
 /// <param name='policyName'>
 /// Required. The protection policy Name to be updated.
 /// </param>
 /// <param name='cSMAddProtectionPolicyRequest'>
 /// Required. The protection policy creation request.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Optional. Request header parameters.
 /// </param>
 /// <returns>
 /// A standard service response including an HTTP status code and
 /// request ID.
 /// </returns>
 public static AzureOperationResponse Add(this ICSMProtectionPolicyOperations operations, string resourceGroupName, string resourceName, string policyName, CSMAddProtectionPolicyRequest cSMAddProtectionPolicyRequest, CustomRequestHeaders customRequestHeaders)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((ICSMProtectionPolicyOperations)s).AddAsync(resourceGroupName, resourceName, policyName, cSMAddProtectionPolicyRequest, customRequestHeaders);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
 /// <summary>
 /// Initializes a new instance of the BackupServicesManagementClient
 /// class.
 /// </summary>
 /// <param name='httpClient'>
 /// The Http client
 /// </param>
 public BackupServicesManagementClient(HttpClient httpClient)
     : base(httpClient)
 {
     this._backUp              = new BackUpOperations(this);
     this._container           = new ContainerOperations(this);
     this._cSMProtectionPolicy = new CSMProtectionPolicyOperations(this);
     this._dataSource          = new DataSourceOperations(this);
     this._job               = new JobOperations(this);
     this._operationStatus   = new OperationStatus(this);
     this._protectableObject = new ProtectableObjectOperations(this);
     this._recoveryPoint     = new RecoveryPointOperations(this);
     this._restore           = new RestoreOperations(this);
     this._apiVersion        = "2013-03-01";
     this._longRunningOperationInitialTimeout = -1;
     this._longRunningOperationRetryTimeout   = -1;
     this.HttpClient.Timeout = TimeSpan.FromSeconds(300);
 }
 /// <summary>
 /// Create new Protection Policy.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.BackupServices.ICSMProtectionPolicyOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required.
 /// </param>
 /// <param name='resourceName'>
 /// Required.
 /// </param>
 /// <param name='policyName'>
 /// Required. The protection policy Name to be updated.
 /// </param>
 /// <param name='cSMAddProtectionPolicyRequest'>
 /// Required. The protection policy creation request.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Optional. Request header parameters.
 /// </param>
 /// <returns>
 /// A standard service response including an HTTP status code and
 /// request ID.
 /// </returns>
 public static Task <AzureOperationResponse> AddAsync(this ICSMProtectionPolicyOperations operations, string resourceGroupName, string resourceName, string policyName, CSMAddProtectionPolicyRequest cSMAddProtectionPolicyRequest, CustomRequestHeaders customRequestHeaders)
 {
     return(operations.AddAsync(resourceGroupName, resourceName, policyName, cSMAddProtectionPolicyRequest, customRequestHeaders, CancellationToken.None));
 }
 /// <summary>
 /// Get the list of all Protection Policy.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.BackupServices.ICSMProtectionPolicyOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required.
 /// </param>
 /// <param name='resourceName'>
 /// Required.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Optional. Request header parameters.
 /// </param>
 /// <returns>
 /// The definition of a CSMProtectionPolicyListOperationResponse.
 /// </returns>
 public static Task <CSMProtectionPolicyListOperationResponse> ListAsync(this ICSMProtectionPolicyOperations operations, string resourceGroupName, string resourceName, CustomRequestHeaders customRequestHeaders)
 {
     return(operations.ListAsync(resourceGroupName, resourceName, customRequestHeaders, CancellationToken.None));
 }