generator/processors/Microsoft.Authorization.ts (33 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. import { SchemaPostProcessor } from '../models'; export const postProcessor: SchemaPostProcessor = async (namespace, apiVersion, schema) => { const allowedValues = schema.definitions?.ParameterDefinitionsValue?.properties?.allowedValues; if (allowedValues && allowedValues.oneOf) { const allowedValuesItems = allowedValues.oneOf[0]?.items removeObjectType(allowedValuesItems); } const defaultValue = schema.definitions?.ParameterDefinitionsValue?.properties?.defaultValue; removeObjectType(defaultValue); const assignmentParameter = schema.definitions?.PolicyAssignmentProperties?.properties?.parameters; removeObjectType(assignmentParameter); removeDataplaneParameterRestriction(assignmentParameter); const definitionParameter = schema.definitions?.PolicyDefinitionProperties?.properties?.parameters; removeObjectType(definitionParameter); removeDataplaneParameterRestriction(definitionParameter); const definitionReferenceParameter = schema.definitions?.PolicyDefinitionReference?.properties?.parameters; removeObjectType(definitionReferenceParameter); removeDataplaneParameterRestriction(definitionReferenceParameter); const setDefinitionParameter = schema.definitions?.PolicySetDefinitionProperties?.properties?.parameters; removeObjectType(setDefinitionParameter); removeDataplaneParameterRestriction(setDefinitionParameter); } // eslint-disable-next-line @typescript-eslint/no-explicit-any function removeObjectType(property: any) { if (property && property['type'] && property['type'] === 'object') { delete property['type']; delete property['properties']; } } // eslint-disable-next-line @typescript-eslint/no-explicit-any function removeDataplaneParameterRestriction(property: any) { if (property?.oneOf && property.oneOf[0]?.additionalProperties && property.oneOf[0]['type'] === 'object') { delete property['oneOf']; } }