# --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- from marshmallow import fields from azure.ai.ml._schema.core.fields import ( CodeField, DistributionField, EnvironmentField, ExperimentalField, NestedField, ) from azure.ai.ml._schema.core.schema import PathAwareSchema from azure.ai.ml._schema.job.input_output_entry import InputLiteralValueSchema from azure.ai.ml._schema.job_resource_configuration import JobResourceConfigurationSchema from azure.ai.ml._schema.queue_settings import QueueSettingsSchema from ..core.fields import UnionField class ParameterizedCommandSchema(PathAwareSchema): command = fields.Str( metadata={ # pylint: disable=line-too-long "description": "The command run and the parameters passed. This string may contain place holders of inputs in {}. " }, required=True, ) code = CodeField() environment = EnvironmentField(required=True) environment_variables = UnionField( [ fields.Dict(keys=fields.Str(), values=fields.Str()), # Used for binding environment variables NestedField(InputLiteralValueSchema), ] ) resources = NestedField(JobResourceConfigurationSchema) distribution = DistributionField() queue_settings = ExperimentalField(NestedField(QueueSettingsSchema))