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.util.concurrent.TimeUnit;
22
23 import org.jclouds.concurrent.Timeout;
24 import org.jclouds.savvis.vpdc.domain.FirewallRule;
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 FirewallClient {
36
37 /**
38 * Add a new firewall rule
39 *
40 * @param billingSiteId
41 * billing site Id, or null for default
42 * @param vpdcId
43 * vpdc Id
44 * @param firewallRule
45 * firewall rule to be added
46 * @return
47 */
48 Task addFirewallRule(String billingSiteId, String vpdcId, FirewallRule firewallRule);
49
50 /**
51 * Delete a firewall rule
52 *
53 * @param billingSiteId
54 * billing site Id, or null for default
55 * @param vpdcId
56 * vpdc Id
57 * @param firewallRule
58 * firewall rule to be deleted
59 * @return
60 */
61 Task deleteFirewallRule(String billingSiteId, String vpdcId, FirewallRule firewallRule);
62 }