def describe_environments(ApplicationName=None, VersionLabel=None,
    EnvironmentIds=None, EnvironmentNames=None, IncludeDeleted=None,
    IncludedDeletedBackTo=None):
    """
    Returns descriptions for existing environments.
    See also: AWS API Documentation
    
    Examples
    The following operation retrieves information about an environment named my-env:
    Expected Output:
    
    :example: response = client.describe_environments(
        ApplicationName='string',
        VersionLabel='string',
        EnvironmentIds=[
            'string',
        ],
        EnvironmentNames=[
            'string',
        ],
        IncludeDeleted=True|False,
        IncludedDeletedBackTo=datetime(2015, 1, 1)
    )
    
    
    :type ApplicationName: string
    :param ApplicationName: If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application.

    :type VersionLabel: string
    :param VersionLabel: If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application version.

    :type EnvironmentIds: list
    :param EnvironmentIds: If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified IDs.
            (string) --
            

    :type EnvironmentNames: list
    :param EnvironmentNames: If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified names.
            (string) --
            

    :type IncludeDeleted: boolean
    :param IncludeDeleted: Indicates whether to include deleted environments:
            true : Environments that have been deleted after IncludedDeletedBackTo are displayed.false : Do not include deleted environments.
            

    :type IncludedDeletedBackTo: datetime
    :param IncludedDeletedBackTo: If specified when IncludeDeleted is set to true , then environments deleted after this date are displayed.

    :rtype: dict
    :return: {
        'Environments': [
            {
                '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
