docs: def model_config(instance_type, model, role=None, image=None):
      """Export Airflow model config from a SageMaker model
  
      Args:
          instance_type (str): The EC2 instance type to deploy this Model to. For example, 'ml.p2.xlarge'
          model (sagemaker.model.FrameworkModel): The SageMaker model to export Airflow config from
          role (str): The ``ExecutionRoleArn`` IAM Role ARN for the model
          image (str): An container image to use for deploying the model
  
      Returns:
          dict: Model config that can be directly used by SageMakerModelOperator in Airflow. It can also be part
          of the config used by SageMakerEndpointOperator and SageMakerTransformOperator in Airflow.
      """
      s3_operations = {}
      model.image = image or model.image
  
      if isinstance(model, sagemaker.model.FrameworkModel):
          container_def = prepare_framework_container_def(model, instance_type, s3_operations)
      else:
          container_def = model.prepare_container_def(instance_type)
          base_name = utils.base_name_from_image(container_def['Image'])
          model.name = model.name or utils.name_from_base(base_name)
  
      primary_container = session._expand_container_def(container_def)
  
      config = {
          'ModelName': model.name,
          'PrimaryContainer': primary_container,
          'ExecutionRoleArn': role or model.role
      }
  
      if model.vpc_config:
          config['VpcConfig'] = model.vpc_config
  
      if s3_operations:
          config['S3Operations'] = s3_operations
  
      return config