def terminate_environment(EnvironmentId=None, EnvironmentName=None,
    TerminateResources=None, ForceTerminate=None):
    """
    Terminates the specified environment.
    See also: AWS API Documentation
    
    Examples
    The following operation terminates an Elastic Beanstalk environment named my-env:
    Expected Output:
    
    :example: 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.
            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
    :return: {
        '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': 'Launching'|'Updating'|'Ready'|'Terminating'|'Terminated',
        'AbortableOperationInProgress': True|False,
        'Health': 'Green'|'Yellow'|'Red'|'Grey',
        'HealthStatus': 'NoData'|'Unknown'|'Pending'|'Ok'|'Info'|'Warning'|'Degraded'|'Severe',
        'Resources': {
            'LoadBalancer': {
                'LoadBalancerName': 'string',
                'Domain': 'string',
                'Listeners': [
                    {
                        'Protocol': 'string',
                        'Port': 123
                    },
                ]
            }
        },
        'Tier': {
            'Name': 'string',
            'Type': 'string',
            'Version': 'string'
        },
        'EnvironmentLinks': [
            {
                'LinkName': 'string',
                'EnvironmentName': 'string'
            },
        ]
    }
    
    
    :returns: 
    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.
    
    """
    pass
