1description: >
2    This interface provides information related to the throttle status of a
3    component.
4
5properties:
6    - name: ThrottleCauses
7      type: array[enum[self.ThrottleReasons]]
8      flags:
9          - readonly
10      description: >
11          This property shall contain the cause(s) of the component being
12          throttled when the Throttled property is true or an empty array if not
13          being throttled.
14    - name: Throttled
15      type: boolean
16      flags:
17          - readonly
18      default: false
19      description: >
20          This property shall indicate whether the component is throttled.
21
22enumerations:
23    - name: ThrottleReasons
24      description: >
25          The possible reasons a component could be throttled
26      values:
27          - name: ClockLimit
28            description: >
29                The cause of the component being throttled is a clock limit.
30          - name: ManagementDetectedFault
31            description: >
32                The cause of the component being throttled is a fault detected
33                by management hardware or firmware
34          - name: PowerLimit
35            decription: >
36                The cause of the component being throttled is a power limit.
37          - name: ThermalLimit
38            description: >
39                The cause of the component being throttled is a thermal limit.
40          - name: Unknown
41            description: >
42                The cause of the component being throttled is not known.
43
44associations:
45    - name: throttling
46      description: >
47          Objects implementing Throttle can optionally implement the
48          'throttling' association to provide a link to an Item.
49      reverse_name: throttled_by
50      required_endpoint_interfaces:
51          - xyz.openbmc_project.Inventory.Item
52