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.compute.domain;
20
21 import org.jclouds.compute.domain.internal.ComputeMetadataImpl;
22 import org.jclouds.domain.ResourceMetadata;
23
24 import com.google.inject.ImplementedBy;
25
26 /**
27 * @author Ivan Meredith
28 * @author Adrian Cole
29 */
30 @ImplementedBy(ComputeMetadataImpl.class)
31 public interface ComputeMetadata extends ResourceMetadata<ComputeType> {
32 /**
33 * Type of the resource, ex node, image, size
34 *
35 */
36 @Override
37 public ComputeType getType();
38
39 /**
40 * id of the server within the naming scope it was created. potentially generated by the service.
41 *
42 */
43 @Override
44 public String getProviderId();
45
46 /**
47 * user defined name of the server.
48 *
49 */
50 @Override
51 public String getName();
52
53 /**
54 *
55 * A means to uniquely address this resource within a provider. For example, if the namespace of
56 * a node or image is region based, the id will likely include both the region and the
57 * provider-supplied id encoded to avoid collisions.
58 *
59 */
60 public String getId();
61
62 }