Current section

Files

Jump to
aws_erlang src aws_kinesis_analytics.erl
Raw

src/aws_kinesis_analytics.erl

%% 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, Input, Options) ->
RequestFun = fun() -> do_request(Client, Action, Input, Options) end,
aws_request:request(RequestFun, Options).
do_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, <<"/">>], <<"">>).