Provision the new instance
        
        see openbrokerapi documentation
        
        Returns:
            ProvisionedServiceSpec

def provision(self, instance_id: str, service_details: ProvisionDetails, async_allowed: bool) -> ProvisionedServiceSpec:
        """Provision the new instance
        
        see openbrokerapi documentation
        
        Returns:
            ProvisionedServiceSpec
        """
        
        if service_details.plan_id == self._backend.config.UUID_PLANS_EXISTING_CLUSTER:
            # Provision the instance on an Existing Atlas Cluster
            
            # Find or create the instance
            instance = self._backend.find(instance_id)
            
            # Create the instance if needed
            return self._backend.create(instance, service_details.parameters, existing=True)
        
        # Plan not supported
        raise ErrPlanUnsupported(service_details.plan_id)