[IOT-1763] CR 32 Device Onboarding State implementation
[iotivity.git] / resource / csdk / security / include / internal / deviceonboardingstate.h
1 //******************************************************************
2 //
3 // Copyright 2017 Intel OpenSource Technology Center All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 #ifndef DEVICEONBOARDINGSTATE_H_
22 #define DEVICEONBOARDINGSTATE_H_
23
24 #include "octypes.h"
25 #include "securevirtualresourcetypes.h"
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31 /**
32  * Get the current Device Onboarding State (pstat.dos).
33  *
34  * @param[out] dos Pointer to contain the values of current state (pstat.dos)
35  *
36  * @return  ::OC_STACK_OK If no errors and dos is filled in successfully.
37             ::OC_STACK_ERROR If dos is NOT filled in successfully.
38  */
39 OCStackResult GetDos(OicSecDostype_t *dos);
40
41 /**
42  * Set the Device Onboarding State (pstat.dos) to a new state.
43  *
44  * Note that all requirements for entering new state should typically be set
45  * prior to making this call, typically by the Onboarding Tool (OBT).  The
46  * exceptions are Properties that are set by the Server itself.  See
47  * OCF Security Specification, Security Resources chapters for details.
48  *
49  * @param[in] state Value of new desired state (pstat.dos.state)
50  *
51  * @return  ::OC_STACK_OK if successful change to newState
52  *          ::OC_STACK_FORBIDDEN_REQ if state change preconditions not met
53  *          ::OC_STACK_INTERNAL_SERVER_ERROR if SVRs left in potentially unstable state
54  */
55 OCStackResult SetDosState(const OicSecDeviceOnboardingState_t state);
56
57 #ifdef __cplusplus
58 }
59 #endif
60
61 #endif /* DEVICEONBOARDINGSTATE_H_ */