docs: def set_power_save(self, power_saving, wait_for_completion=True,
                         operation_timeout=None):
          """
          Set the power save setting of this CPC.
  
          The current power save setting in effect for a CPC is described in the
          "cpc-power-saving" property of the CPC.
  
          This method performs the HMC operation "Set CPC Power Save". It
          requires that the feature "Automate/advanced management suite"
          (FC 0020) is installed and enabled, and fails otherwise.
  
          This method will also fail if the CPC is under group control.
  
          Whether a CPC currently allows this method is described in the
          "cpc-power-save-allowed" property of the CPC.
  
          Authorization requirements:
  
          * Object-access permission to this CPC.
          * Task permission for the "Power Save" task.
  
          Parameters:
  
            power_saving (:term:`string`):
              The new power save setting, with the possible values:
  
              * "high-performance" - The power consumption and performance of
                the CPC are not reduced. This is the default setting.
              * "low-power" - Low power consumption for all components of the
                CPC enabled for power saving.
              * "custom" - Components may have their own settings changed
                individually. No component settings are actually changed when
                this mode is entered.
  
            wait_for_completion (bool):
              Boolean controlling whether this method should wait for completion
              of the requested asynchronous HMC operation, as follows:
  
              * If `True`, this method will wait for completion of the
                asynchronous job performing the operation.
  
              * If `False`, this method will return immediately once the HMC has
                accepted the request to perform the operation.
  
            operation_timeout (:term:`number`):
              Timeout in seconds, for waiting for completion of the asynchronous
              job performing the operation. The special value 0 means that no
              timeout is set. `None` means that the default async operation
              timeout of the session is used. If the timeout expires when
              `wait_for_completion=True`, a
              :exc:`~zhmcclient.OperationTimeout` is raised.
  
          Returns:
  
            `None` or :class:`~zhmcclient.Job`:
  
              If `wait_for_completion` is `True`, returns `None`.
  
              If `wait_for_completion` is `False`, returns a
              :class:`~zhmcclient.Job` object representing the asynchronously
              executing job on the HMC.
  
          Raises:
  
            :exc:`~zhmcclient.HTTPError`: See the HTTP status and reason codes of
              operation "Set CPC Power Save" in the :term:`HMC API` book.
            :exc:`~zhmcclient.ParseError`
            :exc:`~zhmcclient.AuthError`
            :exc:`~zhmcclient.ConnectionError`
            :exc:`~zhmcclient.OperationTimeout`: The timeout expired while
              waiting for completion of the operation.
          """
          body = {'power-saving': power_saving}
          result = self.manager.session.post(
              self.uri + '/operations/set-cpc-power-save',
              body,
              wait_for_completion=wait_for_completion,
              operation_timeout=operation_timeout)
          if wait_for_completion:
              # The HMC API book does not document what the result data of the
              # completed job is. It turns out that the completed job has this
              # dictionary as its result data:
              #    {'message': 'Operation executed successfully'}
              # We transform that to None.
              return None
          return result