Example #1
0
        async IAsyncEnumerable <ListPermissionGroupsResponse> IPaginator <ListPermissionGroupsResponse> .PaginateAsync(CancellationToken cancellationToken = default)
        {
            if (Interlocked.Exchange(ref _isPaginatorInUse, 1) != 0)
            {
                throw new System.InvalidOperationException("Paginator has already been consumed and cannot be reused. Please create a new instance.");
            }
            PaginatorUtils.SetUserAgentAdditionOnRequest(_request);
            var nextToken = _request.NextToken;
            ListPermissionGroupsResponse response;

            do
            {
                _request.NextToken = nextToken;
                response           = await _client.ListPermissionGroupsAsync(_request, cancellationToken).ConfigureAwait(false);

                nextToken = response.NextToken;
                cancellationToken.ThrowIfCancellationRequested();
                yield return(response);
            }while (!string.IsNullOrEmpty(nextToken));
        }