code: def create_or_update_group_alias(self, name, alias_id=None, mount_accessor=None, canonical_id=None, mount_point=DEFAULT_MOUNT_POINT):
          
          params = {
              'name': name,
              'mount_accessor': mount_accessor,
              'canonical_id': canonical_id,
          }
          if alias_id is not None:
              params['id'] = alias_id
          api_path = '/v1/{mount_point}/group-alias'.format(mount_point=mount_point)
          response = self._adapter.post(
              url=api_path,
              json=params,
          )
          return response.json()
docs: Creates or update a group alias.
  
          Supported methods:
              POST: /{mount_point}/group-alias. Produces: 200 application/json
  
          :param alias_id: ID of the group alias. If set, updates the corresponding existing group alias.
          :type alias_id: str | unicode
          :param name: Name of the group alias.
          :type name: str | unicode
          :param mount_accessor: Mount accessor to which this alias belongs to
          :type mount_accessor: str | unicode
          :param canonical_id: ID of the group to which this is an alias.
          :type canonical_id: str | unicode
          :param mount_point: The "path" the method/backend was mounted on.
          :type mount_point: str | unicode
          :return: The JSON response of the request.
          :rtype: requests.Response