// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef DIAGNOSTICS_WILCO_DTC_SUPPORTD_VPD_CONSTANTS_H_
#define DIAGNOSTICS_WILCO_DTC_SUPPORTD_VPD_CONSTANTS_H_

namespace diagnostics {

extern const char kVpdFieldSerialNumberFilePath[];

extern const char kVpdFieldModelNameFilePath[];

extern const char kVpdFieldAssetIdFilePath[];

extern const char kVpdFieldSkuNumberFilePath[];

extern const char kVpdFieldUuidFilePath[];

extern const char kVpdFieldManufacturerDateFilePath[];

extern const char kVpdFieldActivateDateFilePath[];

extern const char kVpdFieldSystemIdFilePath[];

}  // namespace diagnostics

#endif  // DIAGNOSTICS_WILCO_DTC_SUPPORTD_VPD_CONSTANTS_H_
