public function updateProgram(Program $program)
    {
        $op = $this->sendUpdateProgramOperation($program);

        // waiting for create operation finishes
        $op = $this->awaitOperation($op);

        if ($op->getState() != OperationState::Succeeded) {
            return null;
        }

        // get and return the createProgram
        return $this->getProgram($program->getId());
    }