Provides options for specifying a range inventory retrieval job.

        public object Execute(ExecutorContext context)
        {
            var cmdletContext = context as CmdletContext;
            // create request
            var request = new Amazon.Glacier.Model.InitiateJobRequest();

            if (cmdletContext.AccountId != null)
            {
                request.AccountId = cmdletContext.AccountId;
            }

            // populate JobParameters
            var requestJobParametersIsNull = true;

            request.JobParameters = new Amazon.Glacier.Model.JobParameters();
            System.String requestJobParameters_archiveId = null;
            if (cmdletContext.ArchiveId != null)
            {
                requestJobParameters_archiveId = cmdletContext.ArchiveId;
            }
            if (requestJobParameters_archiveId != null)
            {
                request.JobParameters.ArchiveId = requestJobParameters_archiveId;
                requestJobParametersIsNull      = false;
            }
            System.String requestJobParameters_jobDescription = null;
            if (cmdletContext.JobDescription != null)
            {
                requestJobParameters_jobDescription = cmdletContext.JobDescription;
            }
            if (requestJobParameters_jobDescription != null)
            {
                request.JobParameters.Description = requestJobParameters_jobDescription;
                requestJobParametersIsNull        = false;
            }
            System.String requestJobParameters_outputFormat = null;
            if (cmdletContext.OutputFormat != null)
            {
                requestJobParameters_outputFormat = cmdletContext.OutputFormat;
            }
            if (requestJobParameters_outputFormat != null)
            {
                request.JobParameters.Format = requestJobParameters_outputFormat;
                requestJobParametersIsNull   = false;
            }
            Amazon.Glacier.Model.InventoryRetrievalJobInput requestJobParameters_inventoryRetrieval = null;
            if (cmdletContext.InventoryRetrieval != null)
            {
                requestJobParameters_inventoryRetrieval = cmdletContext.InventoryRetrieval;
            }
            if (requestJobParameters_inventoryRetrieval != null)
            {
                request.JobParameters.InventoryRetrievalParameters = requestJobParameters_inventoryRetrieval;
                requestJobParametersIsNull = false;
            }
            Amazon.Glacier.Model.OutputLocation requestJobParameters_outputLocation = null;
            if (cmdletContext.OutputLocation != null)
            {
                requestJobParameters_outputLocation = cmdletContext.OutputLocation;
            }
            if (requestJobParameters_outputLocation != null)
            {
                request.JobParameters.OutputLocation = requestJobParameters_outputLocation;
                requestJobParametersIsNull           = false;
            }
            System.String requestJobParameters_retrievalByteRange = null;
            if (cmdletContext.RetrievalByteRange != null)
            {
                requestJobParameters_retrievalByteRange = cmdletContext.RetrievalByteRange;
            }
            if (requestJobParameters_retrievalByteRange != null)
            {
                request.JobParameters.RetrievalByteRange = requestJobParameters_retrievalByteRange;
                requestJobParametersIsNull = false;
            }
            Amazon.Glacier.Model.SelectParameters requestJobParameters_selectParameter = null;
            if (cmdletContext.SelectParameter != null)
            {
                requestJobParameters_selectParameter = cmdletContext.SelectParameter;
            }
            if (requestJobParameters_selectParameter != null)
            {
                request.JobParameters.SelectParameters = requestJobParameters_selectParameter;
                requestJobParametersIsNull             = false;
            }
            System.String requestJobParameters_sNSTopic = null;
            if (cmdletContext.SNSTopic != null)
            {
                requestJobParameters_sNSTopic = cmdletContext.SNSTopic;
            }
            if (requestJobParameters_sNSTopic != null)
            {
                request.JobParameters.SNSTopic = requestJobParameters_sNSTopic;
                requestJobParametersIsNull     = false;
            }
            System.String requestJobParameters_tier = null;
            if (cmdletContext.Tier != null)
            {
                requestJobParameters_tier = cmdletContext.Tier;
            }
            if (requestJobParameters_tier != null)
            {
                request.JobParameters.Tier = requestJobParameters_tier;
                requestJobParametersIsNull = false;
            }
            System.String requestJobParameters_jobType = null;
            if (cmdletContext.JobType != null)
            {
                requestJobParameters_jobType = cmdletContext.JobType;
            }
            if (requestJobParameters_jobType != null)
            {
                request.JobParameters.Type = requestJobParameters_jobType;
                requestJobParametersIsNull = false;
            }
            // determine if request.JobParameters should be set to null
            if (requestJobParametersIsNull)
            {
                request.JobParameters = null;
            }
            if (cmdletContext.VaultName != null)
            {
                request.VaultName = cmdletContext.VaultName;
            }

            CmdletOutput output;

            // issue call
            var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);

            try
            {
                var    response       = CallAWSServiceOperation(client, request);
                object pipelineOutput = null;
                pipelineOutput = cmdletContext.Select(response, this);
                output         = new CmdletOutput
                {
                    PipelineOutput  = pipelineOutput,
                    ServiceResponse = response
                };
            }
            catch (Exception e)
            {
                output = new CmdletOutput {
                    ErrorResponse = e
                };
            }

            return(output);
        }