<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def endpoint_from_model_data(self, model_s3_location, deployment_image, initial_instance_count, instance_type, name=None, role=None, wait=True, model_environment_vars=None, model_vpc_config=None, accelerator_type=None):
 """Create and deploy to an ``Endpoint`` using existing model data stored in S3. Args: model_s3_location (str):
 S3 URI of the model artifacts to use for the endpoint. deployment_image (str):
 The Docker image which defines the runtime code to be used as the entry point for accepting prediction requests. initial_instance_count (int):
 Minimum number of EC2 instances to launch. The actual number of active instances for an endpoint at any given time varies due to autoscaling. instance_type (str):
 Type of EC2 instance to deploy to an endpoint for prediction, e.g. 'ml.c4.xlarge'. name (str):
 Name of the ``Endpoint`` to create. If not specified, uses a name generated by combining the image name with a timestamp. role (str):
 An AWS IAM role (either name or full ARN). The Amazon SageMaker training jobs and APIs that create Amazon SageMaker endpoints use this role to access training data and model artifacts. You must grant sufficient permissions to this role. wait (bool):
 Whether to wait for the endpoint deployment to complete before returning (default: True). model_environment_vars (dict[str, str]):
 Environment variables to set on the model container (default: None). model_vpc_config (dict[str, list[str]]):
 The VpcConfig set on the model (default: None) * 'Subnets' (list[str]):
 List of subnet ids. * 'SecurityGroupIds' (list[str]):
 List of security group ids. accelerator_type (str):
 Type of Elastic Inference accelerator to attach to the instance. For example, 'ml.eia1.medium'. For more information: https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html Returns: str: Name of the ``Endpoint`` that is created. """


        model_environment_vars = model_environment_vars or {}
        name = name or name_from_image(deployment_image)
        model_vpc_config = vpc_utils.sanitize(model_vpc_config)

        if _deployment_entity_exists(lambda: self.sagemaker_client.describe_endpoint(EndpointName=name)):
            raise ValueError('Endpoint with name "{}" already exists; please pick a different name.'.format(name))

        if not _deployment_entity_exists(lambda: self.sagemaker_client.describe_model(ModelName=name)):
            primary_container = container_def(image=deployment_image,
                                              model_data_url=model_s3_location,
                                              env=model_environment_vars)
            self.create_model(name=name,
                              role=role,
                              container_defs=primary_container,
                              vpc_config=model_vpc_config)

        if not _deployment_entity_exists(
                lambda: self.sagemaker_client.describe_endpoint_config(EndpointConfigName=name)):
            self.create_endpoint_config(name=name,
                                        model_name=name,
                                        initial_instance_count=initial_instance_count,
                                        instance_type=instance_type,
                                        accelerator_type=accelerator_type)

        self.create_endpoint(endpoint_name=name, config_name=name, wait=wait)
        return name