%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE! %% See https://github.com/aws-beam/aws-codegen for more details. %% @doc Amazon Kinesis Analytics %% %% Overview %% %% This documentation is for version 1 of the Amazon Kinesis Data Analytics %% API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% This is the Amazon Kinesis Analytics v1 API Reference. The Amazon Kinesis %% Analytics Developer Guide provides additional information. -module(aws_kinesis_analytics). -export([add_application_cloud_watch_logging_option/2, add_application_cloud_watch_logging_option/3, add_application_input/2, add_application_input/3, add_application_input_processing_configuration/2, add_application_input_processing_configuration/3, add_application_output/2, add_application_output/3, add_application_reference_data_source/2, add_application_reference_data_source/3, create_application/2, create_application/3, delete_application/2, delete_application/3, delete_application_cloud_watch_logging_option/2, delete_application_cloud_watch_logging_option/3, delete_application_input_processing_configuration/2, delete_application_input_processing_configuration/3, delete_application_output/2, delete_application_output/3, delete_application_reference_data_source/2, delete_application_reference_data_source/3, describe_application/2, describe_application/3, discover_input_schema/2, discover_input_schema/3, list_applications/2, list_applications/3, list_tags_for_resource/2, list_tags_for_resource/3, start_application/2, start_application/3, stop_application/2, stop_application/3, tag_resource/2, tag_resource/3, untag_resource/2, untag_resource/3, update_application/2, update_application/3]). -include_lib("hackney/include/hackney_lib.hrl"). %%==================================================================== %% API %%==================================================================== %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Adds a CloudWatch log stream to monitor application configuration errors. %% For more information about using CloudWatch log streams with Amazon %% Kinesis Analytics applications, see Working with Amazon CloudWatch Logs. add_application_cloud_watch_logging_option(Client, Input) when is_map(Client), is_map(Input) -> add_application_cloud_watch_logging_option(Client, Input, []). add_application_cloud_watch_logging_option(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"AddApplicationCloudWatchLoggingOption">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Adds a streaming source to your Amazon Kinesis application. For conceptual %% information, see Configuring Application Input. %% %% You can add a streaming source either when you create an application or %% you can use this operation to add a streaming source after you create an %% application. For more information, see CreateApplication. %% %% Any configuration update, including adding a streaming source using this %% operation, results in a new version of the application. You can use the %% DescribeApplication operation to find the current application version. %% %% This operation requires permissions to perform the %% `kinesisanalytics:AddApplicationInput' action. add_application_input(Client, Input) when is_map(Client), is_map(Input) -> add_application_input(Client, Input, []). add_application_input(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"AddApplicationInput">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Adds an InputProcessingConfiguration to an application. An input processor %% preprocesses records on the input stream before the application's SQL code %% executes. Currently, the only input processor available is AWS Lambda. add_application_input_processing_configuration(Client, Input) when is_map(Client), is_map(Input) -> add_application_input_processing_configuration(Client, Input, []). add_application_input_processing_configuration(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"AddApplicationInputProcessingConfiguration">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Adds an external destination to your Amazon Kinesis Analytics application. %% %% If you want Amazon Kinesis Analytics to deliver data from an %% in-application stream within your application to an external destination %% (such as an Amazon Kinesis stream, an Amazon Kinesis Firehose delivery %% stream, or an AWS Lambda function), you add the relevant configuration to %% your application using this operation. You can configure one or more %% outputs for your application. Each output configuration maps an %% in-application stream and an external destination. %% %% You can use one of the output configurations to deliver data from your %% in-application error stream to an external destination so that you can %% analyze the errors. For more information, see Understanding Application %% Output (Destination). %% %% Any configuration update, including adding a streaming source using this %% operation, results in a new version of the application. You can use the %% DescribeApplication operation to find the current application version. %% %% For the limits on the number of application inputs and outputs you can %% configure, see Limits. %% %% This operation requires permissions to perform the %% `kinesisanalytics:AddApplicationOutput' action. add_application_output(Client, Input) when is_map(Client), is_map(Input) -> add_application_output(Client, Input, []). add_application_output(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"AddApplicationOutput">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Adds a reference data source to an existing application. %% %% Amazon Kinesis Analytics reads reference data (that is, an Amazon S3 %% object) and creates an in-application table within your application. In %% the request, you provide the source (S3 bucket name and object key name), %% name of the in-application table to create, and the necessary mapping %% information that describes how data in Amazon S3 object maps to columns in %% the resulting in-application table. %% %% For conceptual information, see Configuring Application Input. For the %% limits on data sources you can add to your application, see Limits. %% %% This operation requires permissions to perform the %% `kinesisanalytics:AddApplicationOutput' action. add_application_reference_data_source(Client, Input) when is_map(Client), is_map(Input) -> add_application_reference_data_source(Client, Input, []). add_application_reference_data_source(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"AddApplicationReferenceDataSource">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Creates an Amazon Kinesis Analytics application. You can configure each %% application with one streaming source as input, application code to %% process the input, and up to three destinations where you want Amazon %% Kinesis Analytics to write the output data from your application. For an %% overview, see How it Works. %% %% In the input configuration, you map the streaming source to an %% in-application stream, which you can think of as a constantly updating %% table. In the mapping, you must provide a schema for the in-application %% stream and map each data column in the in-application stream to a data %% element in the streaming source. %% %% Your application code is one or more SQL statements that read input data, %% transform it, and generate output. Your application code can create one or %% more SQL artifacts like SQL streams or pumps. %% %% In the output configuration, you can configure the application to write %% data from in-application streams created in your applications to up to %% three destinations. %% %% To read data from your source stream or write data to destination streams, %% Amazon Kinesis Analytics needs your permissions. You grant these %% permissions by creating IAM roles. This operation requires permissions to %% perform the `kinesisanalytics:CreateApplication' action. %% %% For introductory exercises to create an Amazon Kinesis Analytics %% application, see Getting Started. create_application(Client, Input) when is_map(Client), is_map(Input) -> create_application(Client, Input, []). create_application(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateApplication">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Deletes the specified application. Amazon Kinesis Analytics halts %% application execution and deletes the application, including any %% application artifacts (such as in-application streams, reference table, %% and application code). %% %% This operation requires permissions to perform the %% `kinesisanalytics:DeleteApplication' action. delete_application(Client, Input) when is_map(Client), is_map(Input) -> delete_application(Client, Input, []). delete_application(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteApplication">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Deletes a CloudWatch log stream from an application. For more information %% about using CloudWatch log streams with Amazon Kinesis Analytics %% applications, see Working with Amazon CloudWatch Logs. delete_application_cloud_watch_logging_option(Client, Input) when is_map(Client), is_map(Input) -> delete_application_cloud_watch_logging_option(Client, Input, []). delete_application_cloud_watch_logging_option(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteApplicationCloudWatchLoggingOption">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Deletes an InputProcessingConfiguration from an input. delete_application_input_processing_configuration(Client, Input) when is_map(Client), is_map(Input) -> delete_application_input_processing_configuration(Client, Input, []). delete_application_input_processing_configuration(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteApplicationInputProcessingConfiguration">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Deletes output destination configuration from your application %% configuration. Amazon Kinesis Analytics will no longer write data from the %% corresponding in-application stream to the external output destination. %% %% This operation requires permissions to perform the %% `kinesisanalytics:DeleteApplicationOutput' action. delete_application_output(Client, Input) when is_map(Client), is_map(Input) -> delete_application_output(Client, Input, []). delete_application_output(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteApplicationOutput">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Deletes a reference data source configuration from the specified %% application configuration. %% %% If the application is running, Amazon Kinesis Analytics immediately %% removes the in-application table that you created using the %% AddApplicationReferenceDataSource operation. %% %% This operation requires permissions to perform the %% `kinesisanalytics.DeleteApplicationReferenceDataSource' action. delete_application_reference_data_source(Client, Input) when is_map(Client), is_map(Input) -> delete_application_reference_data_source(Client, Input, []). delete_application_reference_data_source(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteApplicationReferenceDataSource">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Returns information about a specific Amazon Kinesis Analytics application. %% %% If you want to retrieve a list of all applications in your account, use %% the ListApplications operation. %% %% This operation requires permissions to perform the %% `kinesisanalytics:DescribeApplication' action. You can use %% `DescribeApplication' to get the current application versionId, which you %% need to call other operations such as `Update'. describe_application(Client, Input) when is_map(Client), is_map(Input) -> describe_application(Client, Input, []). describe_application(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeApplication">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Infers a schema by evaluating sample records on the specified streaming %% source (Amazon Kinesis stream or Amazon Kinesis Firehose delivery stream) %% or S3 object. 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. discover_input_schema(Client, Input) when is_map(Client), is_map(Input) -> discover_input_schema(Client, Input, []). discover_input_schema(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DiscoverInputSchema">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Returns a list of Amazon Kinesis Analytics applications in your account. %% For each application, the response includes the application name, Amazon %% Resource Name (ARN), and status. If the response returns the %% `HasMoreApplications' value as true, you can send another request by %% adding the `ExclusiveStartApplicationName' in the request body, and set %% the value of this to the last application name from the previous response. %% %% If you want detailed information about a specific application, use %% DescribeApplication. %% %% This operation requires permissions to perform the %% `kinesisanalytics:ListApplications' action. list_applications(Client, Input) when is_map(Client), is_map(Input) -> list_applications(Client, Input, []). list_applications(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListApplications">>, Input, Options). %% @doc Retrieves the list of key-value tags assigned to the application. %% %% For more information, see Using Tagging. list_tags_for_resource(Client, Input) when is_map(Client), is_map(Input) -> list_tags_for_resource(Client, Input, []). list_tags_for_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListTagsForResource">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Starts the specified Amazon Kinesis Analytics application. After creating %% an application, you must exclusively call this operation to start your %% application. %% %% After the application starts, it begins consuming the input data, %% processes it, and writes the output to the configured destination. %% %% The application status must be `READY' for you to start an application. %% You can get the application status in the console or using the %% DescribeApplication operation. %% %% After you start the application, you can stop the application from %% processing the input by calling the StopApplication operation. %% %% This operation requires permissions to perform the %% `kinesisanalytics:StartApplication' action. start_application(Client, Input) when is_map(Client), is_map(Input) -> start_application(Client, Input, []). start_application(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StartApplication">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Stops the application from processing input data. You can stop an %% application only if it is in the running state. You can use the %% DescribeApplication operation to find the application state. After the %% application is stopped, Amazon Kinesis Analytics stops reading data from %% the input, the application stops processing data, and there is no output %% written to the destination. %% %% This operation requires permissions to perform the %% `kinesisanalytics:StopApplication' action. stop_application(Client, Input) when is_map(Client), is_map(Input) -> stop_application(Client, Input, []). stop_application(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StopApplication">>, Input, Options). %% @doc Adds one or more key-value tags to a Kinesis Analytics application. %% %% Note that the maximum number of application tags includes system tags. The %% maximum number of user-defined application tags is 50. For more %% information, see Using Tagging. tag_resource(Client, Input) when is_map(Client), is_map(Input) -> tag_resource(Client, Input, []). tag_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"TagResource">>, Input, Options). %% @doc Removes one or more tags from a Kinesis Analytics application. %% %% For more information, see Using Tagging. untag_resource(Client, Input) when is_map(Client), is_map(Input) -> untag_resource(Client, Input, []). untag_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UntagResource">>, Input, Options). %% @doc This documentation is for version 1 of the Amazon Kinesis Data %% Analytics API, which only supports SQL applications. %% %% Version 2 of the API supports SQL and Java applications. For more %% information about version 2, see Amazon Kinesis Data Analytics API V2 %% Documentation. %% %% Updates an existing Amazon Kinesis Analytics application. Using this API, %% you can update application code, input configuration, and output %% configuration. %% %% Note that Amazon Kinesis Analytics updates the %% `CurrentApplicationVersionId' each time you update your application. %% %% This operation requires permission for the %% `kinesisanalytics:UpdateApplication' action. update_application(Client, Input) when is_map(Client), is_map(Input) -> update_application(Client, Input, []). update_application(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateApplication">>, Input, Options). %%==================================================================== %% Internal functions %%==================================================================== -spec request(aws_client:aws_client(), binary(), map(), list()) -> {ok, Result, {integer(), list(), hackney:client()}} | {error, Error, {integer(), list(), hackney:client()}} | {error, term()} when Result :: map() | undefined, Error :: map(). request(Client, Action, Input0, Options) -> Client1 = Client#{service => <<"kinesisanalytics">>}, Host = build_host(<<"kinesisanalytics">>, Client1), URL = build_url(Host, Client1), Headers = [ {<<"Host">>, Host}, {<<"Content-Type">>, <<"application/x-amz-json-1.1">>}, {<<"X-Amz-Target">>, <<"KinesisAnalytics_20150814.", Action/binary>>} ], Input = Input0, Payload = jsx:encode(Input), SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload), Response = hackney:request(post, URL, SignedHeaders, Payload, Options), handle_response(Response). handle_response({ok, 200, ResponseHeaders, Client}) -> case hackney:body(Client) of {ok, <<>>} -> {ok, undefined, {200, ResponseHeaders, Client}}; {ok, Body} -> Result = jsx:decode(Body), {ok, Result, {200, ResponseHeaders, Client}} end; handle_response({ok, StatusCode, ResponseHeaders, Client}) -> {ok, Body} = hackney:body(Client), Error = jsx:decode(Body), {error, Error, {StatusCode, ResponseHeaders, Client}}; handle_response({error, Reason}) -> {error, Reason}. build_host(_EndpointPrefix, #{region := <<"local">>, endpoint := Endpoint}) -> Endpoint; build_host(_EndpointPrefix, #{region := <<"local">>}) -> <<"localhost">>; build_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) -> aws_util:binary_join([EndpointPrefix, Region, Endpoint], <<".">>). build_url(Host, Client) -> Proto = maps:get(proto, Client), Port = maps:get(port, Client), aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).