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

*********************
terminate_environment
*********************



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

  

  Terminates the specified environment.

  

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


  **Request Syntax**
  ::

    response = client.terminate_environment(
        EnvironmentId='string',
        EnvironmentName='string',
        TerminateResources=True|False,
        ForceTerminate=True|False
    )
    
  :type EnvironmentId: string
  :param EnvironmentId: 

    The ID of the environment to terminate.

     

    Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns ``MissingRequiredParameter`` error.

    

  
  :type EnvironmentName: string
  :param EnvironmentName: 

    The name of the environment to terminate.

     

    Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns ``MissingRequiredParameter`` error.

    

  
  :type TerminateResources: boolean
  :param TerminateResources: 

    Indicates whether the associated AWS resources should shut down when the environment is terminated:

     

    
    * ``true``: The specified environment as well as the associated AWS resources, such as Auto Scaling group and LoadBalancer, are terminated.
     
    * ``false``: AWS Elastic Beanstalk resource management is removed from the environment, but the AWS resources continue to operate.
    

     

    For more information, see the `AWS Elastic Beanstalk User Guide. <https://docs.aws.amazon.com/elasticbeanstalk/latest/ug/>`__

     

    Default: ``true``

     

    Valid Values: ``true`` | ``false``

    

  
  :type ForceTerminate: boolean
  :param ForceTerminate: 

    Terminates the target environment even if another environment in the same group is dependent on it.

    

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

    
    ::

      {
          'EnvironmentName': 'string',
          'EnvironmentId': 'string',
          'ApplicationName': 'string',
          'VersionLabel': 'string',
          'SolutionStackName': 'string',
          'PlatformArn': 'string',
          'TemplateName': 'string',
          'Description': 'string',
          'EndpointURL': 'string',
          'CNAME': 'string',
          'DateCreated': datetime(2015, 1, 1),
          'DateUpdated': datetime(2015, 1, 1),
          'Status': 'Aborting'|'Launching'|'Updating'|'LinkingFrom'|'LinkingTo'|'Ready'|'Terminating'|'Terminated',
          'AbortableOperationInProgress': True|False,
          'Health': 'Green'|'Yellow'|'Red'|'Grey',
          'HealthStatus': 'NoData'|'Unknown'|'Pending'|'Ok'|'Info'|'Warning'|'Degraded'|'Severe'|'Suspended',
          'Resources': {
              'LoadBalancer': {
                  'LoadBalancerName': 'string',
                  'Domain': 'string',
                  'Listeners': [
                      {
                          'Protocol': 'string',
                          'Port': 123
                      },
                  ]
              }
          },
          'Tier': {
              'Name': 'string',
              'Type': 'string',
              'Version': 'string'
          },
          'EnvironmentLinks': [
              {
                  'LinkName': 'string',
                  'EnvironmentName': 'string'
              },
          ],
          'EnvironmentArn': 'string',
          'OperationsRole': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Describes the properties of an environment.

      
      

      - **EnvironmentName** *(string) --* 

        The name of this environment.

        
      

      - **EnvironmentId** *(string) --* 

        The ID of this environment.

        
      

      - **ApplicationName** *(string) --* 

        The name of the application associated with this environment.

        
      

      - **VersionLabel** *(string) --* 

        The application version deployed in this environment.

        
      

      - **SolutionStackName** *(string) --* 

        The name of the ``SolutionStack`` deployed with this environment.

        
      

      - **PlatformArn** *(string) --* 

        The ARN of the platform version.

        
      

      - **TemplateName** *(string) --* 

        The name of the configuration template used to originally launch this environment.

        
      

      - **Description** *(string) --* 

        Describes this environment.

        
      

      - **EndpointURL** *(string) --* 

        For load-balanced, autoscaling environments, the URL to the LoadBalancer. For single-instance environments, the IP address of the instance.

        
      

      - **CNAME** *(string) --* 

        The URL to the CNAME for this environment.

        
      

      - **DateCreated** *(datetime) --* 

        The creation date for this environment.

        
      

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

        The last modified date for this environment.

        
      

      - **Status** *(string) --* 

        The current operational status of the environment:

         

        
        * ``Launching``: Environment is in the process of initial deployment.
         
        * ``Updating``: Environment is in the process of updating its configuration settings or application version.
         
        * ``Ready``: Environment is available to have an action performed on it, such as update or terminate.
         
        * ``Terminating``: Environment is in the shut-down process.
         
        * ``Terminated``: Environment is not running.
        

        
      

      - **AbortableOperationInProgress** *(boolean) --* 

        Indicates if there is an in-progress environment configuration update or application version deployment that you can cancel.

         

        ``true:`` There is an update in progress.

         

        ``false:`` There are no updates currently in progress.

        
      

      - **Health** *(string) --* 

        Describes the health status of the environment. AWS Elastic Beanstalk indicates the failure levels for a running environment:

         

        
        * ``Red``: Indicates the environment is not responsive. Occurs when three or more consecutive failures occur for an environment.
         
        * ``Yellow``: Indicates that something is wrong. Occurs when two consecutive failures occur for an environment.
         
        * ``Green``: Indicates the environment is healthy and fully functional.
         
        * ``Grey``: Default health for a new environment. The environment is not fully launched and health checks have not started or health checks are suspended during an ``UpdateEnvironment`` or ``RestartEnvironment`` request.
        

         

        Default: ``Grey``

        
      

      - **HealthStatus** *(string) --* 

        Returns the health status of the application running in your environment. For more information, see `Health Colors and Statuses <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html>`__.

        
      

      - **Resources** *(dict) --* 

        The description of the AWS resources used by this environment.

        
        

        - **LoadBalancer** *(dict) --* 

          Describes the LoadBalancer.

          
          

          - **LoadBalancerName** *(string) --* 

            The name of the LoadBalancer.

            
          

          - **Domain** *(string) --* 

            The domain name of the LoadBalancer.

            
          

          - **Listeners** *(list) --* 

            A list of Listeners used by the LoadBalancer.

            
            

            - *(dict) --* 

              Describes the properties of a Listener for the LoadBalancer.

              
              

              - **Protocol** *(string) --* 

                The protocol that is used by the Listener.

                
              

              - **Port** *(integer) --* 

                The port that is used by the Listener.

                
          
        
      
    
      

      - **Tier** *(dict) --* 

        Describes the current tier of this environment.

        
        

        - **Name** *(string) --* 

          The name of this environment tier.

           

          Valid values:

           

          
          * For *Web server tier* – ``WebServer``
           
          * For *Worker tier* – ``Worker``
          

          
        

        - **Type** *(string) --* 

          The type of this environment tier.

           

          Valid values:

           

          
          * For *Web server tier* – ``Standard``
           
          * For *Worker tier* – ``SQS/HTTP``
          

          
        

        - **Version** *(string) --* 

          The version of this environment tier. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version.

           

          .. note::

            

            This member is deprecated. Any specific version that you set may become out of date. We recommend leaving it unspecified.

            

          
    
      

      - **EnvironmentLinks** *(list) --* 

        A list of links to other environments in the same group.

        
        

        - *(dict) --* 

          A link to another environment, defined in the environment's manifest. Links provide connection information in system properties that can be used to connect to another environment in the same group. See `Environment Manifest (env.yaml) <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html>`__ for details.

          
          

          - **LinkName** *(string) --* 

            The name of the link.

            
          

          - **EnvironmentName** *(string) --* 

            The name of the linked environment (the dependency).

            
      
    
      

      - **EnvironmentArn** *(string) --* 

        The environment's Amazon Resource Name (ARN), which can be used in other API requests that require an ARN.

        
      

      - **OperationsRole** *(string) --* 

        The Amazon Resource Name (ARN) of the environment's operations role. For more information, see `Operations roles <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html>`__ in the *AWS Elastic Beanstalk Developer Guide*.

        
  
  **Exceptions**
  
  *   :py:class:`ElasticBeanstalk.Client.exceptions.InsufficientPrivilegesException`

  

  **Examples**

  The following operation terminates an Elastic Beanstalk environment named my-env:
  ::

    response = client.terminate_environment(
        EnvironmentName='my-env',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'AbortableOperationInProgress': False,
        'ApplicationName': 'my-app',
        'CNAME': 'my-env.elasticbeanstalk.com',
        'DateCreated': datetime(2015, 8, 12, 18, 52, 53, 2, 224, 0),
        'DateUpdated': datetime(2015, 8, 12, 19, 5, 54, 2, 224, 0),
        'EndpointURL': 'awseb-e-f-AWSEBLoa-1I9XUMP4-8492WNUP202574.us-west-2.elb.amazonaws.com',
        'EnvironmentId': 'e-fh2eravpns',
        'EnvironmentName': 'my-env',
        'Health': 'Grey',
        'SolutionStackName': '64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8',
        'Status': 'Terminating',
        'Tier': {
            'Name': 'WebServer',
            'Type': 'Standard',
            'Version': ' ',
        },
        'ResponseMetadata': {
            '...': '...',
        },
    }

  