internal static CloudTask DeserializeCloudTask(JsonElement element) { string id = default; string displayName = default; string url = default; string eTag = default; DateTimeOffset? lastModified = default; DateTimeOffset? creationTime = default; ExitConditions exitConditions = default; TaskState? state = default; DateTimeOffset? stateTransitionTime = default; TaskState? previousState = default; DateTimeOffset? previousStateTransitionTime = default; string commandLine = default; TaskContainerSettings containerSettings = default; IReadOnlyList <ResourceFile> resourceFiles = default; IReadOnlyList <OutputFile> outputFiles = default; IReadOnlyList <EnvironmentSetting> environmentSettings = default; AffinityInformation affinityInfo = default; TaskConstraints constraints = default; UserIdentity userIdentity = default; TaskExecutionInformation executionInfo = default; ComputeNodeInformation nodeInfo = default; MultiInstanceSettings multiInstanceSettings = default; TaskStatistics stats = default; TaskDependencies dependsOn = default; IReadOnlyList <ApplicationPackageReference> applicationPackageReferences = default; AuthenticationTokenSettings authenticationTokenSettings = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } id = property.Value.GetString(); continue; } if (property.NameEquals("displayName")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } displayName = property.Value.GetString(); continue; } if (property.NameEquals("url")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } url = property.Value.GetString(); continue; } if (property.NameEquals("eTag")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } eTag = property.Value.GetString(); continue; } if (property.NameEquals("lastModified")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } lastModified = property.Value.GetDateTimeOffset("S"); continue; } if (property.NameEquals("creationTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } creationTime = property.Value.GetDateTimeOffset("S"); continue; } if (property.NameEquals("exitConditions")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } exitConditions = ExitConditions.DeserializeExitConditions(property.Value); continue; } if (property.NameEquals("state")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } state = property.Value.GetString().ToTaskState(); continue; } if (property.NameEquals("stateTransitionTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } stateTransitionTime = property.Value.GetDateTimeOffset("S"); continue; } if (property.NameEquals("previousState")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } previousState = property.Value.GetString().ToTaskState(); continue; } if (property.NameEquals("previousStateTransitionTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } previousStateTransitionTime = property.Value.GetDateTimeOffset("S"); continue; } if (property.NameEquals("commandLine")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } commandLine = property.Value.GetString(); continue; } if (property.NameEquals("containerSettings")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } containerSettings = TaskContainerSettings.DeserializeTaskContainerSettings(property.Value); continue; } if (property.NameEquals("resourceFiles")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <ResourceFile> array = new List <ResourceFile>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(ResourceFile.DeserializeResourceFile(item)); } resourceFiles = array; continue; } if (property.NameEquals("outputFiles")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <OutputFile> array = new List <OutputFile>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(OutputFile.DeserializeOutputFile(item)); } outputFiles = array; continue; } if (property.NameEquals("environmentSettings")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <EnvironmentSetting> array = new List <EnvironmentSetting>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(EnvironmentSetting.DeserializeEnvironmentSetting(item)); } environmentSettings = array; continue; } if (property.NameEquals("affinityInfo")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } affinityInfo = AffinityInformation.DeserializeAffinityInformation(property.Value); continue; } if (property.NameEquals("constraints")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } constraints = TaskConstraints.DeserializeTaskConstraints(property.Value); continue; } if (property.NameEquals("userIdentity")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } userIdentity = UserIdentity.DeserializeUserIdentity(property.Value); continue; } if (property.NameEquals("executionInfo")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } executionInfo = TaskExecutionInformation.DeserializeTaskExecutionInformation(property.Value); continue; } if (property.NameEquals("nodeInfo")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } nodeInfo = ComputeNodeInformation.DeserializeComputeNodeInformation(property.Value); continue; } if (property.NameEquals("multiInstanceSettings")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } multiInstanceSettings = MultiInstanceSettings.DeserializeMultiInstanceSettings(property.Value); continue; } if (property.NameEquals("stats")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } stats = TaskStatistics.DeserializeTaskStatistics(property.Value); continue; } if (property.NameEquals("dependsOn")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } dependsOn = TaskDependencies.DeserializeTaskDependencies(property.Value); continue; } if (property.NameEquals("applicationPackageReferences")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <ApplicationPackageReference> array = new List <ApplicationPackageReference>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(ApplicationPackageReference.DeserializeApplicationPackageReference(item)); } applicationPackageReferences = array; continue; } if (property.NameEquals("authenticationTokenSettings")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } authenticationTokenSettings = AuthenticationTokenSettings.DeserializeAuthenticationTokenSettings(property.Value); continue; } } return(new CloudTask(id, displayName, url, eTag, lastModified, creationTime, exitConditions, state, stateTransitionTime, previousState, previousStateTransitionTime, commandLine, containerSettings, resourceFiles, outputFiles, environmentSettings, affinityInfo, constraints, userIdentity, executionInfo, nodeInfo, multiInstanceSettings, stats, dependsOn, applicationPackageReferences, authenticationTokenSettings)); }