docs: def create(self, properties, email_to_addresses=None,
                 email_cc_addresses=None, email_insert=None):
          """
          Create a :term:`storage volume` in this storage group on the HMC, and
          optionally send emails to storage administrators requesting creation of
          the storage volume on the storage subsystem and setup of any resources
          related to the storage volume (e.g. LUN mask definition on the storage
          subsystem).
  
          This method performs the "Modify Storage Group Properties" operation,
          requesting creation of the volume.
  
          Authorization requirements:
  
          * Object-access permission to this storage group.
          * Task permission to the "Configure Storage - System Programmer" task.
  
          Parameters:
  
            properties (dict): Initial property values for the new volume.
  
              Allowable properties are the fields defined in the
              "storage-volume-request-info" nested object described for
              operation "Modify Storage Group Properties" in the
              :term:`HMC API` book.
              The valid fields are those for the "create" operation. The
              `operation` field must not be provided; it is set automatically
              to the value "create".
  
              The properties provided in this parameter will be copied and then
              amended with the `operation="create"` field, and then used as a
              single array item for the `storage-volumes` field in the request
              body of the "Modify Storage Group Properties" operation.
  
              Note that for storage volumes, the HMC does auto-generate a value
              for the "name" property, but that auto-generated name is not unique
              within the parent storage group. If you depend on a unique name,
              you need to specify a "name" property accordingly.
  
            email_to_addresses (:term:`iterable` of :term:`string`): Email
              addresses of one or more storage administrator to be notified.
              If `None` or empty, no email will be sent.
  
            email_cc_addresses (:term:`iterable` of :term:`string`): Email
              addresses of one or more storage administrator to be copied
              on the notification email.
              If `None` or empty, nobody will be copied on the email.
              Must be `None` or empty if `email_to_addresses` is `None` or empty.
  
            email_insert (:term:`string`): Additional text to be inserted in the
              notification email.
              The text can include HTML formatting tags.
              If `None`, no additional text will be inserted.
              Must be `None` or empty if `email_to_addresses` is `None` or empty.
  
          Returns:
  
            StorageVolume:
              The resource object for the new storage volume.
              The object will have the following properties set:
  
              - 'element-uri' as returned by the HMC
              - 'element-id' as determined from the 'element-uri' property
              - 'class' and 'parent'
              - additional properties as specified in the input properties
  
          Raises:
  
            :exc:`~zhmcclient.HTTPError`
            :exc:`~zhmcclient.ParseError`
            :exc:`~zhmcclient.AuthError`
            :exc:`~zhmcclient.ConnectionError`
  
          Example::
  
              stovol1 = fcp_stogrp.storage_volumes.create(
                  properties=dict(
                      name='vol1',
                      size=30,  # GiB
              ))
          """
  
          volreq_obj = copy.deepcopy(properties)
          volreq_obj['operation'] = 'create'
          body = {
              'storage-volumes': [volreq_obj],
          }
          if email_to_addresses:
              body['email-to-addresses'] = email_to_addresses
              if email_cc_addresses:
                  body['email-cc-addresses'] = email_cc_addresses
              if email_insert:
                  body['email-insert'] = email_insert
          else:
              if email_cc_addresses:
                  raise ValueError("email_cc_addresses must not be specified if "
                                   "there is no email_to_addresses: %r" %
                                   email_cc_addresses)
              if email_insert:
                  raise ValueError("email_insert must not be specified if "
                                   "there is no email_to_addresses: %r" %
                                   email_insert)
  
          result = self.session.post(
              self.storage_group.uri + '/operations/modify',
              body=body)
          uri = result['element-uris'][0]
  
          storage_volume = self.resource_object(uri, properties)
  
          # The name is not guaranteed to be unique, so we don't maintain
          # a name-to-uri cache for storage volumes.
  
          return storage_volume