blob: 1637c5294fb7a740daa57436e7053dc2cc59ce3e [file] [log] [blame]
/*
* Copyright (c) 2024 Project CHIP Authors
* All rights reserved.
*
* 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.
*/
#pragma once
#include <controller/CommissioningWindowParams.h>
#include <lib/core/CHIPError.h>
#include <lib/core/ScopedNodeId.h>
#include <optional>
#include <string>
namespace bridge {
class FabricAdminDelegate
{
public:
virtual ~FabricAdminDelegate() = default;
/**
* Opens a commissioning window for a specified node using pre-computed PAKE passcode verifier.
*
* @param params Params for opening the commissioning window using verifier.
* @return CHIP_ERROR An error code indicating the success or failure of the operation.
* - CHIP_NO_ERROR: The RPC command was successfully sent.
* - CHIP_ERROR_BUSY: Another commissioning window is currently in progress.
* - CHIP_ERROR_INTERNAL: An internal error occurred.
*/
virtual CHIP_ERROR OpenCommissioningWindow(chip::Controller::CommissioningWindowVerifierParams params,
chip::FabricIndex fabricIndex) = 0;
/**
* Reverse commission a bridge using the specified parameters.
*
* This function initiates the commissioning process for a bridge node, utilizing
* the provided passcode parameters, vendor ID, and product ID.
*
* @param params Parameters required for commissioning the device using passcode.
* @param vendorId The Vendor ID (VID) of the device being commissioned. This identifies
* the manufacturer of the device.
* @param productId The Product ID (PID) of the device being commissioned. This identifies
* the specific product within the vendor's lineup.
*
* @return CHIP_ERROR An error code indicating the success or failure of the operation.
* - CHIP_NO_ERROR: The RPC command was successfully sent and the commissioning process was initiated.
* - CHIP_ERROR_INTERNAL: An internal error occurred during the preparation or sending of the command.
*/
virtual CHIP_ERROR CommissionRemoteBridge(chip::Controller::CommissioningWindowPasscodeParams params, chip::VendorId vendorId,
uint16_t productId) = 0;
virtual CHIP_ERROR KeepActive(chip::ScopedNodeId scopedNodeId, uint32_t stayActiveDurationMs, uint32_t timeoutMs) = 0;
};
} // namespace bridge