"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var BridgedDeviceBasicInformation_exports = {};
__export(BridgedDeviceBasicInformation_exports, {
  BridgedDeviceBasicInformation: () => BridgedDeviceBasicInformation
});
module.exports = __toCommonJS(BridgedDeviceBasicInformation_exports);
var import_MatterDefinition = require("../MatterDefinition.js");
var import_elements = require("../../elements/index.js");
/**
 * @license
 * Copyright 2022-2024 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
const BridgedDeviceBasicInformation = (0, import_elements.ClusterElement)({
  name: "BridgedDeviceBasicInformation",
  id: 57,
  type: "BasicInformation",
  classification: "endpoint",
  pics: "BRBINFO",
  details: "This Cluster serves two purposes towards a Node communicating with a Bridge:\n  \u2022 Indicate that the functionality on the Endpoint where it is placed (and its Parts) is bridged     from a non-Matter technology, and\n  \u2022 Provide a centralized collection of attributes that the Node may collect to aid in conveying     information regarding the Bridged Device to a user, such as the vendor name, the model name, or     user-assigned name.\nThis cluster shall be exposed by a Bridge on the Endpoint representing each Bridged Device. When the functionality of a Bridged Device is represented using a set of Endpoints, this cluster shall only be exposed on the Endpoint which is at the top of the hierarchy for the functionality of that Bridged Device.\nThis cluster shall NOT be used on an endpoint that is not in the Descriptor cluster PartsList of an endpoint with an Aggregator device type.\nThis cluster has been derived from the Basic Information Cluster, and provides generic information about the Bridged Device. Not all of the attributes in the Basic Information Cluster are relevant for a Bridged Device (e.g. ProductID since it is not a Matter device). For other attributes, the information which is listed as Mandatory for the Basic Information Cluster, may not be available when the Bridged Device does not provide it to the Bridge, and the Bridge has no other means to determine it. For such cases where the information for a particular attribute is not available, the Bridge SHOULD NOT include the attribute in the cluster for this Bridged Device. See below for Conformance details.",
  xref: { document: "core", section: "9.13" },
  children: [
    (0, import_elements.AttributeElement)({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 3 }),
    (0, import_elements.AttributeElement)({
      name: "DataModelRevision",
      id: 0,
      conformance: "X",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({ name: "VendorName", id: 1, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "VendorId", id: 2, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "ProductName", id: 3, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "ProductId", id: 4, conformance: "X", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "NodeLabel", id: 5, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "Location", id: 6, conformance: "X", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({
      name: "HardwareVersion",
      id: 7,
      conformance: "O",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({
      name: "HardwareVersionString",
      id: 8,
      conformance: "O",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({
      name: "SoftwareVersion",
      id: 9,
      conformance: "O",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({
      name: "SoftwareVersionString",
      id: 10,
      conformance: "O",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({
      name: "ManufacturingDate",
      id: 11,
      conformance: "O",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({ name: "PartNumber", id: 12, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "ProductUrl", id: 13, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "ProductLabel", id: 14, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "SerialNumber", id: 15, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({
      name: "LocalConfigDisabled",
      id: 16,
      conformance: "X",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({ name: "Reachable", id: 17, conformance: "M", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({ name: "UniqueId", id: 18, conformance: "O", xref: { document: "core", section: "9.13.4" } }),
    (0, import_elements.AttributeElement)({
      name: "CapabilityMinima",
      id: 19,
      conformance: "X",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({
      name: "ProductAppearance",
      id: 20,
      conformance: "O",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({
      name: "SpecificationVersion",
      id: 21,
      conformance: "X",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.AttributeElement)({
      name: "MaxPathsPerInvoke",
      id: 22,
      conformance: "X",
      xref: { document: "core", section: "9.13.4" }
    }),
    (0, import_elements.EventElement)({
      name: "StartUp",
      id: 0,
      conformance: "O",
      priority: "critical",
      xref: { document: "core", section: "9.13.5" }
    }),
    (0, import_elements.EventElement)({
      name: "ShutDown",
      id: 1,
      conformance: "O",
      priority: "critical",
      xref: { document: "core", section: "9.13.5" }
    }),
    (0, import_elements.EventElement)({
      name: "Leave",
      id: 2,
      conformance: "O",
      priority: "critical",
      details: "The Leave event SHOULD be generated by the bridge when it detects that the associated device has left the non-Matter network.\nNOTE\nThe FabricIndex field has the X conformance, indicating it shall NOT be present. This event, in the context of Bridged Device Basic Information cluster, has no usable fields, but the original Basic Information cluster\u2019s field definition is kept for completeness.",
      xref: { document: "core", section: "9.13.5.1" },
      children: [(0, import_elements.FieldElement)({ name: "FabricIndex", id: 0, conformance: "X" })]
    }),
    (0, import_elements.EventElement)({
      name: "ReachableChanged",
      id: 3,
      conformance: "M",
      priority: "critical",
      details: "This event shall be generated when there is a change in the Reachable attribute. Its purpose is to provide an indication towards interested parties that the reachability of a bridged device (over the non-Matter network) has changed, so they may take appropriate action.\nAfter (re)start of a bridge this event may be generated.",
      xref: { document: "core", section: "9.13.5.2" }
    })
  ]
});
import_MatterDefinition.MatterDefinition.children.push(BridgedDeviceBasicInformation);
//# sourceMappingURL=BridgedDeviceBasicInformation.js.map
