in generator/generate.ts [140:219]
function getSchemaConfig(filePath: string, output: any, namespace: string, apiVersion: string, relativePath: string, autoGenConfig?: AutoGenConfig): SchemaConfiguration {
const knownReferences = [
...getSchemaRefs(output, ScopeType.Tenant, 'tenant_resourceDefinitions'),
...getSchemaRefs(output, ScopeType.ManagementGroup, 'managementGroup_resourceDefinitions'),
...getSchemaRefs(output, ScopeType.Subscription, 'subscription_resourceDefinitions'),
...getSchemaRefs(output, ScopeType.ResourceGroup, 'resourceDefinitions'),
...getSchemaRefs(output, ScopeType.Extension, 'extension_resourceDefinitions'),
];
const unknownReferences = getSchemaRefs(output, ScopeType.Unknown, 'unknown_resourceDefinitions');
assignScopesToUnknownReferences(knownReferences, unknownReferences, autoGenConfig);
const references = [
...knownReferences,
...unknownReferences,
];
const schemaPath = path.join(constants.schemasBasePath, relativePath);
console.log('================================================================================================================================');
console.log('Filename: ' + colors.green(schemaPath));
console.log('Provider Namespace: ' + colors.green(namespace));
console.log('API Version: ' + colors.green(apiVersion));
const tenantSchemaRefs = references.filter(x => x.scope & ScopeType.Tenant);
if (tenantSchemaRefs.length > 0) {
console.log('Resource Types (Tenant Scope):');
for (const schemaRef of tenantSchemaRefs) {
console.log('- ' + colors.green(schemaRef.type));
}
}
const managementGroupSchemaRefs = references.filter(x => x.scope & ScopeType.ManagementGroup);
if (managementGroupSchemaRefs.length > 0) {
console.log('Resource Types (Management Group Scope):');
for (const schemaRef of managementGroupSchemaRefs) {
console.log('- ' + colors.green(schemaRef.type));
}
}
const subscriptionSchemaRefs = references.filter(x => x.scope & ScopeType.Subscription);
if (subscriptionSchemaRefs.length > 0) {
console.log('Resource Types (Subscription Scope):');
for (const schemaRef of subscriptionSchemaRefs) {
console.log('- ' + colors.green(schemaRef.type));
}
}
const resourceGroupSchemaRefs = references.filter(x => x.scope & ScopeType.ResourceGroup);
if (resourceGroupSchemaRefs.length > 0) {
console.log('Resource Types (Resource Group Scope):');
for (const schemaRef of resourceGroupSchemaRefs) {
console.log('- ' + colors.green(schemaRef.type));
}
}
const extensionSchemaRefs = references.filter(x => x.scope & ScopeType.Extension);
if (extensionSchemaRefs.length > 0) {
console.log('Resource Types (Extension Scope):');
for (const schemaRef of extensionSchemaRefs) {
console.log('- ' + colors.green(schemaRef.type));
}
}
const unknownSchemaRefs = references.filter(x => x.scope & ScopeType.Unknown);
if (unknownSchemaRefs.length > 0) {
console.log('Resource Types (Unknown Scope):');
for (const schemaRef of unknownSchemaRefs) {
console.log('- ' + colors.red(schemaRef.type));
}
}
console.log('================================================================================================================================');
return {
references,
temporaryPath: filePath,
relativePath,
};
}