====

    Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com>

    ====================================================================
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    ====================================================================
====

#
# The jclouds provider for Terremark's Enterprise Cloud (http://www.terremark.com/services/cloudcomputing/theenterprisecloud.aspx) platform.
#
# Expects the jclouds vcloudexpress API to be present on your application's classpath.
#
# TODO: Implementation status.
# TODO: Supported features.
# See http://code.google.com/p/jclouds/wiki/QuickStartTerremarkECloud for example usage.