blob: 6833d38bdff82f20828a0fec4c9aa20458e9e406 [file] [log] [blame]
Brian O'Connorb7baf712015-07-28 23:27:03 -07001/*
2 * Copyright 2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.incubator.net.domain;
17
18import com.google.common.annotations.Beta;
19import org.onosproject.core.ApplicationId;
20
21/**
22 * Administrative interface for the intent domain service.
23 */
24@Beta
25public interface IntentDomainAdminService {
26
27 /**
28 * Register an application that provides intent domain service.
29 *
30 * @param applicationId application id
31 * @param provider intent domain provider
32 */
33 void registerApplication(ApplicationId applicationId, IntentDomainProvider provider);
34
35 /**
36 * Unregisters an application that provides intent domain service.
37 *
38 * @param applicationId application id
39 */
40 void unregisterApplication(ApplicationId applicationId);
41
42 /* TODO we may be able to accomplish the following through network config:
43 void createDomain(String domainId);
44 void removeDomain(String domainId);
45
46 void addInternalDeviceToDomain(IntentDomain domain, DeviceId deviceId);
47 void addPortToDomain(IntentDomain domain, ConnectPoint port);
48
49 void bindApplicationToDomain(String domain, IntentDomain implementation);
50 void unbindApplicationToDomain(String domain, IntentDomain implementation);
51 */
52}
53