blob: bfbee0c44052016561bdd3faa70d9fb2116be8c8 [file] [log] [blame]
/*
* Copyright 2016-present Open Networking Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.yms.ydt;
/**
* Represents type of root level operation for the request.
*
* This is used by protocols to specify the root level operation associated
* with the request. YMS data validation and data handling will vary based
* on the edit operation type, for an instance YANG specified "mandatory"
* leafs needn't be present for QUERY_CONFIG and QUERY, but they may be
* mandatory to be present in request for EDIT_CONFIG type. The validation
* and handling is further dependent on edit operation type.
*
* In SBI, driver/provider must provide this information to YMS which needs
* to encode this information in corresponding data format.
*
* YmsOperationType MUST be specified by protocol.
*/
/*
* Yang interaction type with RESTCONF and NETCONF as example:
* +--------------+-------------------+-------------+
* | RESTCONF | NETCONF | EditOpType |
* +--------------+-------------------+-------------+
* | OPTIONS | NA | NA |
* | HEAD | NA | NA |
* | GET | <get> | QUERY |
* | none | <get-config> | QUERY_CONFIG|
* | POST (data) | <edit-config> | EDIT_CONFIG |
* | PUT | <edit-config> | EDIT_CONFIG |
* | PATCH | <edit-config> | EDIT_CONFIG |
* | DELETE | <edit-config> | EDIT_CONFIG |
* | POST (op) | <rpc> | RPC |
* +--------------+-------------------+-------------+
*
* Note: Additionally RESTCONF must use API resource to figure out whether
* request contains data resource or it's for data model specific operation.
* +--rw restconf
* +--rw data
* +--rw operations
*/
public enum YmsOperationType {
/**
* The YANG based request is to edit a config node / subtree in the data
* store.
*/
EDIT_CONFIG_REQUEST,
/**
* The YANG based request is to query a config node / subtree in the data
* store.
*/
QUERY_CONFIG_REQUEST,
/**
* The YANG based request is to query a node / subtree in the data store.
*/
QUERY_REQUEST,
/**
* The YANG based request is to execute an RPC defined in YANG.
*/
RPC_REQUEST,
/**
* The YANG based response is for edit operation.
*/
EDIT_CONFIG_REPLY,
/**
* The YANG based response is for query config operation.
*/
QUERY_CONFIG_REPLY,
/**
* The YANG based response is for query operation.
*/
QUERY_REPLY,
/**
* The YANG based response is for a RPC operation.
*/
RPC_REPLY,
/**
* The YANG based request is to execute an RPC defined in YANG.
*/
NOTIFICATION
}