internal ACIServiceResponse(string description, IDictionary <string, string> kvTags, IDictionary <string, string> properties, WebServiceState?state, ServiceResponseBaseError error, ComputeEnvironmentType computeType, DeploymentType?deploymentType, ContainerResourceRequirements containerResourceRequirements, string scoringUri, string location, bool?authEnabled, bool?sslEnabled, bool?appInsightsEnabled, ACIServiceResponseDataCollection dataCollection, string sslCertificate, string sslKey, string cname, string publicIp, string publicFqdn, string swaggerUri, IReadOnlyDictionary <string, object> modelConfigMap, IList <Model> models, ACIServiceResponseEnvironmentImageRequest environmentImageRequest, ACIServiceResponseVnetConfiguration vnetConfiguration, ACIServiceResponseEncryptionProperties encryptionProperties) : base(description, kvTags, properties, state, error, computeType, deploymentType)
 {
     ContainerResourceRequirements = containerResourceRequirements;
     ScoringUri         = scoringUri;
     Location           = location;
     AuthEnabled        = authEnabled;
     SslEnabled         = sslEnabled;
     AppInsightsEnabled = appInsightsEnabled;
     DataCollection     = dataCollection;
     SslCertificate     = sslCertificate;
     SslKey             = sslKey;
     Cname                   = cname;
     PublicIp                = publicIp;
     PublicFqdn              = publicFqdn;
     SwaggerUri              = swaggerUri;
     ModelConfigMap          = modelConfigMap;
     Models                  = models;
     EnvironmentImageRequest = environmentImageRequest;
     VnetConfiguration       = vnetConfiguration;
     EncryptionProperties    = encryptionProperties;
     ComputeType             = computeType;
 }
 internal AKSServiceResponse(string description, IDictionary <string, string> kvTags, IDictionary <string, string> properties, WebServiceState?state, ServiceResponseBaseError error, ComputeEnvironmentType computeType, DeploymentType?deploymentType, bool?isDefault, float?trafficPercentile, VariantType?type, IList <Model> models, ContainerResourceRequirements containerResourceRequirements, int?maxConcurrentRequestsPerContainer, int?maxQueueWaitMs, string computeName, string @namespace, int?numReplicas, AKSServiceResponseDataCollection dataCollection, bool?appInsightsEnabled, AKSServiceResponseAutoScaler autoScaler, string scoringUri, AKSServiceResponseDeploymentStatus deploymentStatus, int?scoringTimeoutMs, AKSServiceResponseLivenessProbeRequirements livenessProbeRequirements, bool?authEnabled, bool?aadAuthEnabled, string swaggerUri, IReadOnlyDictionary <string, object> modelConfigMap, AKSServiceResponseEnvironmentImageRequest environmentImageRequest) : base(description, kvTags, properties, state, error, computeType, deploymentType, isDefault, trafficPercentile, type)
 {
     Models = models;
     ContainerResourceRequirements     = containerResourceRequirements;
     MaxConcurrentRequestsPerContainer = maxConcurrentRequestsPerContainer;
     MaxQueueWaitMs            = maxQueueWaitMs;
     ComputeName               = computeName;
     Namespace                 = @namespace;
     NumReplicas               = numReplicas;
     DataCollection            = dataCollection;
     AppInsightsEnabled        = appInsightsEnabled;
     AutoScaler                = autoScaler;
     ScoringUri                = scoringUri;
     DeploymentStatus          = deploymentStatus;
     ScoringTimeoutMs          = scoringTimeoutMs;
     LivenessProbeRequirements = livenessProbeRequirements;
     AuthEnabled               = authEnabled;
     AadAuthEnabled            = aadAuthEnabled;
     SwaggerUri                = swaggerUri;
     ModelConfigMap            = modelConfigMap;
     EnvironmentImageRequest   = environmentImageRequest;
     ComputeType               = computeType;
 }
Ejemplo n.º 3
0
 internal Model(string id, string name, string framework, string frameworkVersion, long?version, IList <DatasetReference> datasets, string url, string mimeType, string description, DateTimeOffset?createdTime, DateTimeOffset?modifiedTime, bool?unpack, string parentModelId, string runId, string experimentName, IDictionary <string, string> kvTags, IDictionary <string, string> properties, IList <string> derivedModelIds, string sampleInputData, string sampleOutputData, ContainerResourceRequirements resourceRequirements)
 {
     Id                   = id;
     Name                 = name;
     Framework            = framework;
     FrameworkVersion     = frameworkVersion;
     Version              = version;
     Datasets             = datasets;
     Url                  = url;
     MimeType             = mimeType;
     Description          = description;
     CreatedTime          = createdTime;
     ModifiedTime         = modifiedTime;
     Unpack               = unpack;
     ParentModelId        = parentModelId;
     RunId                = runId;
     ExperimentName       = experimentName;
     KvTags               = kvTags;
     Properties           = properties;
     DerivedModelIds      = derivedModelIds;
     SampleInputData      = sampleInputData;
     SampleOutputData     = sampleOutputData;
     ResourceRequirements = resourceRequirements;
 }
        internal static ACIServiceResponse DeserializeACIServiceResponse(JsonElement element)
        {
            Optional <ContainerResourceRequirements> containerResourceRequirements = default;
            Optional <string> scoringUri         = default;
            Optional <string> location           = default;
            Optional <bool>   authEnabled        = default;
            Optional <bool>   sslEnabled         = default;
            Optional <bool>   appInsightsEnabled = default;
            Optional <ACIServiceResponseDataCollection> dataCollection = default;
            Optional <string> sslCertificate = default;
            Optional <string> sslKey         = default;
            Optional <string> cname          = default;
            Optional <string> publicIp       = default;
            Optional <string> publicFqdn     = default;
            Optional <string> swaggerUri     = default;
            Optional <IReadOnlyDictionary <string, object> > modelConfigMap = default;
            Optional <IList <Model> > models = default;
            Optional <ACIServiceResponseEnvironmentImageRequest> environmentImageRequest = default;
            Optional <ACIServiceResponseVnetConfiguration>       vnetConfiguration       = default;
            Optional <ACIServiceResponseEncryptionProperties>    encryptionProperties    = default;
            Optional <string> description = default;
            Optional <IDictionary <string, string> > kvTags     = default;
            Optional <IDictionary <string, string> > properties = default;
            Optional <WebServiceState>          state           = default;
            Optional <ServiceResponseBaseError> error           = default;
            ComputeEnvironmentType    computeType    = default;
            Optional <DeploymentType> deploymentType = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("containerResourceRequirements"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    containerResourceRequirements = ContainerResourceRequirements.DeserializeContainerResourceRequirements(property.Value);
                    continue;
                }
                if (property.NameEquals("scoringUri"))
                {
                    scoringUri = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("location"))
                {
                    location = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("authEnabled"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    authEnabled = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("sslEnabled"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    sslEnabled = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("appInsightsEnabled"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    appInsightsEnabled = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("dataCollection"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    dataCollection = ACIServiceResponseDataCollection.DeserializeACIServiceResponseDataCollection(property.Value);
                    continue;
                }
                if (property.NameEquals("sslCertificate"))
                {
                    sslCertificate = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("sslKey"))
                {
                    sslKey = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("cname"))
                {
                    cname = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("publicIp"))
                {
                    publicIp = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("publicFqdn"))
                {
                    publicFqdn = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("swaggerUri"))
                {
                    swaggerUri = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("modelConfigMap"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, object> dictionary = new Dictionary <string, object>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetObject());
                    }
                    modelConfigMap = dictionary;
                    continue;
                }
                if (property.NameEquals("models"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <Model> array = new List <Model>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(Model.DeserializeModel(item));
                    }
                    models = array;
                    continue;
                }
                if (property.NameEquals("environmentImageRequest"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    environmentImageRequest = ACIServiceResponseEnvironmentImageRequest.DeserializeACIServiceResponseEnvironmentImageRequest(property.Value);
                    continue;
                }
                if (property.NameEquals("vnetConfiguration"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    vnetConfiguration = ACIServiceResponseVnetConfiguration.DeserializeACIServiceResponseVnetConfiguration(property.Value);
                    continue;
                }
                if (property.NameEquals("encryptionProperties"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    encryptionProperties = ACIServiceResponseEncryptionProperties.DeserializeACIServiceResponseEncryptionProperties(property.Value);
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("kvTags"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, string> dictionary = new Dictionary <string, string>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetString());
                    }
                    kvTags = dictionary;
                    continue;
                }
                if (property.NameEquals("properties"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, string> dictionary = new Dictionary <string, string>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetString());
                    }
                    properties = dictionary;
                    continue;
                }
                if (property.NameEquals("state"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    state = new WebServiceState(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("error"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    error = ServiceResponseBaseError.DeserializeServiceResponseBaseError(property.Value);
                    continue;
                }
                if (property.NameEquals("computeType"))
                {
                    computeType = new ComputeEnvironmentType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("deploymentType"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    deploymentType = new DeploymentType(property.Value.GetString());
                    continue;
                }
            }
            return(new ACIServiceResponse(description.Value, Optional.ToDictionary(kvTags), Optional.ToDictionary(properties), Optional.ToNullable(state), error.Value, computeType, Optional.ToNullable(deploymentType), containerResourceRequirements.Value, scoringUri.Value, location.Value, Optional.ToNullable(authEnabled), Optional.ToNullable(sslEnabled), Optional.ToNullable(appInsightsEnabled), dataCollection.Value, sslCertificate.Value, sslKey.Value, cname.Value, publicIp.Value, publicFqdn.Value, swaggerUri.Value, Optional.ToDictionary(modelConfigMap), Optional.ToList(models), environmentImageRequest.Value, vnetConfiguration.Value, encryptionProperties.Value));
        }
        internal static AKSServiceResponse DeserializeAKSServiceResponse(JsonElement element)
        {
            Optional <IList <Model> > models = default;
            Optional <ContainerResourceRequirements> containerResourceRequirements = default;
            Optional <int>    maxConcurrentRequestsPerContainer = default;
            Optional <int>    maxQueueWaitMs = default;
            Optional <string> computeName    = default;
            Optional <string> @namespace     = default;
            Optional <int>    numReplicas    = default;
            Optional <AKSServiceResponseDataCollection> dataCollection = default;
            Optional <bool> appInsightsEnabled = default;
            Optional <AKSServiceResponseAutoScaler> autoScaler = default;
            Optional <string> scoringUri = default;
            Optional <AKSServiceResponseDeploymentStatus> deploymentStatus = default;
            Optional <int> scoringTimeoutMs = default;
            Optional <AKSServiceResponseLivenessProbeRequirements> livenessProbeRequirements = default;
            Optional <bool>   authEnabled    = default;
            Optional <bool>   aadAuthEnabled = default;
            Optional <string> swaggerUri     = default;
            Optional <IReadOnlyDictionary <string, object> >     modelConfigMap          = default;
            Optional <AKSServiceResponseEnvironmentImageRequest> environmentImageRequest = default;
            Optional <bool>        isDefault         = default;
            Optional <float>       trafficPercentile = default;
            Optional <VariantType> type        = default;
            Optional <string>      description = default;
            Optional <IDictionary <string, string> > kvTags     = default;
            Optional <IDictionary <string, string> > properties = default;
            Optional <WebServiceState>          state           = default;
            Optional <ServiceResponseBaseError> error           = default;
            ComputeEnvironmentType    computeType    = default;
            Optional <DeploymentType> deploymentType = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("models"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <Model> array = new List <Model>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(Model.DeserializeModel(item));
                    }
                    models = array;
                    continue;
                }
                if (property.NameEquals("containerResourceRequirements"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    containerResourceRequirements = ContainerResourceRequirements.DeserializeContainerResourceRequirements(property.Value);
                    continue;
                }
                if (property.NameEquals("maxConcurrentRequestsPerContainer"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    maxConcurrentRequestsPerContainer = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("maxQueueWaitMs"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    maxQueueWaitMs = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("computeName"))
                {
                    computeName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("namespace"))
                {
                    @namespace = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("numReplicas"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    numReplicas = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("dataCollection"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    dataCollection = AKSServiceResponseDataCollection.DeserializeAKSServiceResponseDataCollection(property.Value);
                    continue;
                }
                if (property.NameEquals("appInsightsEnabled"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    appInsightsEnabled = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("autoScaler"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    autoScaler = AKSServiceResponseAutoScaler.DeserializeAKSServiceResponseAutoScaler(property.Value);
                    continue;
                }
                if (property.NameEquals("scoringUri"))
                {
                    scoringUri = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("deploymentStatus"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    deploymentStatus = AKSServiceResponseDeploymentStatus.DeserializeAKSServiceResponseDeploymentStatus(property.Value);
                    continue;
                }
                if (property.NameEquals("scoringTimeoutMs"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    scoringTimeoutMs = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("livenessProbeRequirements"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    livenessProbeRequirements = AKSServiceResponseLivenessProbeRequirements.DeserializeAKSServiceResponseLivenessProbeRequirements(property.Value);
                    continue;
                }
                if (property.NameEquals("authEnabled"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    authEnabled = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("aadAuthEnabled"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    aadAuthEnabled = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("swaggerUri"))
                {
                    swaggerUri = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("modelConfigMap"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, object> dictionary = new Dictionary <string, object>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetObject());
                    }
                    modelConfigMap = dictionary;
                    continue;
                }
                if (property.NameEquals("environmentImageRequest"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    environmentImageRequest = AKSServiceResponseEnvironmentImageRequest.DeserializeAKSServiceResponseEnvironmentImageRequest(property.Value);
                    continue;
                }
                if (property.NameEquals("isDefault"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    isDefault = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("trafficPercentile"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    trafficPercentile = property.Value.GetSingle();
                    continue;
                }
                if (property.NameEquals("type"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    type = new VariantType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("kvTags"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, string> dictionary = new Dictionary <string, string>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetString());
                    }
                    kvTags = dictionary;
                    continue;
                }
                if (property.NameEquals("properties"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, string> dictionary = new Dictionary <string, string>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetString());
                    }
                    properties = dictionary;
                    continue;
                }
                if (property.NameEquals("state"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    state = new WebServiceState(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("error"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    error = ServiceResponseBaseError.DeserializeServiceResponseBaseError(property.Value);
                    continue;
                }
                if (property.NameEquals("computeType"))
                {
                    computeType = new ComputeEnvironmentType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("deploymentType"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    deploymentType = new DeploymentType(property.Value.GetString());
                    continue;
                }
            }
            return(new AKSServiceResponse(description.Value, Optional.ToDictionary(kvTags), Optional.ToDictionary(properties), Optional.ToNullable(state), error.Value, computeType, Optional.ToNullable(deploymentType), Optional.ToNullable(isDefault), Optional.ToNullable(trafficPercentile), Optional.ToNullable(type), Optional.ToList(models), containerResourceRequirements.Value, Optional.ToNullable(maxConcurrentRequestsPerContainer), Optional.ToNullable(maxQueueWaitMs), computeName.Value, @namespace.Value, Optional.ToNullable(numReplicas), dataCollection.Value, Optional.ToNullable(appInsightsEnabled), autoScaler.Value, scoringUri.Value, deploymentStatus.Value, Optional.ToNullable(scoringTimeoutMs), livenessProbeRequirements.Value, Optional.ToNullable(authEnabled), Optional.ToNullable(aadAuthEnabled), swaggerUri.Value, Optional.ToDictionary(modelConfigMap), environmentImageRequest.Value));
        }
        internal static Model DeserializeModel(JsonElement element)
        {
            Optional <string> id                                          = default;
            string            name                                        = default;
            Optional <string> framework                                   = default;
            Optional <string> frameworkVersion                            = default;
            Optional <long>   version                                     = default;
            Optional <IList <DatasetReference> > datasets                 = default;
            string                    url                                 = default;
            string                    mimeType                            = default;
            Optional <string>         description                         = default;
            Optional <DateTimeOffset> createdTime                         = default;
            Optional <DateTimeOffset> modifiedTime                        = default;
            Optional <bool>           unpack                              = default;
            Optional <string>         parentModelId                       = default;
            Optional <string>         runId                               = default;
            Optional <string>         experimentName                      = default;
            Optional <IDictionary <string, string> > kvTags               = default;
            Optional <IDictionary <string, string> > properties           = default;
            Optional <IList <string> > derivedModelIds                    = default;
            Optional <string>          sampleInputData                    = default;
            Optional <string>          sampleOutputData                   = default;
            Optional <ContainerResourceRequirements> resourceRequirements = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("id"))
                {
                    id = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("framework"))
                {
                    framework = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("frameworkVersion"))
                {
                    frameworkVersion = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("version"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    version = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("datasets"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <DatasetReference> array = new List <DatasetReference>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(DatasetReference.DeserializeDatasetReference(item));
                    }
                    datasets = array;
                    continue;
                }
                if (property.NameEquals("url"))
                {
                    url = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("mimeType"))
                {
                    mimeType = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("createdTime"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    createdTime = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("modifiedTime"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    modifiedTime = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("unpack"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    unpack = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("parentModelId"))
                {
                    parentModelId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("runId"))
                {
                    runId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("experimentName"))
                {
                    experimentName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("kvTags"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, string> dictionary = new Dictionary <string, string>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetString());
                    }
                    kvTags = dictionary;
                    continue;
                }
                if (property.NameEquals("properties"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, string> dictionary = new Dictionary <string, string>();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetString());
                    }
                    properties = dictionary;
                    continue;
                }
                if (property.NameEquals("derivedModelIds"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    derivedModelIds = array;
                    continue;
                }
                if (property.NameEquals("sampleInputData"))
                {
                    sampleInputData = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("sampleOutputData"))
                {
                    sampleOutputData = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("resourceRequirements"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    resourceRequirements = ContainerResourceRequirements.DeserializeContainerResourceRequirements(property.Value);
                    continue;
                }
            }
            return(new Model(id.Value, name, framework.Value, frameworkVersion.Value, Optional.ToNullable(version), Optional.ToList(datasets), url, mimeType, description.Value, Optional.ToNullable(createdTime), Optional.ToNullable(modifiedTime), Optional.ToNullable(unpack), parentModelId.Value, runId.Value, experimentName.Value, Optional.ToDictionary(kvTags), Optional.ToDictionary(properties), Optional.ToList(derivedModelIds), sampleInputData.Value, sampleOutputData.Value, resourceRequirements.Value));
        }