1 /**
2 *
3 * Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com>
4 *
5 * ====================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 * ====================================================================
18 */
19 package org.jclouds.trmk.vcloud_0_8.domain;
20
21 import java.util.Map;
22
23 import javax.annotation.Nullable;
24
25 import org.jclouds.trmk.vcloud_0_8.domain.internal.OrgImpl;
26 import org.jclouds.trmk.vcloud_0_8.endpoints.Keys;
27
28 import com.google.inject.ImplementedBy;
29
30 /**
31 * A vCloud organization is a high-level abstraction that provides a unit of
32 * administration for objects and resources. As viewed by a user, an
33 * organization (represented by an Org element) can contain Catalog, Network,
34 * and vDC elements. If there are any queued, running, or recently completed
35 * tasks owned by a member of the organization, it also contains a TasksList
36 * element. As viewed by an administrator, an organization also contains users,
37 * groups, and other information
38 *
39 * @author Adrian Cole
40 */
41 @ImplementedBy(OrgImpl.class)
42 public interface Org extends ReferenceType {
43 /**
44 * optional description
45 *
46 * @since vcloud api 0.8
47 */
48 @Nullable
49 String getDescription();
50
51 /**
52 * @since vcloud api 0.8
53 */
54 Map<String, ReferenceType> getCatalogs();
55
56 /**
57 * @since vcloud api 0.8
58 */
59 Map<String, ReferenceType> getVDCs();
60
61 /**
62 * If there are any queued, running, or recently completed tasks owned by a
63 * member of the organization, it also contains a TasksList.
64 *
65 * there are multiple tasks lists in a terremark org
66 *
67 */
68 Map<String, ReferenceType> getTasksLists();
69
70 @Keys
71 ReferenceType getKeys();
72
73 }