addApplicationOutput method
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.
May throw ResourceNotFoundException. May throw ResourceInUseException. May throw InvalidArgumentException. May throw ConcurrentModificationException. May throw UnsupportedOperationException.
Parameter applicationName
:
Name of the application to which you want to add the output configuration.
Parameter currentApplicationVersionId
:
Version of the application to which you want to add the output
configuration. You can use the DescribeApplication
operation to get the current application version. If the version specified
is not the current version, the
ConcurrentModificationException
is returned.
Parameter output
:
An array of objects, each describing one output configuration. In the
output configuration, you specify the name of an in-application stream, a
destination (that is, an Amazon Kinesis stream, an Amazon Kinesis Firehose
delivery stream, or an AWS Lambda function), and record the formation to
use when writing to the destination.
Implementation
Future<void> addApplicationOutput({
required String applicationName,
required int currentApplicationVersionId,
required Output output,
}) async {
ArgumentError.checkNotNull(applicationName, 'applicationName');
_s.validateStringLength(
'applicationName',
applicationName,
1,
128,
isRequired: true,
);
ArgumentError.checkNotNull(
currentApplicationVersionId, 'currentApplicationVersionId');
_s.validateNumRange(
'currentApplicationVersionId',
currentApplicationVersionId,
1,
999999999,
isRequired: true,
);
ArgumentError.checkNotNull(output, 'output');
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'KinesisAnalytics_20150814.AddApplicationOutput'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'ApplicationName': applicationName,
'CurrentApplicationVersionId': currentApplicationVersionId,
'Output': output,
},
);
}