/// <summary>
 /// Triggers detection of changes performed on Azure File share connected to
 /// the specified Azure File Sync Cloud Endpoint.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group. The name is case insensitive.
 /// </param>
 /// <param name='storageSyncServiceName'>
 /// Name of Storage Sync Service resource.
 /// </param>
 /// <param name='syncGroupName'>
 /// Name of Sync Group resource.
 /// </param>
 /// <param name='cloudEndpointName'>
 /// Name of Cloud Endpoint object.
 /// </param>
 /// <param name='parameters'>
 /// Trigger Change Detection Action parameters.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <CloudEndpointsTriggerChangeDetectionHeaders> BeginTriggerChangeDetectionAsync(this ICloudEndpointsOperations operations, string resourceGroupName, string storageSyncServiceName, string syncGroupName, string cloudEndpointName, TriggerChangeDetectionParameters parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginTriggerChangeDetectionWithHttpMessagesAsync(resourceGroupName, storageSyncServiceName, syncGroupName, cloudEndpointName, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Headers);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Executes the cmdlet.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            ExecuteClientAction(() =>
            {
                var resourceName           = default(string);
                var resourceGroupName      = default(string);
                var storageSyncServiceName = default(string);
                var parentResourceName     = default(string);

                if (this.IsParameterBound(c => c.ResourceId))
                {
                    var resourceIdentifier = new ResourceIdentifier(ResourceId);
                    resourceName           = resourceIdentifier.ResourceName;
                    resourceGroupName      = resourceIdentifier.ResourceGroupName;
                    parentResourceName     = resourceIdentifier.GetParentResourceName(StorageSyncConstants.SyncGroupTypeName, 0);
                    storageSyncServiceName = resourceIdentifier.GetParentResourceName(StorageSyncConstants.StorageSyncServiceTypeName, 1);
                }
                else if (this.IsParameterBound(c => c.InputObject))
                {
                    resourceName           = InputObject.CloudEndpointName;
                    resourceGroupName      = InputObject.ResourceGroupName;
                    parentResourceName     = InputObject.SyncGroupName;
                    storageSyncServiceName = InputObject.StorageSyncServiceName;
                }
                else
                {
                    resourceName           = Name;
                    resourceGroupName      = ResourceGroupName;
                    parentResourceName     = SyncGroupName;
                    storageSyncServiceName = StorageSyncServiceName;
                }

                var triggerChangeDetectionParameters = new TriggerChangeDetectionParameters();
                if (this.IsParameterBound(c => c.DirectoryPath))
                {
                    if (this.DirectoryPath == null)
                    {
                        throw new PSArgumentException(nameof(this.DirectoryPath));
                    }

                    triggerChangeDetectionParameters.DirectoryPath       = this.DirectoryPath;
                    triggerChangeDetectionParameters.ChangeDetectionMode = this.Recursive.IsPresent ? ChangeDetectionMode.Recursive : ChangeDetectionMode.Default;
                }
                else if (this.IsParameterBound(c => c.Path))
                {
                    if (this.Path == null || this.Path.Length == 0)
                    {
                        throw new PSArgumentException(nameof(this.Path));
                    }

                    triggerChangeDetectionParameters.Paths = this.Path.ToList();
                }

                string target = string.Join("/", resourceGroupName, storageSyncServiceName, parentResourceName, resourceName);

                if (ShouldProcess(target, ActionMessage))
                {
                    StorageSyncClientWrapper.StorageSyncManagementClient.CloudEndpoints.TriggerChangeDetection(
                        resourceGroupName: resourceGroupName,
                        storageSyncServiceName: storageSyncServiceName,
                        syncGroupName: parentResourceName,
                        cloudEndpointName: resourceName,
                        parameters: triggerChangeDetectionParameters);
                }
            });

            if (PassThru.IsPresent)
            {
                WriteObject(true);
            }
        }
 /// <summary>
 /// Triggers detection of changes performed on Azure File share connected to
 /// the specified Azure File Sync Cloud Endpoint.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group. The name is case insensitive.
 /// </param>
 /// <param name='storageSyncServiceName'>
 /// Name of Storage Sync Service resource.
 /// </param>
 /// <param name='syncGroupName'>
 /// Name of Sync Group resource.
 /// </param>
 /// <param name='cloudEndpointName'>
 /// Name of Cloud Endpoint object.
 /// </param>
 /// <param name='parameters'>
 /// Trigger Change Detection Action parameters.
 /// </param>
 public static CloudEndpointsTriggerChangeDetectionHeaders BeginTriggerChangeDetection(this ICloudEndpointsOperations operations, string resourceGroupName, string storageSyncServiceName, string syncGroupName, string cloudEndpointName, TriggerChangeDetectionParameters parameters)
 {
     return(operations.BeginTriggerChangeDetectionAsync(resourceGroupName, storageSyncServiceName, syncGroupName, cloudEndpointName, parameters).GetAwaiter().GetResult());
 }