View Javadoc

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.vcloud.domain;
20  
21  import java.util.List;
22  import java.util.Map;
23  
24  import javax.annotation.Nullable;
25  
26  import org.jclouds.vcloud.domain.internal.VDCImpl;
27  
28  import com.google.inject.ImplementedBy;
29  
30  /**
31   * A vDC is a deployment environment for vApps. A Vdc element provides a user view of a vDC.
32   * 
33   * @author Adrian Cole
34   */
35  @org.jclouds.vcloud.endpoints.VDC
36  @ImplementedBy(VDCImpl.class)
37  public interface VDC extends ReferenceType {
38     /**
39      * Reference to the org containing this vDC.
40      * 
41      * @since vcloud api 1.0
42      * @return org, or null if this is a version before 1.0 where the org isn't present
43      */
44     ReferenceType getOrg();
45  
46     /**
47      * The creation status of the vDC
48      * 
49      * @since vcloud api 1.0
50      */
51     VDCStatus getStatus();
52  
53     /**
54      * optional description
55      * 
56      * @since vcloud api 0.8
57      */
58     @Nullable
59     String getDescription();
60  
61     /**
62      * read‐only container for Task elements. Each element in the container represents a queued,
63      * running, or failed task owned by this object.
64      * 
65      * @since vcloud api 1.0
66      */
67     List<Task> getTasks();
68  
69     /**
70      * defines how resources are allocated by the vDC. The value of this element is set by the
71      * administrator who created the vDC. It is read‐only to users.
72      * 
73      * @since vcloud api 1.0
74      */
75     AllocationModel getAllocationModel();
76  
77     /**
78      * defines the storage capacity available in the vDC
79      * 
80      * @since vcloud api 0.8
81      * @return null if the provider doesn't support storage capacity
82      */
83     @Nullable
84     Capacity getStorageCapacity();
85  
86     /**
87      * reports CPU resource consumption in a vDC
88      * 
89      * @since vcloud api 0.8
90      * @return null if the provider doesn't support cpu capacity
91      */
92     @Nullable
93     Capacity getCpuCapacity();
94  
95     /**
96      * reports memory resource consumption in a vDC
97      * 
98      * @since vcloud api 0.8
99      * @return null if the provider doesn't support memory capacity
100     */
101    @Nullable
102    Capacity getMemoryCapacity();
103 
104    /**
105     * container for ResourceEntity elements
106     * 
107     * @since vcloud api 0.8
108     */
109    Map<String, ReferenceType> getResourceEntities();
110 
111    /**
112     * container for OrgNetwork elements that represent organization networks contained by the vDC
113     * 
114     * @since vcloud api 0.8
115     */
116    Map<String, ReferenceType> getAvailableNetworks();
117 
118    /**
119     * maximum number of virtual NICs allowed in this vDC. Defaults to 0, which specifies an
120     * unlimited number.
121     * 
122     * @since vcloud api 1.0
123     */
124    int getNicQuota();
125 
126    /**
127     * maximum number of OrgNetwork objects that can be deployed in this vDC. Defaults to 0, which
128     * specifies an unlimited number.
129     * 
130     * @since vcloud api 1.0
131     */
132    int getNetworkQuota();
133 
134    /**
135     * maximum number of virtual machines that can be deployed in this vDC. Defaults to 0, which
136     * specifies an unlimited number.
137     * 
138     * @since vcloud api 0.8
139     */
140    int getVmQuota();
141 
142    /**
143     * true if this vDC is enabled
144     * 
145     * @since vcloud api 1.0
146     */
147    boolean isEnabled();
148 
149 }