docs: def destroy(self, recursive):
          """ Removes all the state elements.
  
          :param recursive: Flag whether to destroy all state elements which are removed
          """
          for transition_id in list(self.transitions.keys()):
              self.remove_transition(transition_id, destroy=recursive)
          for data_flow_id in list(self.data_flows.keys()):
              self.remove_data_flow(data_flow_id, destroy=recursive)
          for scoped_variable_id in list(self.scoped_variables.keys()):
              self.remove_scoped_variable(scoped_variable_id, destroy=recursive)
          for state_id in list(self.states.keys()):
              if recursive:
                  self.remove_state(state_id, recursive, force=True, destroy=recursive)
              else:
                  del self.states[state_id]
          super(ContainerState, self).destroy(recursive)