Container for the parameters to the DiscoverInputSchema operation. Infers a schema by evaluating sample records on the specified streaming source (Amazon Kinesis stream or Amazon Kinesis Firehose delivery stream). In the response, the operation returns the inferred schema and also the sample records that the operation used to infer the schema.

You can use the inferred schema when configuring a streaming source for your application. For conceptual information, see Configuring Application Input. Note that when you create an application using the Amazon Kinesis Analytics console, the console uses this operation to infer a schema and show it in the console user interface.

This operation requires permissions to perform the kinesisanalytics:DiscoverInputSchema action.

Inheritance: AmazonKinesisAnalyticsRequest
        /// <summary>
        /// Initiates the asynchronous execution of the DiscoverInputSchema operation.
        /// </summary>
        /// 
        /// <param name="request">Container for the necessary parameters to execute the DiscoverInputSchema operation on AmazonKinesisAnalyticsClient.</param>
        /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param>
        /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        /// 
        /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDiscoverInputSchema
        ///         operation.</returns>
        public IAsyncResult BeginDiscoverInputSchema(DiscoverInputSchemaRequest request, AsyncCallback callback, object state)
        {
            var marshaller = new DiscoverInputSchemaRequestMarshaller();
            var unmarshaller = DiscoverInputSchemaResponseUnmarshaller.Instance;

            return BeginInvoke<DiscoverInputSchemaRequest>(request, marshaller, unmarshaller,
                callback, state);
        }
        /// <summary>
        /// Infers a schema by evaluating sample records on the specified streaming source (Amazon
        /// Kinesis stream or Amazon Kinesis Firehose delivery stream). In the response, the operation
        /// returns the inferred schema and also the sample records that the operation used to
        /// infer the schema.
        /// 
        ///  
        /// <para>
        ///  You can use the inferred schema when configuring a streaming source for your application.
        /// For conceptual information, see <a href="http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring
        /// Application Input</a>. Note that when you create an application using the Amazon Kinesis
        /// Analytics console, the console uses this operation to infer a schema and show it in
        /// the console user interface. 
        /// </para>
        ///  
        /// <para>
        ///  This operation requires permissions to perform the <code>kinesisanalytics:DiscoverInputSchema</code>
        /// action. 
        /// </para>
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the DiscoverInputSchema service method.</param>
        /// 
        /// <returns>The response from the DiscoverInputSchema service method, as returned by KinesisAnalytics.</returns>
        /// <exception cref="Amazon.KinesisAnalytics.Model.InvalidArgumentException">
        /// Specified input parameter value is invalid.
        /// </exception>
        /// <exception cref="Amazon.KinesisAnalytics.Model.ResourceProvisionedThroughputExceededException">
        /// Discovery failed to get a record from the streaming source because of the Kinesis
        /// Streams ProvisionedThroughputExceededException.
        /// </exception>
        /// <exception cref="Amazon.KinesisAnalytics.Model.UnableToDetectSchemaException">
        /// Data format is not valid, Kinesis Analytics is not able to detect schema for the given
        /// streaming source.
        /// </exception>
        public DiscoverInputSchemaResponse DiscoverInputSchema(DiscoverInputSchemaRequest request)
        {
            var marshaller = new DiscoverInputSchemaRequestMarshaller();
            var unmarshaller = DiscoverInputSchemaResponseUnmarshaller.Instance;

            return Invoke<DiscoverInputSchemaRequest,DiscoverInputSchemaResponse>(request, marshaller, unmarshaller);
        }
        public object Execute(ExecutorContext context)
        {
            var cmdletContext = context as CmdletContext;
            // create request
            var request = new Amazon.KinesisAnalytics.Model.DiscoverInputSchemaRequest();


            // populate InputProcessingConfiguration
            var requestInputProcessingConfigurationIsNull = true;

            request.InputProcessingConfiguration = new Amazon.KinesisAnalytics.Model.InputProcessingConfiguration();
            Amazon.KinesisAnalytics.Model.InputLambdaProcessor requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor = null;

            // populate InputLambdaProcessor
            var requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessorIsNull = true;

            requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor = new Amazon.KinesisAnalytics.Model.InputLambdaProcessor();
            System.String requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor_inputLambdaProcessor_ResourceARN = null;
            if (cmdletContext.InputLambdaProcessor_ResourceARN != null)
            {
                requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor_inputLambdaProcessor_ResourceARN = cmdletContext.InputLambdaProcessor_ResourceARN;
            }
            if (requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor_inputLambdaProcessor_ResourceARN != null)
            {
                requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor.ResourceARN = requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor_inputLambdaProcessor_ResourceARN;
                requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessorIsNull       = false;
            }
            System.String requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor_inputLambdaProcessor_RoleARN = null;
            if (cmdletContext.InputLambdaProcessor_RoleARN != null)
            {
                requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor_inputLambdaProcessor_RoleARN = cmdletContext.InputLambdaProcessor_RoleARN;
            }
            if (requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor_inputLambdaProcessor_RoleARN != null)
            {
                requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor.RoleARN = requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor_inputLambdaProcessor_RoleARN;
                requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessorIsNull   = false;
            }
            // determine if requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor should be set to null
            if (requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessorIsNull)
            {
                requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor = null;
            }
            if (requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor != null)
            {
                request.InputProcessingConfiguration.InputLambdaProcessor = requestInputProcessingConfiguration_inputProcessingConfiguration_InputLambdaProcessor;
                requestInputProcessingConfigurationIsNull = false;
            }
            // determine if request.InputProcessingConfiguration should be set to null
            if (requestInputProcessingConfigurationIsNull)
            {
                request.InputProcessingConfiguration = null;
            }

            // populate InputStartingPositionConfiguration
            var requestInputStartingPositionConfigurationIsNull = true;

            request.InputStartingPositionConfiguration = new Amazon.KinesisAnalytics.Model.InputStartingPositionConfiguration();
            Amazon.KinesisAnalytics.InputStartingPosition requestInputStartingPositionConfiguration_inputStartingPositionConfiguration_InputStartingPosition = null;
            if (cmdletContext.InputStartingPositionConfiguration_InputStartingPosition != null)
            {
                requestInputStartingPositionConfiguration_inputStartingPositionConfiguration_InputStartingPosition = cmdletContext.InputStartingPositionConfiguration_InputStartingPosition;
            }
            if (requestInputStartingPositionConfiguration_inputStartingPositionConfiguration_InputStartingPosition != null)
            {
                request.InputStartingPositionConfiguration.InputStartingPosition = requestInputStartingPositionConfiguration_inputStartingPositionConfiguration_InputStartingPosition;
                requestInputStartingPositionConfigurationIsNull = false;
            }
            // determine if request.InputStartingPositionConfiguration should be set to null
            if (requestInputStartingPositionConfigurationIsNull)
            {
                request.InputStartingPositionConfiguration = null;
            }
            if (cmdletContext.ResourceARN != null)
            {
                request.ResourceARN = cmdletContext.ResourceARN;
            }
            if (cmdletContext.RoleARN != null)
            {
                request.RoleARN = cmdletContext.RoleARN;
            }

            // populate S3Configuration
            var requestS3ConfigurationIsNull = true;

            request.S3Configuration = new Amazon.KinesisAnalytics.Model.S3Configuration();
            System.String requestS3Configuration_s3Configuration_BucketARN = null;
            if (cmdletContext.S3Configuration_BucketARN != null)
            {
                requestS3Configuration_s3Configuration_BucketARN = cmdletContext.S3Configuration_BucketARN;
            }
            if (requestS3Configuration_s3Configuration_BucketARN != null)
            {
                request.S3Configuration.BucketARN = requestS3Configuration_s3Configuration_BucketARN;
                requestS3ConfigurationIsNull      = false;
            }
            System.String requestS3Configuration_s3Configuration_FileKey = null;
            if (cmdletContext.S3Configuration_FileKey != null)
            {
                requestS3Configuration_s3Configuration_FileKey = cmdletContext.S3Configuration_FileKey;
            }
            if (requestS3Configuration_s3Configuration_FileKey != null)
            {
                request.S3Configuration.FileKey = requestS3Configuration_s3Configuration_FileKey;
                requestS3ConfigurationIsNull    = false;
            }
            System.String requestS3Configuration_s3Configuration_RoleARN = null;
            if (cmdletContext.S3Configuration_RoleARN != null)
            {
                requestS3Configuration_s3Configuration_RoleARN = cmdletContext.S3Configuration_RoleARN;
            }
            if (requestS3Configuration_s3Configuration_RoleARN != null)
            {
                request.S3Configuration.RoleARN = requestS3Configuration_s3Configuration_RoleARN;
                requestS3ConfigurationIsNull    = false;
            }
            // determine if request.S3Configuration should be set to null
            if (requestS3ConfigurationIsNull)
            {
                request.S3Configuration = null;
            }

            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);
        }
 private Amazon.KinesisAnalytics.Model.DiscoverInputSchemaResponse CallAWSServiceOperation(IAmazonKinesisAnalytics client, Amazon.KinesisAnalytics.Model.DiscoverInputSchemaRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Kinesis Analytics", "DiscoverInputSchema");
     try
     {
         #if DESKTOP
         return(client.DiscoverInputSchema(request));
         #elif CORECLR
         return(client.DiscoverInputSchemaAsync(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;
     }
 }
        /// <summary>
        /// Initiates the asynchronous execution of the DiscoverInputSchema operation.
        /// </summary>
        /// 
        /// <param name="request">Container for the necessary parameters to execute the DiscoverInputSchema operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task<DiscoverInputSchemaResponse> DiscoverInputSchemaAsync(DiscoverInputSchemaRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller = new DiscoverInputSchemaRequestMarshaller();
            var unmarshaller = DiscoverInputSchemaResponseUnmarshaller.Instance;

            return InvokeAsync<DiscoverInputSchemaRequest,DiscoverInputSchemaResponse>(request, marshaller, 
                unmarshaller, cancellationToken);
        }