internal ListFindingsPaginator(IAmazonGuardDuty client, ListFindingsRequest request)
 {
     this._client = client;
     this._request = request;
 }
 private Amazon.GuardDuty.Model.ListFindingsResponse CallAWSServiceOperation(IAmazonGuardDuty client, Amazon.GuardDuty.Model.ListFindingsRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon GuardDuty", "ListFindings");
     try
     {
         #if DESKTOP
         return client.ListFindings(request);
         #elif CORECLR
         return client.ListFindingsAsync(request).GetAwaiter().GetResult();
         #else
                 #error "Unknown build edition"
         #endif
     }
     catch (AmazonServiceException exc)
     {
         var webException = exc.InnerException as System.Net.WebException;
         if (webException != null)
         {
             throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
         }
         throw;
     }
 }
 public object Execute(ExecutorContext context)
 {
     var cmdletContext = context as CmdletContext;
     #pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute
     var useParameterSelect = this.Select.StartsWith("^") || this.PassThru.IsPresent;
     #pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute
     
     // create request and set iteration invariants
     var request = new Amazon.GuardDuty.Model.ListFindingsRequest();
     
     if (cmdletContext.DetectorId != null)
     {
         request.DetectorId = cmdletContext.DetectorId;
     }
     if (cmdletContext.FindingCriterion != null)
     {
         request.FindingCriteria = cmdletContext.FindingCriterion;
     }
     if (cmdletContext.MaxResult != null)
     {
         request.MaxResults = AutoIterationHelpers.ConvertEmitLimitToServiceTypeInt32(cmdletContext.MaxResult.Value);
     }
     if (cmdletContext.SortCriterion != null)
     {
         request.SortCriteria = cmdletContext.SortCriterion;
     }
     
     // Initialize loop variant and commence piping
     var _nextToken = cmdletContext.NextToken;
     var _userControllingPaging = this.NoAutoIteration.IsPresent || ParameterWasBound(nameof(this.NextToken));
     
     var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);
     do
     {
         request.NextToken = _nextToken;
         
         CmdletOutput output;
         
         try
         {
             
             var response = CallAWSServiceOperation(client, request);
             
             object pipelineOutput = null;
             if (!useParameterSelect)
             {
                 pipelineOutput = cmdletContext.Select(response, this);
             }
             output = new CmdletOutput
             {
                 PipelineOutput = pipelineOutput,
                 ServiceResponse = response
             };
             
             _nextToken = response.NextToken;
         }
         catch (Exception e)
         {
             output = new CmdletOutput { ErrorResponse = e };
         }
         
         ProcessOutput(output);
         
     } while (!_userControllingPaging && AutoIterationHelpers.HasValue(_nextToken));
     
     if (useParameterSelect)
     {
         WriteObject(cmdletContext.Select(null, this));
     }
     
     
     return null;
 }
 public object Execute(ExecutorContext context)
 {
     var cmdletContext = context as CmdletContext;
     var useParameterSelect = this.Select.StartsWith("^") || this.PassThru.IsPresent;
     
     // create request and set iteration invariants
     var request = new Amazon.GuardDuty.Model.ListFindingsRequest();
     if (cmdletContext.DetectorId != null)
     {
         request.DetectorId = cmdletContext.DetectorId;
     }
     if (cmdletContext.FindingCriterion != null)
     {
         request.FindingCriteria = cmdletContext.FindingCriterion;
     }
     if (cmdletContext.SortCriterion != null)
     {
         request.SortCriteria = cmdletContext.SortCriterion;
     }
     
     // Initialize loop variants and commence piping
     System.String _nextToken = null;
     int? _emitLimit = null;
     int _retrievedSoFar = 0;
     if (AutoIterationHelpers.HasValue(cmdletContext.NextToken))
     {
         _nextToken = cmdletContext.NextToken;
     }
     if (cmdletContext.MaxResult.HasValue)
     {
         // The service has a maximum page size of 50. If the user has
         // asked for more items than page max, and there is no page size
         // configured, we rely on the service ignoring the set maximum
         // and giving us 50 items back. If a page size is set, that will
         // be used to configure the pagination.
         // We'll make further calls to satisfy the user's request.
         _emitLimit = cmdletContext.MaxResult;
     }
     var _userControllingPaging = this.NoAutoIteration.IsPresent || ParameterWasBound(nameof(this.NextToken));
     
     var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);
     do
     {
         request.NextToken = _nextToken;
         if (_emitLimit.HasValue)
         {
             int correctPageSize = Math.Min(50, _emitLimit.Value);
             request.MaxResults = AutoIterationHelpers.ConvertEmitLimitToInt32(correctPageSize);
         }
         
         CmdletOutput output;
         
         try
         {
             
             var response = CallAWSServiceOperation(client, request);
             object pipelineOutput = null;
             if (!useParameterSelect)
             {
                 pipelineOutput = cmdletContext.Select(response, this);
             }
             output = new CmdletOutput
             {
                 PipelineOutput = pipelineOutput,
                 ServiceResponse = response
             };
             int _receivedThisCall = response.FindingIds.Count;
             
             _nextToken = response.NextToken;
             _retrievedSoFar += _receivedThisCall;
             if (_emitLimit.HasValue)
             {
                 _emitLimit -= _receivedThisCall;
             }
         }
         catch (Exception e)
         {
             if (_retrievedSoFar == 0 || !_emitLimit.HasValue)
             {
                 output = new CmdletOutput { ErrorResponse = e };
             }
             else
             {
                 break;
             }
         }
         
         ProcessOutput(output);
     } while (!_userControllingPaging && AutoIterationHelpers.HasValue(_nextToken) && (!_emitLimit.HasValue || _emitLimit.Value >= 1));
     
     
     if (useParameterSelect)
     {
         WriteObject(cmdletContext.Select(null, this));
     }
     
     
     return null;
 }
Пример #5
0
 /// <summary>
 /// Paginator for ListFindings operation
 ///</summary>
 public IListFindingsPaginator ListFindings(ListFindingsRequest request)
 {
     return(new ListFindingsPaginator(this.client, request));
 }