createApplication method

Future<CreateApplicationResponse> createApplication({
  1. required String applicationName,
  2. required RuntimeEnvironment runtimeEnvironment,
  3. required String serviceExecutionRole,
  4. ApplicationConfiguration? applicationConfiguration,
  5. String? applicationDescription,
  6. ApplicationMode? applicationMode,
  7. List<CloudWatchLoggingOption>? cloudWatchLoggingOptions,
  8. List<Tag>? tags,
})

Creates a Managed Service for Apache Flink application. For information about creating a Managed Service for Apache Flink application, see Creating an Application.

May throw CodeValidationException. May throw ConcurrentModificationException. May throw InvalidArgumentException. May throw InvalidRequestException. May throw LimitExceededException. May throw ResourceInUseException. May throw TooManyTagsException. May throw UnsupportedOperationException.

Parameter applicationName : The name of your application (for example, sample-app).

Parameter runtimeEnvironment : The runtime environment for the application.

Parameter serviceExecutionRole : The IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.

Parameter applicationConfiguration : Use this parameter to configure the application.

Parameter applicationDescription : A summary description of the application.

Parameter applicationMode : Use the STREAMING mode to create a Managed Service for Apache Flink application. To create a Managed Service for Apache Flink Studio notebook, use the INTERACTIVE mode.

Parameter cloudWatchLoggingOptions : Use this parameter to configure an Amazon CloudWatch log stream to monitor application configuration errors.

Parameter tags : A list of one or more tags to assign to the application. A tag is a key-value pair that identifies an 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.

Implementation

Future<CreateApplicationResponse> createApplication({
  required String applicationName,
  required RuntimeEnvironment runtimeEnvironment,
  required String serviceExecutionRole,
  ApplicationConfiguration? applicationConfiguration,
  String? applicationDescription,
  ApplicationMode? applicationMode,
  List<CloudWatchLoggingOption>? cloudWatchLoggingOptions,
  List<Tag>? tags,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'KinesisAnalytics_20180523.CreateApplication'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ApplicationName': applicationName,
      'RuntimeEnvironment': runtimeEnvironment.value,
      'ServiceExecutionRole': serviceExecutionRole,
      if (applicationConfiguration != null)
        'ApplicationConfiguration': applicationConfiguration,
      if (applicationDescription != null)
        'ApplicationDescription': applicationDescription,
      if (applicationMode != null) 'ApplicationMode': applicationMode.value,
      if (cloudWatchLoggingOptions != null)
        'CloudWatchLoggingOptions': cloudWatchLoggingOptions,
      if (tags != null) 'Tags': tags,
    },
  );

  return CreateApplicationResponse.fromJson(jsonResponse.body);
}