createApplication method

Future<ApplicationDescriptionMessage> createApplication({
  1. required String applicationName,
  2. String? description,
  3. ApplicationResourceLifecycleConfig? resourceLifecycleConfig,
  4. List<Tag>? tags,
})

Creates an application that has one configuration template named default and no application versions.

May throw TooManyApplicationsException.

Parameter applicationName : The name of the application. Must be unique within your account.

Parameter description : Your description of the application.

Parameter resourceLifecycleConfig : Specifies an application resource lifecycle configuration to prevent your application from accumulating too many versions.

Parameter tags : Specifies the tags applied to the application.

Elastic Beanstalk applies these tags only to the application. Environments that you create in the application don't inherit the tags.

Implementation

Future<ApplicationDescriptionMessage> createApplication({
  required String applicationName,
  String? description,
  ApplicationResourceLifecycleConfig? resourceLifecycleConfig,
  List<Tag>? tags,
}) async {
  final $request = <String, String>{
    'ApplicationName': applicationName,
    if (description != null) 'Description': description,
    if (resourceLifecycleConfig != null)
      for (var e1 in resourceLifecycleConfig.toQueryMap().entries)
        'ResourceLifecycleConfig.${e1.key}': e1.value,
    if (tags != null)
      if (tags.isEmpty)
        'Tags': ''
      else
        for (var i1 = 0; i1 < tags.length; i1++)
          for (var e3 in tags[i1].toQueryMap().entries)
            'Tags.member.${i1 + 1}.${e3.key}': e3.value,
  };
  final $result = await _protocol.send(
    $request,
    action: 'CreateApplication',
    version: '2010-12-01',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    resultWrapper: 'CreateApplicationResult',
  );
  return ApplicationDescriptionMessage.fromXml($result);
}