/// <summary>
 /// Paginator for DescribeSnapshotSchedules operation
 ///</summary>
 public IDescribeSnapshotSchedulesPaginator DescribeSnapshotSchedules(DescribeSnapshotSchedulesRequest request)
 {
     return(new DescribeSnapshotSchedulesPaginator(this.client, request));
 }
 internal DescribeSnapshotSchedulesPaginator(IAmazonRedshift client, DescribeSnapshotSchedulesRequest request)
 {
     this._client = client;
     this._request = request;
 }
 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.Redshift.Model.DescribeSnapshotSchedulesRequest();
     if (cmdletContext.ClusterIdentifier != null)
     {
         request.ClusterIdentifier = cmdletContext.ClusterIdentifier;
     }
     if (cmdletContext.ScheduleIdentifier != null)
     {
         request.ScheduleIdentifier = cmdletContext.ScheduleIdentifier;
     }
     if (cmdletContext.TagKey != null)
     {
         request.TagKeys = cmdletContext.TagKey;
     }
     if (cmdletContext.TagValue != null)
     {
         request.TagValues = cmdletContext.TagValue;
     }
     
     // Initialize loop variants and commence piping
     System.String _nextToken = null;
     int? _emitLimit = null;
     int _retrievedSoFar = 0;
     if (AutoIterationHelpers.HasValue(cmdletContext.Marker))
     {
         _nextToken = cmdletContext.Marker;
     }
     if (AutoIterationHelpers.HasValue(cmdletContext.MaxRecord))
     {
         // The service has a maximum page size of 100. 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 100 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.MaxRecord;
     }
     var _userControllingPaging = this.NoAutoIteration.IsPresent || ParameterWasBound(nameof(this.Marker));
     
     var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);
     do
     {
         request.Marker = _nextToken;
         if (_emitLimit.HasValue)
         {
             int correctPageSize = AutoIterationHelpers.Min(100, _emitLimit.Value);
             request.MaxRecords = AutoIterationHelpers.ConvertEmitLimitToInt32(correctPageSize);
         }
         else
         {
             request.MaxRecords = AutoIterationHelpers.ConvertEmitLimitToInt32(100);
         }
         
         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.SnapshotSchedules.Count;
             
             _nextToken = response.Marker;
             _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;
 }
 private Amazon.Redshift.Model.DescribeSnapshotSchedulesResponse CallAWSServiceOperation(IAmazonRedshift client, Amazon.Redshift.Model.DescribeSnapshotSchedulesRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Redshift", "DescribeSnapshotSchedules");
     try
     {
         #if DESKTOP
         return client.DescribeSnapshotSchedules(request);
         #elif CORECLR
         return client.DescribeSnapshotSchedulesAsync(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.Redshift.Model.DescribeSnapshotSchedulesRequest();
     
     if (cmdletContext.ClusterIdentifier != null)
     {
         request.ClusterIdentifier = cmdletContext.ClusterIdentifier;
     }
     if (cmdletContext.MaxRecord != null)
     {
         request.MaxRecords = AutoIterationHelpers.ConvertEmitLimitToServiceTypeInt32(cmdletContext.MaxRecord.Value);
     }
     if (cmdletContext.ScheduleIdentifier != null)
     {
         request.ScheduleIdentifier = cmdletContext.ScheduleIdentifier;
     }
     if (cmdletContext.TagKey != null)
     {
         request.TagKeys = cmdletContext.TagKey;
     }
     if (cmdletContext.TagValue != null)
     {
         request.TagValues = cmdletContext.TagValue;
     }
     
     // Initialize loop variant and commence piping
     var _nextToken = cmdletContext.Marker;
     var _userControllingPaging = this.NoAutoIteration.IsPresent || ParameterWasBound(nameof(this.Marker));
     
     var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);
     do
     {
         request.Marker = _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.Marker;
         }
         catch (Exception e)
         {
             output = new CmdletOutput { ErrorResponse = e };
         }
         
         ProcessOutput(output);
         
     } while (!_userControllingPaging && AutoIterationHelpers.HasValue(_nextToken));
     
     if (useParameterSelect)
     {
         WriteObject(cmdletContext.Select(null, this));
     }
     
     
     return null;
 }