in src/AutoRest.CSharp/Mgmt/AutoRest/MgmtConfiguration.cs [109:210]
private static IReadOnlyDictionary<string, AcronymMappingTarget> ParseAcronymMapping(IReadOnlyDictionary<string, string> acronymMapping)
=> acronymMapping.ToDictionary(kv => kv.Key, kv => AcronymMappingTarget.Parse(kv.Value));
public MgmtConfiguration(
IReadOnlyList<string> operationGroupsToOmit,
IReadOnlyList<string> requestPathIsNonResource,
IReadOnlyList<string> noPropertyTypeReplacement,
IReadOnlyList<string> listException,
IReadOnlyList<string> promptedEnumValues,
IReadOnlyList<string> keepOrphanedModels,
IReadOnlyList<string> keepPluralEnums,
IReadOnlyList<string> keepPluralResourceData,
IReadOnlyList<string> noResourceSuffix,
IReadOnlyList<string> schemasToPrependRPPrefix,
IReadOnlyList<string> generateArmResourceExtensions,
IReadOnlyList<string> parameterizedScopes,
IReadOnlyList<string> operationsToSkipLroApiVersionOverride,
MgmtDebugConfiguration mgmtDebug,
JsonElement? requestPathToParent = default,
JsonElement? requestPathToResourceName = default,
JsonElement? requestPathToResourceData = default,
JsonElement? requestPathToResourceType = default,
JsonElement? requestPathToScopeResourceTypes = default,
JsonElement? requestPathToSingletonResource = default,
JsonElement? overrideOperationName = default,
JsonElement? operationPositions = default,
JsonElement? acronymMapping = default,
JsonElement? renamePropertyBag = default,
JsonElement? formatByNameRules = default,
JsonElement? renameMapping = default,
JsonElement? parameterRenameMapping = default,
JsonElement? irregularPluralWords = default,
JsonElement? mergeOperations = default,
JsonElement? armCore = default,
JsonElement? resourceModelRequiresType = default,
JsonElement? resourceModelRequiresName = default,
JsonElement? singletonRequiresKeyword = default,
JsonElement? operationIdMappings = default,
JsonElement? updateRequiredCopy = default,
JsonElement? patchInitializerCustomization = default,
JsonElement? partialResources = default,
JsonElement? privilegedOperations = default,
JsonElement? operationsToLroApiVersionOverride = default)
{
MgmtReport.Instance.Reset();
RequestPathToParent = DeserializeDictionary<string, string>(requestPathToParent);
RequestPathToResourceName = DeserializeDictionary<string, string>(requestPathToResourceName);
RequestPathToResourceData = DeserializeDictionary<string, string>(requestPathToResourceData);
RequestPathToResourceType = DeserializeDictionary<string, string>(requestPathToResourceType);
RequestPathToScopeResourceTypes = DeserializeDictionary<string, string[]>(requestPathToScopeResourceTypes);
RequestPathToSingletonResource = DeserializeDictionary<string, string>(requestPathToSingletonResource);
OverrideOperationName = DeserializeDictionary<string, string>(overrideOperationName).AddToTransformerStore(TransformTypeName.OverrideOperationName, fromConfig: true);
RawAcronymMapping = DeserializeDictionary<string, string>(acronymMapping).AddToTransformerStore(TransformTypeName.AcronymMapping, fromConfig: true);
RenamePropertyBag = DeserializeDictionary<string, string>(renamePropertyBag);
FormatByNameRules = DeserializeDictionary<string, string>(formatByNameRules).AddToTransformerStore(TransformTypeName.FormatByNameRules, fromConfig: true);
RenameMapping = DeserializeDictionary<string, string>(renameMapping).AddToTransformerStore(TransformTypeName.RenameMapping, fromConfig: true);
ParameterRenameMapping = DeserializeDictionary<string, IReadOnlyDictionary<string, string>>(parameterRenameMapping).AddToTransformerStore(TransformTypeName.ParameterRenameMapping,(arg) => arg.Value.Select(valueKV => new TransformItem(arg.Type, arg.Key, true /*fromConfig*/, valueKV.Key, valueKV.Value)));
IrregularPluralWords = DeserializeDictionary<string, string>(irregularPluralWords);
PartialResources = DeserializeDictionary<string, string>(partialResources);
try
{
OperationPositions = DeserializeDictionary<string, string[]>(operationPositions);
}
catch (JsonException)
{
var operationPositionsStrDict = DeserializeDictionary<string, string>(operationPositions);
OperationPositions = operationPositionsStrDict.ToDictionary(kv => kv.Key, kv => kv.Value.Split(";"));
}
MgmtDebug = mgmtDebug;
// TODO: A unified way to load from both readme and configuration.json
try
{
MergeOperations = DeserializeDictionary<string, string[]>(mergeOperations);
}
catch (JsonException)
{
var mergeOperationsStrDict = DeserializeDictionary<string, string>(mergeOperations);
MergeOperations = mergeOperationsStrDict.ToDictionary(kv => kv.Key, kv => kv.Value.Split(";"));
}
OperationGroupsToOmit = operationGroupsToOmit.AddToTransformerStore(Mgmt.Report.TransformTypeName.OperationGroupsToOmit, fromConfig: true);
RequestPathIsNonResource = requestPathIsNonResource.AddToTransformerStore(TransformTypeName.RequestPathIsNonResource, fromConfig: true);
NoPropertyTypeReplacement = noPropertyTypeReplacement.AddToTransformerStore(TransformTypeName.NoPropertyTypeReplacement, fromConfig: true);
ListException = listException;
PromptedEnumValues = promptedEnumValues;
KeepOrphanedModels = keepOrphanedModels;
KeepPluralEnums = keepPluralEnums.AddToTransformerStore(TransformTypeName.KeepPluralEnums, fromConfig: true);
KeepPluralResourceData = keepPluralResourceData.AddToTransformerStore(TransformTypeName.KeepPluralResourceData, fromConfig: true);
NoResourceSuffix = noResourceSuffix.AddToTransformerStore(TransformTypeName.NoResourceSuffix, fromConfig: true);
PrependRPPrefix = schemasToPrependRPPrefix.AddToTransformerStore(TransformTypeName.PrependRpPrefix, fromConfig: true);
GenerateArmResourceExtensions = generateArmResourceExtensions;
RawParameterizedScopes = parameterizedScopes;
OperationsToSkipLroApiVersionOverride = operationsToSkipLroApiVersionOverride;
IsArmCore = Configuration.DeserializeBoolean(armCore, false);
DoesResourceModelRequireType = Configuration.DeserializeBoolean(resourceModelRequiresType, true);
DoesResourceModelRequireName = Configuration.DeserializeBoolean(resourceModelRequiresName, true);
DoesSingletonRequiresKeyword = Configuration.DeserializeBoolean(singletonRequiresKeyword, false);
OperationIdMappings = DeserializeDictionary<string, IReadOnlyDictionary<string, string>>(operationIdMappings);
UpdateRequiredCopy = DeserializeDictionary<string, string>(updateRequiredCopy);
PatchInitializerCustomization = DeserializeDictionary<string, IReadOnlyDictionary<string, string>>(patchInitializerCustomization);
PrivilegedOperations = DeserializeDictionary<string, string>(privilegedOperations).AddToTransformerStore(Mgmt.Report.TransformTypeName.PrivilegedOperations, fromConfig: true);
OperationsToLroApiVersionOverride = DeserializeDictionary<string, string>(operationsToLroApiVersionOverride);
}