description: >
    Implement this to add system dump management.

    System dumps are dump of the host memory and hardware states generated
    during a failure in the host firmware. This can be a huge dump stored in the
    host memory, the BMC doesnt store this dump but stream this dump to an
    external client based on the offload request. Apart from system generated
    system dump, users can also request for this kind of dump.

properties:
    - name: SourceDumpId
      type: uint32
      description: >
          The dump id provided by the source of the dump. There are dumps which
          get generated outside the BMC, like a system dump which gets generated
          and stored in the host memory. All dumps will have a  unique id  but
          when communicating to the source of the dump the SourceDumpId will be
          used.
    - name: Token
      type: uint32
      description: >
          A token exchanged with an external firmware subsystem when creating a
          dump outside of the BMC. This token can be used to identify the dump
          entry once the collection is completed.
    - name: SystemImpact
      type: enum [self.SystemImpact]
      default: Disruptive
      description: >
          System dumps can be broadly classified into two types based on their
          impact on the system state. The first type, known as a 'disruptive'
          dump, alters the system state. This kind of dump is typically
          generated during a host crash, although it can also be manually
          requested by a user. Despite its disruptive nature, this dump is able
          to collect a lot of data, making it particularly useful for diagnosing
          system crashes. The second type is a 'non-disruptive' dump. As the
          name suggests, this dump is created without causing any disruption to
          the system state.

enumerations:
    - name: SystemImpact
      description: Indicate the type of system dump
      values:
          - name: Disruptive
            description: >
                The system state will change with this type of dump collection
          - name: NonDisruptive
            description: >
                The system state will not change with the collection
