:doc:`ElasticBeanstalk <../../elasticbeanstalk>` / Client / update_application

******************
update_application
******************



.. py:method:: ElasticBeanstalk.Client.update_application(**kwargs)

  

  Updates the specified application to have the specified properties.

   

  .. note::

    

    If a property (for example, ``description``) is not provided, the value remains unchanged. To clear these properties, specify an empty string.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/UpdateApplication>`_  


  **Request Syntax**
  ::

    response = client.update_application(
        ApplicationName='string',
        Description='string'
    )
    
  :type ApplicationName: string
  :param ApplicationName: **[REQUIRED]** 

    The name of the application to update. If no such application is found, ``UpdateApplication`` returns an ``InvalidParameterValue`` error.

    

  
  :type Description: string
  :param Description: 

    A new description for the application.

     

    Default: If not specified, AWS Elastic Beanstalk does not update the description.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'Application': {
              'ApplicationArn': 'string',
              'ApplicationName': 'string',
              'Description': 'string',
              'DateCreated': datetime(2015, 1, 1),
              'DateUpdated': datetime(2015, 1, 1),
              'Versions': [
                  'string',
              ],
              'ConfigurationTemplates': [
                  'string',
              ],
              'ResourceLifecycleConfig': {
                  'ServiceRole': 'string',
                  'VersionLifecycleConfig': {
                      'MaxCountRule': {
                          'Enabled': True|False,
                          'MaxCount': 123,
                          'DeleteSourceFromS3': True|False
                      },
                      'MaxAgeRule': {
                          'Enabled': True|False,
                          'MaxAgeInDays': 123,
                          'DeleteSourceFromS3': True|False
                      }
                  }
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Result message containing a single description of an application.

      
      

      - **Application** *(dict) --* 

        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** *(datetime) --* 

          The date when the application was created.

          
        

        - **DateUpdated** *(datetime) --* 

          The date when the application was last modified.

          
        

        - **Versions** *(list) --* 

          The names of the versions for this application.

          
          

          - *(string) --* 
      
        

        - **ConfigurationTemplates** *(list) --* 

          The names of the configuration templates associated with this application.

          
          

          - *(string) --* 
      
        

        - **ResourceLifecycleConfig** *(dict) --* 

          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** *(dict) --* 

            Defines lifecycle settings for application versions.

            
            

            - **MaxCountRule** *(dict) --* 

              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** *(dict) --* 

              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.

                
          
        
      
    
  

  **Examples**

  The following operation updates the description of an application named my-app:
  ::

    response = client.update_application(
        ApplicationName='my-app',
        Description='my Elastic Beanstalk application',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'Application': {
            'ApplicationName': 'my-app',
            'ConfigurationTemplates': [
            ],
            'DateCreated': datetime(2015, 8, 13, 19, 15, 50, 3, 225, 0),
            'DateUpdated': datetime(2015, 8, 20, 22, 34, 56, 3, 232, 0),
            'Description': 'my Elastic Beanstalk application',
            'Versions': [
                '2fba-stage-150819_234450',
                'bf07-stage-150820_214945',
                '93f8',
                'fd7c-stage-150820_000431',
                '22a0-stage-150819_185942',
            ],
        },
        'ResponseMetadata': {
            '...': '...',
        },
    }

  