/// <summary>
 /// Returns a list of workspaces the user has access to.
 /// </summary>
 /// <remarks>
 /// &lt;br/&gt;**Note**: Users that have been recently added to a group may not
 /// have their new group immediately available, see [Refresh user
 /// permissions](https://docs.microsoft.com/en-us/rest/api/power-bi/users/refreshuserpermissions).&lt;br/&gt;&lt;br/&gt;**Required
 /// scope**: Workspace.Read.All or Workspace.ReadWrite.All&lt;br/&gt;To set the
 /// permissions scope, see [Register an
 /// app](https://docs.microsoft.com/power-bi/developer/register-app).
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='filter'>
 /// Filters the results, based on a boolean condition
 /// </param>
 /// <param name='top'>
 /// Returns only the first n results
 /// </param>
 /// <param name='skip'>
 /// Skips the first n results
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <Groups> GetGroupsAsync(this IGroupsOperations operations, string filter = default(string), int?top = default(int?), int?skip = default(int?), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetGroupsWithHttpMessagesAsync(filter, top, skip, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }