View Javadoc

1   /**
2    * Licensed to jclouds, Inc. (jclouds) under one or more
3    * contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  jclouds licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  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,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.jclouds.savvis.vpdc.features;
20  
21  import java.net.URI;
22  import java.util.concurrent.TimeUnit;
23  
24  import org.jclouds.concurrent.Timeout;
25  import org.jclouds.savvis.vpdc.domain.Task;
26  
27  /**
28   * Provides access to Symphony VPDC resources via their REST API.
29   * <p/>
30   * 
31   * @see <a href="https://api.sandbox.symphonyvpdc.savvis.net/doc/spec/api/" />
32   * @author Adrian Cole
33   */
34  @Timeout(duration = 300, timeUnit = TimeUnit.SECONDS)
35  public interface ServiceManagementClient {
36     /**
37      * Powers on the VM
38      * <p/>
39      * <h4>Pre-conditions:</h4>
40      * <p/>
41      * No other API operation is being performed on the VM.
42      * 
43      * @param billingSiteId
44      *           billing site Id, or null for default
45      * @param vpdcId
46      *           vpdc Id
47      * @param vmId
48      *           vm you wish to remove
49      * @return task of the power operation
50      */
51     Task powerOnVMInVDC(String billingSiteId, String vpdcId, String vmId);
52  
53     /**
54      * 
55      * @param vm
56      *           href of the vm
57      * @see #powerOnVMInVDC
58      */
59     Task powerOnVM(URI vm);
60  
61     /**
62      * Powers off the VM
63      * <p/>
64      * <h4>Pre-conditions:</h4>
65      * <p/>
66      * No other API operation is being performed on the VM.
67      * 
68      * @param billingSiteId
69      *           billing site Id, or null for default
70      * @param vpdcId
71      *           vpdc Id
72      * @param vmId
73      *           vm you wish to remove
74      * @return task of the power operation
75      */
76     Task powerOffVMInVDC(String billingSiteId, String vpdcId, String vmId);
77  
78     /**
79      * 
80      * @param vm
81      *           href of the vm
82      * @see #powerOffVMInVDC
83      */
84     Task powerOffVM(URI vm);
85  
86  }