public function createServiceDescribe(array $service)
 {
     $em = $this->doctrineBoot->getEntityManager();
     $repo = $em->getRepository(ServiceDescribe::class);
     $id = Uuid::uuid5(Uuid::NAMESPACE_OID, $service['name'])->toString();
     $plans = [];
     foreach ($service['plans'] as $plan) {
         $plans[] = $this->createPlan($plan);
     }
     $bindable = !isset($service['bindable']) || $service['bindable'] ? true : false;
     $planUpdateable = !isset($service['plan_updateable']) || $service['plan_updateable'] ? true : false;
     $requires = !isset($service['requires']) ? [] : $service['requires'];
     $tags = !isset($service['tags']) ? [] : $service['tags'];
     $serviceDescribe = $repo->find($id);
     if ($serviceDescribe !== null) {
         $serviceDescribe->setPlans($plans);
         $serviceDescribe->setBindable($bindable);
     } else {
         $serviceDescribe = new ServiceDescribe($id, $service['name'], $service['description'], $plans, $bindable);
     }
     if (isset($service['dashboard_client'])) {
         $serviceDescribe->setDashboard($this->createDashboard($service['dashboard_client']));
     }
     if (isset($service['metadata'])) {
         $serviceDescribe->setMetadata($this->createMetadata($service['metadata']));
     }
     $serviceDescribe->setPlanUpdateable($planUpdateable);
     $serviceDescribe->setRequires($requires);
     $serviceDescribe->setTags($tags);
     $em->persist($serviceDescribe);
     $em->flush();
 }