Table Of Contents


User Guide

First time using the AWS CLI? See the User Guide for help getting started.

Note: You are viewing the documentation for an older major version of the AWS CLI (version 1).

AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click here. For more information see the AWS CLI version 2 installation instructions and migration guide.

[ aws . elasticbeanstalk ]



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

See also: AWS API Documentation

See 'aws help' for descriptions of global parameters.


--application-name <value>
[--description <value>]
[--resource-lifecycle-config <value>]
[--tags <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]


--application-name (string)

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

--description (string)

Your description of the application.

--resource-lifecycle-config (structure)

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

Shorthand Syntax:


JSON Syntax:

  "ServiceRole": "string",
  "VersionLifecycleConfig": {
    "MaxCountRule": {
      "Enabled": true|false,
      "MaxCount": integer,
      "DeleteSourceFromS3": true|false
    "MaxAgeRule": {
      "Enabled": true|false,
      "MaxAgeInDays": integer,
      "DeleteSourceFromS3": true|false

--tags (list)

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.

Shorthand Syntax:

Key=string,Value=string ...

JSON Syntax:

    "Key": "string",
    "Value": "string"

--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See 'aws help' for descriptions of global parameters.


To create a new application

The following command creates a new application named "MyApp":

aws elasticbeanstalk create-application --application-name MyApp --description "my application"

The create-application command only configures the application's name and description. To upload source code for the application, create an initial version of the application using create-application-version. create-application-version also has an auto-create-application option that lets you create the application and the application version in one step.


  "Application": {
      "ApplicationName": "MyApp",
      "ConfigurationTemplates": [],
      "DateUpdated": "2015-02-12T18:32:21.181Z",
      "Description": "my application",
      "DateCreated": "2015-02-12T18:32:21.181Z"


Application -> (structure)

The ApplicationDescription of the application.

ApplicationArn -> (string)

The Amazon Resource Name (ARN) of the application.

ApplicationName -> (string)

The name of the application.

Description -> (string)

User-defined description of the application.

DateCreated -> (timestamp)

The date when the application was created.

DateUpdated -> (timestamp)

The date when the application was last modified.

Versions -> (list)

The names of the versions for this application.


ConfigurationTemplates -> (list)

The names of the configuration templates associated with this application.


ResourceLifecycleConfig -> (structure)

The lifecycle settings for the application.

ServiceRole -> (string)

The ARN of an IAM service role that Elastic Beanstalk has permission to assume.

The ServiceRole property is required the first time that you provide a VersionLifecycleConfig for the application in one of the supporting calls (CreateApplication or UpdateApplicationResourceLifecycle ). After you provide it once, in either one of the calls, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again in subsequent UpdateApplicationResourceLifecycle calls. You can, however, specify it in subsequent calls to change the Service Role to another value.

VersionLifecycleConfig -> (structure)

Defines lifecycle settings for application versions.

MaxCountRule -> (structure)

Specify a max count rule to restrict the number of application versions that are retained for an application.

Enabled -> (boolean)

Specify true to apply the rule, or false to disable it.

MaxCount -> (integer)

Specify the maximum number of application versions to retain.

DeleteSourceFromS3 -> (boolean)

Set to true to delete a version's source bundle from Amazon S3 when Elastic Beanstalk deletes the application version.

MaxAgeRule -> (structure)

Specify a max age rule to restrict the length of time that application versions are retained for an application.

Enabled -> (boolean)

Specify true to apply the rule, or false to disable it.

MaxAgeInDays -> (integer)

Specify the number of days to retain an application versions.

DeleteSourceFromS3 -> (boolean)

Set to true to delete a version's source bundle from Amazon S3 when Elastic Beanstalk deletes the application version.