def provisionar(self, equipamentos, vips):
        """Realiza a inserção ou alteração de um grupo virtual para o sistema de Orquestração de VM.

        :param equipamentos: Lista de equipamentos gerada pelo método "add_equipamento" da
          classe "EspecificacaoGrupoVirtual".
        :param vips: Lista de VIPs gerada pelo método "add_vip" da classe "EspecificacaoGrupoVirtual".

        :return: Retorno da operação de inserir ou alterar um grupo virtual:

        ::

          {'equipamentos': {'equipamento': [{'id': < id>,
          'nome': < nome>,
          'ip':  {'id': < id>,
          'id_vlan': < id_vlan>,
          'oct4': < oct4>,
          'oct3': < oct3>,
          'oct2': < oct2>,
          'oct1': < oct1>,
          'descricao': < descricao>},
          'vips': {'vip': [{'id': < id>,
          'ip': {'id': < id>,
          'id_vlan': < id_vlan>,
          'oct4': < oct4>,
          'oct3': < oct3>,
          'oct2': < oct2>,
          'oct1': < oct1>,
          'descricao': < descricao>}}, ... demais vips ...]}}, ... demais equipamentos...]},
          'vips': {'vip': [{'id': < id>,
          'ip': {'id': < id>,
          'id_vlan': < id_vlan>,
          'oct4': < oct4>,
          'oct3': < oct3>,
          'oct2': < oct2>,
          'oct1': < oct1>,
          'descricao': < descricao>},
          'requisicao_vip': {'id': < id>}}, ... demais vips...]}}

          {'equipamentos': {'equipamento': [{'id': < id>,
          'nome': < nome>,
          'ip': {'id': < id>,
          'id_vlan': < id_vlan>,
          'oct4': < oct4>,
          'oct3': < oct3>,
          'oct2': < oct2>,
          'oct1': < oct1>,
          'descricao': < descricao>},
          'vips': {'vip': [{'id': < id>,
          'ip': {'id': < id>,
          'id_vlan': < id_vlan>,
          'oct4': < oct4>,
          'oct3': < oct3>,
          'oct2': < oct2>,
          'oct1': < oct1>,
          'descricao': < descricao>}}, ... demais vips ...]}}, ... demais equipamentos...]},
          'vips': {'vip': [{'id': < id>,
          'requisicao_vip': {'id': < id>}}, ... demais vips...]}}

        :raise InvalidParameterError: Algum dado obrigatório não foi informado nas listas ou possui um valor inválido.
        :raise XMLError: Falha na networkapi ao ler o XML de requisição ou gerar o XML de resposta.
        :raise DataBaseError: Falha na networkapi ao acessar o banco de dados.
        :raise VlanNaoExisteError: VLAN não cadastrada.
        :raise EquipamentoNaoExisteError: Equipamento não cadastrado.
        :raise IPNaoDisponivelError: Não existe IP disponível para a VLAN informada.
        :raise TipoEquipamentoNaoExisteError: Tipo de equipamento não cadastrado.
        :raise ModeloEquipamentoNaoExisteError: Modelo do equipamento não cadastrado.
        :raise GrupoEquipamentoNaoExisteError: Grupo de equipamentos não cadastrado.
        :raise EquipamentoError: Equipamento com o nome duplicado ou
          Equipamento do grupo “Equipamentos Orquestração” somente poderá ser
          criado com tipo igual a “Servidor Virtual".
        :raise IpNaoExisteError: IP não cadastrado.
        :raise IpError: IP já está associado ao equipamento.
        :raise VipNaoExisteError: Requisição de VIP não cadastrada.
        :raise HealthCheckExpectNaoExisteError: Healthcheck_expect não cadastrado.
        """
        code, map = self.submit(
            {
                'equipamentos': {
                    'equipamento': equipamentos}, 'vips': {
                    'vip': vips}}, 'POST', 'grupovirtual/')
        return self.response(code, map, force_list=['equipamento', 'vip'])