1description: >
2    Interface to query trusted component info.
3
4properties:
5    - name: TrustedComponentType
6      type: enum[self.ComponentAttachType]
7      default: Unknown
8      flags:
9          - readonly
10      description: >
11          The type of trusted component, such as any physical distinction about
12          the trusted component.
13
14associations:
15    - name: reported_by
16      description: >
17          Objects that implement TrustedComponent can implement the
18          "reported_by" association to provide a link to component integrity
19          object that the trusted component is reported by.
20      reverse_name: reporting
21      required_endpoint_interfaces:
22          - xyz.openbmc_project.Attestation.ComponentIntegrity
23
24    - name: protecting
25      description: >
26          Objects that implement TrustedComponent can implement the "protecting"
27          association to provide a link to the target component whose security
28          this resource protects.
29      reverse_name: protected_by
30      required_endpoint_interfaces:
31          - xyz.openbmc_project.Inventory.Item
32
33enumerations:
34    - name: ComponentAttachType
35      description: >
36          The type of trusted component, such as any physical distinction about
37          the trusted component.
38      values:
39          - name: Discrete
40            description: >
41                A discrete trusted component. It is "discrete" when basic
42                electronic components are connected through a wire or soldered
43                on a printed circuit board (PCB).
44          - name: Integrated
45            description: >
46                An integrated trusted component.
47          - name: Unknown
48            description: >
49                Attach type not known yet.
50