internal static MgmtConfiguration LoadConfiguration()

in src/AutoRest.CSharp/Mgmt/AutoRest/MgmtConfiguration.cs [370:468]


        internal static MgmtConfiguration LoadConfiguration(JsonElement root)
        {
            root.TryGetProperty(nameof(OperationGroupsToOmit), out var operationGroupsToOmitElement);
            root.TryGetProperty(nameof(RequestPathIsNonResource), out var requestPathIsNonResourceElement);
            root.TryGetProperty(nameof(NoPropertyTypeReplacement), out var noPropertyTypeReplacementElement);
            root.TryGetProperty(nameof(ListException), out var listExceptionElement);
            root.TryGetProperty(nameof(KeepOrphanedModels), out var keepOrphanedModelsElement);
            root.TryGetProperty(nameof(KeepPluralEnums), out var keepPluralEnumsElement);
            root.TryGetProperty(nameof(KeepPluralResourceData), out var keepPluralResourceDataElement);
            root.TryGetProperty(nameof(NoResourceSuffix), out var noResourceSuffixElement);
            root.TryGetProperty(nameof(PrependRPPrefix), out var prependRPPrefixElement);
            root.TryGetProperty(nameof(GenerateArmResourceExtensions), out var generateArmResourceExtensionsElement);
            root.TryGetProperty(nameof(RequestPathToParent), out var requestPathToParent);
            root.TryGetProperty(nameof(RequestPathToResourceName), out var requestPathToResourceName);
            root.TryGetProperty(nameof(RequestPathToResourceData), out var requestPathToResourceData);
            root.TryGetProperty(nameof(RequestPathToResourceType), out var requestPathToResourceType);
            root.TryGetProperty(nameof(RequestPathToScopeResourceTypes), out var requestPathToScopeResourceTypes);
            root.TryGetProperty(nameof(OperationPositions), out var operationPositions);
            root.TryGetProperty(nameof(RequestPathToSingletonResource), out var requestPathToSingletonResource);
            root.TryGetProperty(nameof(RawAcronymMapping), out var acronymMapping);
            root.TryGetProperty(nameof(RenamePropertyBag), out var renamePropertyBag);
            root.TryGetProperty(nameof(FormatByNameRules), out var formatByNameRules);
            root.TryGetProperty(nameof(RenameMapping), out var renameMapping);
            root.TryGetProperty(nameof(ParameterRenameMapping), out var parameterRenameMapping);
            root.TryGetProperty(nameof(IrregularPluralWords), out var irregularPluralWords);
            root.TryGetProperty(nameof(OverrideOperationName), out var operationIdToName);
            root.TryGetProperty(nameof(MergeOperations), out var mergeOperations);
            root.TryGetProperty(nameof(PromptedEnumValues), out var promptedEnumValuesElement);
            root.TryGetProperty(nameof(PartialResources), out var virtualResources);
            root.TryGetProperty(nameof(RawParameterizedScopes), out var parameterizedScopesElement);
            root.TryGetProperty(nameof(PrivilegedOperations), out var privilegedOperationsElement);
            root.TryGetProperty(nameof(OperationsToSkipLroApiVersionOverride), out var operationsToSkipLroApiVersionOverrideElement);

            var operationGroupToOmit = Configuration.DeserializeArray(operationGroupsToOmitElement);
            var requestPathIsNonResource = Configuration.DeserializeArray(requestPathIsNonResourceElement);
            var noPropertyTypeReplacement = Configuration.DeserializeArray(noPropertyTypeReplacementElement);
            var listException = Configuration.DeserializeArray(listExceptionElement);
            var promptedEnumValues = Configuration.DeserializeArray(promptedEnumValuesElement);
            var keepOrphanedModels = Configuration.DeserializeArray(keepOrphanedModelsElement);
            var keepPluralEnums = Configuration.DeserializeArray(keepPluralEnumsElement);
            var keepPluralResourceData = Configuration.DeserializeArray(keepPluralResourceDataElement);
            var noResourceSuffix = Configuration.DeserializeArray(noResourceSuffixElement);
            var prependRPPrefix = Configuration.DeserializeArray(prependRPPrefixElement);
            var generateArmResourceExtensions = Configuration.DeserializeArray(generateArmResourceExtensionsElement);
            var parameterizedScopes = Configuration.DeserializeArray(parameterizedScopesElement);
            var operationsToSkipLroApiVersionOverride = Configuration.DeserializeArray(operationsToSkipLroApiVersionOverrideElement);

            root.TryGetProperty("ArmCore", out var isArmCore);
            root.TryGetProperty(nameof(MgmtDebug), out var mgmtDebugRoot);
            root.TryGetProperty(nameof(DoesResourceModelRequireType), out var resourceModelRequiresType);
            root.TryGetProperty(nameof(DoesResourceModelRequireName), out var resourceModelRequiresName);
            root.TryGetProperty(nameof(DoesSingletonRequiresKeyword), out var singletonRequiresKeyword);
            root.TryGetProperty(nameof(OperationIdMappings), out var operationIdMappings);
            root.TryGetProperty(nameof(UpdateRequiredCopy), out var updateRequiredCopy);
            root.TryGetProperty(nameof(PatchInitializerCustomization), out var patchInitializerCustomization);
            root.TryGetProperty(nameof(PrivilegedOperations), out var privilegedOperations);
            root.TryGetProperty(nameof(OperationsToLroApiVersionOverride), out var operationsToLroApiVersionOverride);

            return new MgmtConfiguration(
                operationGroupsToOmit: operationGroupToOmit,
                requestPathIsNonResource: requestPathIsNonResource,
                noPropertyTypeReplacement: noPropertyTypeReplacement,
                listException: listException,
                promptedEnumValues: promptedEnumValues,
                keepOrphanedModels: keepOrphanedModels,
                keepPluralEnums: keepPluralEnums,
                keepPluralResourceData: keepPluralResourceData,
                noResourceSuffix: noResourceSuffix,
                schemasToPrependRPPrefix: prependRPPrefix,
                generateArmResourceExtensions: generateArmResourceExtensions,
                parameterizedScopes: parameterizedScopes,
                operationsToSkipLroApiVersionOverride: operationsToSkipLroApiVersionOverride,
                mgmtDebug: MgmtDebugConfiguration.LoadConfiguration(mgmtDebugRoot),
                requestPathToParent: requestPathToParent,
                requestPathToResourceName: requestPathToResourceName,
                requestPathToResourceData: requestPathToResourceData,
                requestPathToResourceType: requestPathToResourceType,
                requestPathToScopeResourceTypes: requestPathToScopeResourceTypes,
                operationPositions: operationPositions,
                requestPathToSingletonResource: requestPathToSingletonResource,
                overrideOperationName: operationIdToName,
                acronymMapping: acronymMapping,
                renamePropertyBag: renamePropertyBag,
                formatByNameRules: formatByNameRules,
                renameMapping: renameMapping,
                parameterRenameMapping: parameterRenameMapping,
                irregularPluralWords: irregularPluralWords,
                mergeOperations: mergeOperations,
                armCore: isArmCore,
                resourceModelRequiresType: resourceModelRequiresType,
                resourceModelRequiresName: resourceModelRequiresName,
                singletonRequiresKeyword: singletonRequiresKeyword,
                operationIdMappings: operationIdMappings,
                updateRequiredCopy: updateRequiredCopy,
                patchInitializerCustomization: patchInitializerCustomization,
                partialResources: virtualResources,
                privilegedOperations: privilegedOperations,
                operationsToLroApiVersionOverride: operationsToLroApiVersionOverride);
        }