text: # coding=utf-8
  # --------------------------------------------------------------------------
  # Copyright (c) Microsoft Corporation. All rights reserved.
  # Licensed under the MIT License. See License.txt in the project root for
  # license information.
  #
  # Code generated by Microsoft (R) AutoRest Code Generator 2.3.33.0
  # Changes may cause incorrect behavior and will be lost if the code is
  # regenerated.
  # --------------------------------------------------------------------------
  
  from msrest.serialization import Model
  
  
  class OptimizationConfig(Model):
      """The model optimization configuration.
  
      You probably want to use the sub-classes and not this class directly. Known
      sub-classes are: ModelOptimizationRequestOptimizationConfig,
      PyTorchOptimizationConfig, TensorflowOptimizationConfig
  
      :param inputs_schema: The inputs schema used to convert and optimize
       model.
      :type inputs_schema: list[~_restclient.models.ModelSchema]
      :param outputs_schema: The outputs schema used to convert and optimize
       model.
      :type outputs_schema: list[~_restclient.models.ModelSchema]
      :param onnx_tuning_enabled: Whether enable the onnx performance tuning.
      :type onnx_tuning_enabled: bool
      :param model_path: The relative model file/folder path in the registered
       model artifacts.
      :type model_path: str
      :param sample_input_data: Sample Input Data for the Model. A reference to
       a dataset in the workspace in the format aml://dataset/{datasetId}
      :type sample_input_data: str
      :param framework: Constant filled by server.
      :type framework: str
      """
  
      _validation = {
          'onnx_tuning_enabled': {'required': True},
          'framework': {'required': True},
      }
  
      _attribute_map = {
          'inputs_schema': {'key': 'inputsSchema', 'type': '[ModelSchema]'},
          'outputs_schema': {'key': 'outputsSchema', 'type': '[ModelSchema]'},
          'onnx_tuning_enabled': {'key': 'onnxTuningEnabled', 'type': 'bool'},
          'model_path': {'key': 'modelPath', 'type': 'str'},
          'sample_input_data': {'key': 'sampleInputData', 'type': 'str'},
          'framework': {'key': 'framework', 'type': 'str'},
      }
  
      _subtype_map = {
          'framework': {'ModelOptimizationRequest_optimizationConfig': 'ModelOptimizationRequestOptimizationConfig', 'PyTorch': 'PyTorchOptimizationConfig', 'TensorFlow': 'TensorflowOptimizationConfig'}
      }
  
      def __init__(self, onnx_tuning_enabled, inputs_schema=None, outputs_schema=None, model_path=None, sample_input_data=None):
          super(OptimizationConfig, self).__init__()
          self.inputs_schema = inputs_schema
          self.outputs_schema = outputs_schema
          self.onnx_tuning_enabled = onnx_tuning_enabled
          self.model_path = model_path
          self.sample_input_data = sample_input_data
          self.framework = None
  