generator/autogenlist.ts (1,185 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. import { ScopeType, AutoGenConfig } from './models'; import { postProcessor as insightsApplicationPostProcessor } from './processors/Microsoft.Insights.Application'; import { postProcessor as machineLearningPostProcessor } from './processors/Microsoft.MachineLearning'; import { postProcessor as kustoPostProcessor } from './processors/Microsoft.Kusto'; import { postProcessor as machineLearningServicesPostProcessor } from './processors/Microsoft.MachineLearningServices'; import { postProcessor as storageProcessor } from './processors/Microsoft.Storage'; import { postProcessor as computeProcessor } from './processors/Microsoft.Compute'; import { postProcessor as policyProcessor } from './processors/Microsoft.Authorization'; import { postProcessor as securityInsightsPostProcessor } from './processors/Microsoft.SecurityInsights'; import { postProcessor as costManagementPostProcessor } from './processors/Microsoft.CostManagement'; import { postProcessor as providerHubPostProcessor } from './processors/Microsoft.ProviderHub'; import { postProcessor as mediaPostProcessor } from './processors/Microsoft.Media'; import { postProcessor as networkPostProcessor } from './processors/Microsoft.Network'; import { postProcessor as azureStackHciPostProcessor } from './processors/Microsoft.AzureStackHCI'; import { postProcessor as resourcesPostProcessor } from './processors/Microsoft.Resources'; import { postProcessor as serviceFabricPostProcessor } from './processors/Microsoft.ServiceFabric'; import { postProcessor as awsConnectorPostProcessor } from './processors/Microsoft.AwsConnector'; import { lowerCaseEquals } from './utils'; import { detectProviderNamespaces } from './generate'; // New providers are onboarded by default. The providers listed here are the only ones **not** onboarded. const disabledProviders: AutoGenConfig[] = [ { // Need to be very careful - Microsoft.Logic are heavily dependent on Export Template, and are sensitive to properties being removed unintentionally basePath: 'logic/resource-manager', namespace: 'Microsoft.Logic', disabledForAutogen: true, }, { // Duplicated under 'containerservice/resource-manager/Microsoft.ContainerService/aks' basePath: 'compute/resource-manager', namespace: 'Microsoft.ContainerService', disabledForAutogen: true, }, { //Disabled until errors are fixed //'datamanagerforagriculturesolutionproperties.properties.openapispecsdictionary.additionalproperties' - TypeError: Cannot convert undefined or null to object basePath: 'agrifood/resource-manager', namespace: 'Microsoft.AgFoodPlatform', disabledForAutogen: true, }, { //Disabled until errors are fixed //Enum 'nextPartitionKey' cannot have a value ' ' that result in an empty name. Use x-ms-enum.values to specify the name of the values. //Enum 'nextRowKey' cannot have a value ' ' that result in an empty name. Use x-ms-enum.values to specify the name of the values. basePath: 'adhybridhealthservice/resource-manager', namespace: 'Microsoft.ADHybridHealthService', disabledForAutogen: true, }, { //Disabled until errors are fixed //'specification/common-types/resource-management/v5/types.json' doesn't exists in workspace basePath: 'azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI', namespace: 'preview', disabledForAutogen: true, }, { //Disabled until errors are fixed //'specification/common-types/resource-management/v5/types.json' doesn't exists in workspace basePath: 'azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI', namespace: 'stable', disabledForAutogen: true, }, { //Disabled until errors are fixed //'Microsoft.BotService/preview/2023-09-15-preview/botservice.json:3492:5' - TypeError: Cannot convert undefined or null to object basePath: 'botservice/resource-manager', namespace: 'Microsoft.BotService', disabledForAutogen: true, }, { //Disabled until errors are fixed //Enum types of 'undefined' and format 'undefined' are not supported. Correct your input basePath: 'marketplacecatalog/resource-manager/Microsoft.Marketplace', namespace: 'stable', disabledForAutogen: true, }, { //Disabled until errors are fixed basePath: 'servicefabricmanagedclusters/resource-manager', namespace: 'Microsoft.ServiceFabric', postProcessor: serviceFabricPostProcessor, suffix: 'ManagedClusters', disabledForAutogen: true, }, ]; // Run "npm run list-basepaths" to discover all the valid readme files to add to this list const autoGenList: AutoGenConfig[] = [ ...disabledProviders, { basePath: 'addons/resource-manager', namespace: 'Microsoft.Addons', }, { basePath: 'authorization/resource-manager', namespace: 'Microsoft.Authorization', resourceConfig: [ { type: 'roleAssignments', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, { type: 'roleDefinitions', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, { type: 'roleAssignmentScheduleRequests', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, { type: 'roleEligibilityScheduleRequests', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, { type: 'roleManagementPolicyAssignments', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, { type: 'roleAssignmentApprovals/stages', scopes: ScopeType.Tenant }, { type: 'accessReviewHistoryDefinitions', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, { type: 'accessReviewScheduleDefinitions', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, { type: 'accessReviewScheduleDefinitions/instances', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, { type: 'accessReviewScheduleSettings', scopes: ScopeType.Extension | ScopeType.ManagementGroup | ScopeType.ResourceGroup | ScopeType.Subscription | ScopeType.Tenant }, ], suffix: 'Authz' }, { basePath: 'analysisservices/resource-manager', namespace: 'Microsoft.AnalysisServices', }, { basePath: 'azureactivedirectory/resource-manager', namespace: 'Microsoft.Aadiam', }, { basePath: 'alertsmanagement/resource-manager', namespace: 'Microsoft.AlertsManagement', }, { basePath: 'workloadmonitor/resource-manager', namespace: 'Microsoft.WorkloadMonitor', }, { basePath: 'appconfiguration/resource-manager', namespace: 'Microsoft.AppConfiguration', }, { basePath: 'apimanagement/resource-manager', namespace: 'Microsoft.ApiManagement', }, { basePath: 'appplatform/resource-manager', namespace: 'Microsoft.AppPlatform', }, { basePath: 'attestation/resource-manager', namespace: 'Microsoft.Attestation', }, { basePath: 'automation/resource-manager', namespace: 'Microsoft.Automation', }, { basePath: 'awsconnector/resource-manager', namespace: 'Microsoft.AwsConnector', postProcessor: awsConnectorPostProcessor }, { basePath: 'azurearcdata/resource-manager', namespace: 'Microsoft.AzureArcData', }, { basePath: 'azuredata/resource-manager', namespace: 'Microsoft.AzureData', }, { basePath: 'azurestack/resource-manager', namespace: 'Microsoft.AzureStack', }, { basePath: 'batch/resource-manager', namespace: 'Microsoft.Batch', }, { basePath: 'blockchain/resource-manager', namespace: 'Microsoft.Blockchain', }, { basePath: 'blueprint/resource-manager', namespace: 'Microsoft.Blueprint', resourceConfig: [ { type: 'blueprintAssignments', scopes: ScopeType.Subscription | ScopeType.ManagementGroup, }, { type: 'blueprints', scopes: ScopeType.Subscription | ScopeType.ManagementGroup, }, { type: 'blueprints/artifacts', scopes: ScopeType.Subscription | ScopeType.ManagementGroup, }, { type: 'blueprints/versions', scopes: ScopeType.Subscription | ScopeType.ManagementGroup, }, ] }, { basePath: 'billing/resource-manager', namespace: 'Microsoft.Billing', }, { basePath: 'changeanalysis/resource-manager', namespace: 'Microsoft.ChangeAnalysis', }, { basePath: 'cognitiveservices/resource-manager', namespace: 'Microsoft.CognitiveServices', }, { basePath: 'communication/resource-manager', namespace: 'Microsoft.Communication', }, { basePath: 'containerinstance/resource-manager', namespace: 'Microsoft.ContainerInstance', }, { basePath: 'cosmos-db/resource-manager', namespace: 'Microsoft.DocumentDB', }, { basePath: 'containerregistry/resource-manager', namespace: 'Microsoft.ContainerRegistry', }, { basePath: 'customproviders/resource-manager', namespace: 'Microsoft.CustomProviders', resourceConfig: [ { type: 'associations', scopes: ScopeType.Extension, }, ], }, { basePath: 'databox/resource-manager', namespace: 'Microsoft.DataBox', }, { basePath: 'consumption/resource-manager', namespace: 'Microsoft.Consumption', resourceConfig: [ { type: 'budgets', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, ], }, { basePath: 'cost-management/resource-manager', namespace: 'Microsoft.CostManagement', resourceConfig: [ { type: 'exports', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup, }, { type: 'budgets', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'views', scopes: ScopeType.Tenant | ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'scheduledActions', scopes: ScopeType.Tenant | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'benefitRecommendations', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'benefitUtilizationSummaries', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'generateCostDetailsReport', scopes: ScopeType.Subscription | ScopeType.Extension, }, { type: 'alerts', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'forecast', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'dimensions', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'query', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'settings', scopes: ScopeType.Subscription | ScopeType.Extension, }, { type: 'pricesheets', scopes: ScopeType.Extension } ], postProcessor: costManagementPostProcessor, }, { basePath: 'customerlockbox/resource-manager', namespace: 'Microsoft.CustomerLockbox', }, { basePath: 'commerce/resource-manager', namespace: 'Microsoft.Commerce', }, { basePath: 'databoxedge/resource-manager', namespace: 'Microsoft.DataBoxEdge', }, { basePath: 'databricks/resource-manager', namespace: 'Microsoft.Databricks', }, { basePath: 'datafactory/resource-manager', namespace: 'Microsoft.DataFactory', }, { basePath: 'datacatalog/resource-manager', namespace: 'Microsoft.DataCatalog', }, { basePath: 'datalake-analytics/resource-manager', namespace: 'Microsoft.DataLakeAnalytics', }, { basePath: 'datalake-store/resource-manager', namespace: 'Microsoft.DataLakeStore', }, { basePath: 'datashare/resource-manager', namespace: 'Microsoft.DataShare', }, { basePath: 'deploymentmanager/resource-manager', namespace: 'Microsoft.DeploymentManager', }, { basePath: 'desktopvirtualization/resource-manager', namespace: 'Microsoft.DesktopVirtualization', }, { basePath: 'digitaltwins/resource-manager', namespace: 'Microsoft.DigitalTwins', resourceConfig: [ { type: 'integrationResources', scopes: ScopeType.Extension, } ] }, { basePath: 'deviceprovisioningservices/resource-manager', namespace: 'Microsoft.Devices', suffix: 'Provisioning', }, { basePath: 'devops/resource-manager', namespace: 'Microsoft.DevOps', }, { basePath: 'devspaces/resource-manager', namespace: 'Microsoft.DevSpaces', }, { basePath: 'devtestlabs/resource-manager', namespace: 'Microsoft.DevTestLab', }, { basePath: 'guestconfiguration/resource-manager', namespace: 'Microsoft.GuestConfiguration', }, { basePath: 'resourcegraph/resource-manager', namespace: 'Microsoft.ResourceGraph', }, { basePath: 'redis/resource-manager', namespace: 'Microsoft.Cache', }, { basePath: 'redisenterprise/resource-manager', namespace: 'Microsoft.Cache', suffix: 'Enterprise' }, { basePath: 'hardwaresecuritymodules/resource-manager', namespace: 'Microsoft.HardwareSecurityModules', }, { basePath: 'hdinsight/resource-manager', namespace: 'Microsoft.HDInsight', }, { basePath: 'resourcehealth/resource-manager', namespace: 'Microsoft.ResourceHealth', }, { basePath: 'EnterpriseKnowledgeGraph/resource-manager', namespace: 'Microsoft.EnterpriseKnowledgeGraph', }, { basePath: 'eventhub/resource-manager', namespace: 'Microsoft.EventHub', }, { basePath: 'engagementfabric/resource-manager', namespace: 'Microsoft.EngagementFabric', }, { basePath: 'hanaonazure/resource-manager', namespace: 'Microsoft.HanaOnAzure', }, { basePath: 'healthcareapis/resource-manager', namespace: 'Microsoft.HealthcareApis', }, { basePath: 'hybridcompute/resource-manager', namespace: 'Microsoft.HybridCompute', }, { basePath: 'hybridconnectivity/resource-manager', namespace: 'Microsoft.HybridConnectivity', resourceConfig: [ { type: 'endpoints', scopes: ScopeType.Extension, } ] }, { basePath: 'hybriddatamanager/resource-manager', namespace: 'Microsoft.HybridData', }, { basePath: 'iotcentral/resource-manager', namespace: 'Microsoft.IotCentral', }, { basePath: 'iothub/resource-manager', namespace: 'Microsoft.Devices', }, { basePath: 'iotspaces/resource-manager', namespace: 'Microsoft.IoTSpaces', }, { basePath: 'iotsecurity/resource-manager', namespace: 'Microsoft.IoTSecurity', resourceConfig: [ { type: 'sensors', scopes: ScopeType.Extension, }, { type: 'sites', scopes: ScopeType.Extension, } ] }, { basePath: 'intune/resource-manager', namespace: 'Microsoft.Intune', }, { basePath: 'labservices/resource-manager', namespace: 'Microsoft.LabServices', }, { basePath: 'eventgrid/resource-manager', namespace: 'Microsoft.EventGrid', resourceConfig: [ { type: 'eventSubscriptions', scopes: ScopeType.Extension | ScopeType.Subscription | ScopeType.ResourceGroup, }, ], }, { basePath: 'machinelearning/resource-manager', namespace: 'Microsoft.MachineLearning', postProcessor: machineLearningPostProcessor, }, { basePath: 'azure-kusto/resource-manager', namespace: 'Microsoft.Kusto', postProcessor: kustoPostProcessor, }, { basePath: 'machinelearningservices/resource-manager', namespace: 'Microsoft.MachineLearningServices', postProcessor: machineLearningServicesPostProcessor, }, { basePath: 'machinelearningcompute/resource-manager', namespace: 'Microsoft.MachineLearningCompute', }, { basePath: 'machinelearningexperimentation/resource-manager', namespace: 'Microsoft.MachineLearningExperimentation', }, { basePath: 'maintenance/resource-manager', namespace: 'Microsoft.Maintenance', }, { basePath: 'migrate/resource-manager', namespace: 'Microsoft.Migrate', suffix: 'Migrate' }, { basePath: 'migrate/resource-manager', namespace: 'Microsoft.OffAzure', }, { basePath: 'managednetwork/resource-manager', namespace: 'Microsoft.ManagedNetwork', resourceConfig: [ { type: 'scopeAssignments', scopes: ScopeType.Subscription, }, ], }, { basePath: 'migrateprojects/resource-manager', namespace: 'Microsoft.Migrate', suffix: 'MigrateProjects', }, { basePath: 'resourcemover/resource-manager', namespace: 'Microsoft.Migrate', suffix: 'ResourceMover', }, { basePath: 'mariadb/resource-manager', namespace: 'Microsoft.DBforMariaDB', }, { basePath: 'marketplace/resource-manager', namespace: 'Microsoft.Marketplace', }, { basePath: 'mysql/resource-manager', namespace: 'Microsoft.DBforMySQL', }, { basePath: 'managementgroups/resource-manager', namespace: 'Microsoft.Management', }, { basePath: 'managementpartner/resource-manager', namespace: 'Microsoft.ManagementPartner', }, { basePath: 'maps/resource-manager', namespace: 'Microsoft.Maps', }, { basePath: 'mixedreality/resource-manager', namespace: 'Microsoft.MixedReality', }, { basePath: 'netapp/resource-manager', namespace: 'Microsoft.NetApp', }, { basePath: 'notificationhubs/resource-manager', namespace: 'Microsoft.NotificationHubs' }, { basePath: 'policyinsights/resource-manager', namespace: 'Microsoft.PolicyInsights', resourceConfig: [ { type: 'remediations', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.ManagementGroup, }, { type: 'attestations', scopes: ScopeType.Subscription | ScopeType.ResourceGroup, } ] }, { basePath: 'peering/resource-manager', namespace: 'Microsoft.Peering', }, { basePath: 'powerbidedicated/resource-manager', namespace: 'Microsoft.PowerBIDedicated', }, { basePath: 'portal/resource-manager', namespace: 'Microsoft.Portal', }, { basePath: 'postgresql/resource-manager', namespace: 'Microsoft.DBforPostgreSQL', }, { basePath: 'postgresqlhsc/resource-manager', namespace: 'Microsoft.DBforPostgreSQL', suffix: 'Hsc', }, { basePath: 'powerbiembedded/resource-manager', namespace: 'Microsoft.PowerBI', }, { basePath: 'providerhub/resource-manager', namespace: 'Microsoft.ProviderHub', postProcessor: providerHubPostProcessor }, { basePath: 'quota/resource-manager', namespace: 'Microsoft.Quota', resourceConfig: [ { type: 'quotaLimits', scopes: ScopeType.Extension, }, { type: 'quotas', scopes: ScopeType.Extension, }, ], }, { basePath: 'redhatopenshift/resource-manager', namespace: 'Microsoft.RedHatOpenShift', }, { basePath: 'resources/resource-manager', namespace: 'Microsoft.Resources', resourceConfig: [ { type: 'deployments', scopes: ScopeType.Tenant | ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup, }, { type: 'tags', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'dataBoundaries', scopes: ScopeType.Tenant | ScopeType.Subscription | ScopeType.ResourceGroup, }, ], postProcessor: resourcesPostProcessor, }, { basePath: 'resources/resource-manager', namespace: 'Microsoft.Authorization', resourceConfig: [ { type: 'policyDefinitions', scopes: ScopeType.Tenant | ScopeType.ManagementGroup | ScopeType.Subscription, }, { type: 'policySetDefinitions', scopes: ScopeType.Tenant | ScopeType.ManagementGroup | ScopeType.Subscription, }, { type: 'policyAssignments', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'policyExemptions', scopes: ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'policyPricings', scopes: ScopeType.ManagementGroup | ScopeType.Subscription, }, { type: 'locks', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, ], suffix: 'Resources', postProcessor: policyProcessor }, { basePath: 'relay/resource-manager', namespace: 'Microsoft.Relay', }, { basePath: 'recoveryservicessiterecovery/resource-manager', namespace: 'Microsoft.RecoveryServices', suffix: 'SiteRecovery', }, { basePath: 'recoveryservicesbackup/resource-manager', namespace: 'Microsoft.RecoveryServices', suffix: "Backup", }, { basePath: "recoveryservices/resource-manager", namespace: "Microsoft.RecoveryServices", }, { basePath: 'reservations/resource-manager', namespace: 'Microsoft.Capacity', }, { basePath: 'servicebus/resource-manager', namespace: 'Microsoft.ServiceBus', }, { basePath: 'servicefabric/resource-manager', namespace: 'Microsoft.ServiceFabric', postProcessor: serviceFabricPostProcessor, }, { basePath: 'servicelinker/resource-manager', namespace: 'Microsoft.ServiceLinker', resourceConfig: [ { type: 'linkers', scopes: ScopeType.Extension, }, { type: 'dryruns', scopes: ScopeType.Extension, }, ], }, { basePath: 'signalr/resource-manager', namespace: 'Microsoft.SignalRService', }, { basePath: 'webpubsub/resource-manager', namespace: 'Microsoft.SignalRService', suffix: 'WebPubSub', }, { basePath: 'sqlvirtualmachine/resource-manager', namespace: 'Microsoft.SqlVirtualMachine', }, { basePath: 'storagecache/resource-manager', namespace: 'Microsoft.StorageCache', }, { basePath: 'storagepool/resource-manager', namespace: 'Microsoft.StoragePool', }, { basePath: 'streamanalytics/resource-manager', namespace: 'Microsoft.StreamAnalytics', }, { basePath: 'storagesync/resource-manager', namespace: 'Microsoft.StorageSync', }, { basePath: 'serialconsole/resource-manager', namespace: 'Microsoft.SerialConsole', }, { basePath: 'synapse/resource-manager', namespace: 'Microsoft.Synapse', }, { basePath: 'security/resource-manager', namespace: 'Microsoft.Security', resourceConfig: [ { type: 'advancedThreatProtectionSettings', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'assessments', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'deviceSecurityGroups', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'iotSensors', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'informationProtectionPolicies', scopes: ScopeType.ManagementGroup | ScopeType.Extension, }, { type: 'sqlVulnerabilityAssessments/baselineRules', scopes: ScopeType.Extension, }, { type: 'iotSites', scopes: ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, { type: 'assessments/governanceAssignments', scopes: ScopeType.Subscription, }, { type: 'governanceRules', scopes: ScopeType.Subscription, }, { type: 'defenderForStorageSettings', scopes: ScopeType.Subscription, }, ] }, { basePath: 'securityinsights/resource-manager', namespace: 'Microsoft.SecurityInsights', postProcessor: securityInsightsPostProcessor, }, { basePath: 'storageimportexport/resource-manager', namespace: 'Microsoft.ImportExport' }, { basePath: 'storSimple1200Series/resource-manager', namespace: 'Microsoft.StorSimple', suffix: '1200' }, { basePath: 'resources/resource-manager', namespace: 'Microsoft.Solutions', suffix: 'resourcesolutions' }, { basePath: 'solutions/resource-manager', namespace: 'Microsoft.Solutions', suffix: 'solutions' }, { basePath: 'storage/resource-manager', namespace: 'Microsoft.Storage', postProcessor: storageProcessor, }, { basePath: 'compute/resource-manager', namespace: 'Microsoft.Compute', postProcessor: computeProcessor }, { basePath: 'vmwarecloudsimple/resource-manager', namespace: 'Microsoft.VMwareCloudSimple', }, { basePath: 'visualstudio/resource-manager', namespace: 'Microsoft.VisualStudio', }, { basePath: 'sql/resource-manager', namespace: 'Microsoft.Sql', }, { basePath: 'scheduler/resource-manager', namespace: 'Microsoft.Scheduler', }, { basePath: 'search/resource-manager', namespace: 'Microsoft.Search', }, { basePath: 'subscription/resource-manager', namespace: 'Microsoft.Subscription', }, { basePath: 'storsimple8000series/resource-manager', namespace: 'Microsoft.StorSimple', suffix: '8000', }, { basePath: 'support/resource-manager', namespace: 'Microsoft.Support', }, { basePath: 'softwareplan/resource-manager', namespace: 'Microsoft.SoftwarePlan', resourceConfig: [ { type: 'hybridUseBenefits', scopes: ScopeType.Extension, }, ] }, { basePath: 'timeseriesinsights/resource-manager', namespace: 'Microsoft.TimeSeriesInsights', }, { basePath: 'imagebuilder/resource-manager', namespace: 'Microsoft.VirtualMachineImages', }, { basePath: 'vmware/resource-manager', namespace: 'Microsoft.AVS', }, { basePath: 'windowsesu/resource-manager', namespace: 'Microsoft.WindowsESU', }, { basePath: 'windowsiot/resource-manager', namespace: 'Microsoft.WindowsIoT', }, { basePath: 'adp/resource-manager', namespace: 'Microsoft.AutonomousDevelopmentPlatform', }, { basePath: 'automanage/resource-manager', namespace: 'Microsoft.Automanage', }, { basePath: 'confluent/resource-manager', namespace: 'Microsoft.Confluent', }, { basePath: 'datamigration/resource-manager', namespace: 'Microsoft.DataMigration', resourceConfig: [ { type: 'databaseMigrations', scopes: ScopeType.Extension } ] }, { basePath: 'datadog/resource-manager', namespace: 'Microsoft.Datadog', }, { basePath: 'elastic/resource-manager', namespace: 'Microsoft.Elastic', }, { basePath: 'logz/resource-manager', namespace: 'Microsoft.Logz', }, { basePath: 'dynatrace/resource-manager', namespace: 'Dynatrace.Observability', }, { basePath: 'healthbot/resource-manager', namespace: 'Microsoft.HealthBot', }, { basePath: 'keyvault/resource-manager', namespace: 'Microsoft.KeyVault', readmeTag: { '2016-10-01': [ 'Microsoft.KeyVault/stable/2016-10-01/keyvault.json', 'Microsoft.KeyVault/stable/2016-10-01/providers.json', 'Microsoft.KeyVault/stable/2016-10-01/secrets.json', ], '2018-02-14': [ 'Microsoft.KeyVault/stable/2018-02-14/keyvault.json', 'Microsoft.KeyVault/stable/2018-02-14/providers.json', 'Microsoft.KeyVault/stable/2018-02-14/secrets.json', ], '2018-02-14-preview': [ 'Microsoft.KeyVault/preview/2018-02-14-preview/keyvault.json', 'Microsoft.KeyVault/preview/2018-02-14-preview/providers.json', 'Microsoft.KeyVault/preview/2018-02-14-preview/secrets.json', ], } }, { basePath: 'hybridkubernetes/resource-manager', namespace: 'Microsoft.Kubernetes', }, { basePath: 'hybridnetwork/resource-manager', namespace: 'Microsoft.HybridNetwork', }, { basePath: 'powerplatform/resource-manager', namespace: 'Microsoft.PowerPlatform', }, { basePath: 'monitor/resource-manager', namespace: 'Microsoft.Insights', resourceConfig: [ { type: 'diagnosticSettings', scopes: ScopeType.Subscription | ScopeType.Extension, }, { type: 'guestDiagnosticSettingsAssociation', scopes: ScopeType.Extension, }, { type: 'dataCollectionRuleAssociations', scopes: ScopeType.Extension, }, ], }, { basePath: 'applicationinsights/resource-manager', namespace: 'Microsoft.Insights', suffix: 'Application', postProcessor: insightsApplicationPostProcessor, }, { basePath: 'quantum/resource-manager', namespace: 'Microsoft.Quantum', }, { basePath: 'kubernetesconfiguration/resource-manager', namespace: 'Microsoft.KubernetesConfiguration', resourceConfig: [ { type: 'sourceControlConfigurations', scopes: ScopeType.Extension } ] }, { basePath: 'web/resource-manager', namespace: 'Microsoft.CertificateRegistration', }, { basePath: 'web/resource-manager', namespace: 'Microsoft.DomainRegistration', }, { basePath: 'web/resource-manager', namespace: 'Microsoft.Web', }, { basePath: 'deviceupdate/resource-manager', namespace: 'Microsoft.DeviceUpdate', }, { basePath: 'mediaservices/resource-manager', namespace: 'Microsoft.Media', postProcessor: mediaPostProcessor }, { basePath: 'trafficmanager/resource-manager', namespace: 'Microsoft.Network', suffix: 'TrafficManager', }, { basePath: 'network/resource-manager', namespace: 'Microsoft.Network', postProcessor: networkPostProcessor, suffix: 'NRP', }, { basePath: 'dnsresolver/resource-manager', namespace: 'Microsoft.Network', suffix: 'DnsResolver', }, { basePath: 'frontdoor/resource-manager', namespace: 'Microsoft.Network', suffix: 'FrontDoor', }, { basePath: 'dns/resource-manager', namespace: 'Microsoft.Network', suffix: 'DNS', }, { basePath: 'privatedns/resource-manager', namespace: 'Microsoft.Network', suffix: 'privateDns', }, { //Pause autogeneration until errors are fixed basePath: 'azurestackhci/resource-manager', namespace: 'Microsoft.AzureStackHCI', postProcessor: azureStackHciPostProcessor, }, { basePath: 'advisor/resource-manager', namespace: 'Microsoft.Advisor', resourceConfig: [ { type: 'recommendations/suppressions', scopes: ScopeType.Tenant | ScopeType.ManagementGroup | ScopeType.Subscription | ScopeType.ResourceGroup | ScopeType.Extension, }, ] }, { basePath: 'containerservice/resource-manager/Microsoft.ContainerService/aks', namespace: 'Microsoft.ContainerService', useNamespaceFromConfig: true, suffix: 'Aks' }, { basePath: 'containerservice/resource-manager/Microsoft.ContainerService/fleet', namespace: 'Microsoft.ContainerService', useNamespaceFromConfig: true, suffix: 'Fleet' }, { basePath: 'hdinsight/resource-manager/Microsoft.HDInsight/HDInsightOnAks', namespace: 'Microsoft.HDInsight', useNamespaceFromConfig: true, suffix: 'OnAks', }, { basePath: 'developerhub/resource-manager', namespace: 'Microsoft.DevHub', }, { basePath: 'domainservices/resource-manager', namespace: 'Microsoft.AAD', }, { basePath: 'edgeorderpartner/resource-manager', namespace: 'Microsoft.EdgeOrderPartner', }, { basePath: 'servicefabricmesh/resource-manager', namespace: 'Microsoft.ServiceFabricMesh', }, { basePath: 'operationalinsights/resource-manager', namespace: 'Microsoft.OperationalInsights', }, { basePath: 'service-map/resource-manager', namespace: 'Microsoft.OperationalInsights', suffix: 'ServiceMap', }, { basePath: 'managedservices/resource-manager', namespace: 'Microsoft.ManagedServices', resourceConfig: [ { type: 'registrationDefinitions', scopes: ScopeType.Subscription, }, { type: 'registrationAssignments', scopes: ScopeType.Subscription | ScopeType.ResourceGroup, }, ] }, ]; export function findAutogenEntries(basePath: string): AutoGenConfig[] { return autoGenList.filter(w => lowerCaseEquals(w.basePath, basePath)); } export async function findOrGenerateAutogenEntries(basePath: string, readme: string): Promise<AutoGenConfig[]> { let entries = findAutogenEntries(basePath); if (entries.some(e => e.useNamespaceFromConfig)) { return entries; } const detectedNamespaces = await detectProviderNamespaces(readme); entries = entries.filter(e => detectedNamespaces.some(ns => lowerCaseEquals(e.namespace, ns))); for (const namespace of detectedNamespaces) { if (!entries.some(e => lowerCaseEquals(e.namespace, namespace))) { // Generate configuration for any RPs not explicitly declared in the autogen list entries.push({ basePath, namespace, }); } } return entries; }