Azure / azure-powershell

Microsoft Azure PowerShell
Other
4.15k stars 3.77k forks source link

No documentation on what resources can be tagged with AzureRm / Az #8314

Closed o-l-a-v closed 4 years ago

o-l-a-v commented 5 years ago

I find no documentation on what resource types in Azure can be tagged with AzureRm / Az.

So far I've found out that these can not be tagged (under), but I'd very much like to not manually maintain a list based on when my runbook fails.

[string[]]@(         
            'Microsoft.AAD/domainServices',
            'Microsoft.Compute/virtualMachines/extensions',               
            'microsoft.insights/activityLogAlerts',
            'microsoft.insights/metricalerts'
            'microsoft.insights/scheduledqueryrules',
            'Microsoft.OperationsManagement/solutions',
            'Microsoft.StreamAnalytics/streamingjobs',
            'Microsoft.Web/certificates'
)
markcowl commented 5 years ago

@o-l-a-v In what way can these not be tagged - what occurs when you try to tage a resource of each type - is it the same, or different for each resource.

o-l-a-v commented 5 years ago

These simply return error that they can't be tagged 'Microsoft.Compute/virtualMachines/extensions',
'microsoft.insights/activityLogAlerts', 'microsoft.insights/metricalerts' 'microsoft.insights/scheduledqueryrules', 'Microsoft.OperationsManagement/solutions',

This can't be tagged while running 'Microsoft.StreamAnalytics/streamingjobs',

The rest I have not tried to tag personally, but found them as untaggable in some code I found while google'ing.

markcowl commented 5 years ago

@o-l-a-v This is supposed to be documented here: https://docs.microsoft.com/en-us/azure/azure-resource-manager/tag-support

Though it looks like many of the resources you mention above show up as taggable. Can you ask about these resource settings on this page?

o-l-a-v commented 5 years ago

Asked here: https://github.com/MicrosoftDocs/azure-docs/issues/21036#issuecomment-458652593

cormacpayne commented 5 years ago

@Tiano2017 Hey Tian, I sent you an email about if it's possible to query the taggable resources in ARM. Let me know if you have any update.

hamidtirmizi commented 4 years ago

Hi, try this API: https://docs.microsoft.com/en-us/rest/api/resources/providers/list (use the Try It button to see sample)

It will give you a list of resource types under all namespaces available to your subscription. In some of the resource types, you will see 'capabilities', such as:

"capabilities": "CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SupportsTags, SupportsLocation"

When it says SupportsTags, well, then it supports tags.

(There is a known issue with Resource Groups though, and the capability might not show correctly for it. Resource Groups do support tags.)

cordonsa commented 4 years ago

I found the following ones:

Hope this helps.

o-l-a-v commented 2 years ago

Hi, try this API: https://docs.microsoft.com/en-us/rest/api/resources/providers/list (use the Try It button to see sample)

It will give you a list of resource types under all namespaces available to your subscription. In some of the resource types, you will see 'capabilities', such as:

"capabilities": "CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SupportsTags, SupportsLocation"

When it says SupportsTags, well, then it supports tags.

(There is a known issue with Resource Groups though, and the capability might not show correctly for it. Resource Groups do support tags.)

I never got to test this before now.

Given following PowerShell

Click to expand ```powershell # PowerShell preferences [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 # Assets $Headers = [ordered]@{ 'Authorization' = [string] 'Bearer {0}' -f (Get-AzAccessToken -ResourceTypeName 'Arm').'Token' 'Content-Type' = [string] 'application/json' } $Uri = [string] 'https://management.azure.com/subscriptions/{0}/providers?api-version=2021-04-01' -f (Get-AzContext).'Subscription'.'Id' # Get $ResourceProviders = [PSCustomObject[]]((Invoke-RestMethod -Method 'Get' -Headers $Headers -Uri $Uri).'value') # Extract info $ResourcesTagSupport = [PSCustomObject[]]( $ResourceProviders.ForEach{ $Namespace = [string] $_.'namespace' $_.'resourceTypes'.ForEach{ [PSCustomObject]@{ 'Namespace' = [string] $Namespace 'ResourceType' = [string] $_.'ResourceType' 'ResourceNamespaceAndType' = [string] '{0}/{1}' -f $Namespace, $_.'ResourceType' 'SupportsTags' = [bool]($_.'capabilities'.Split(',').ForEach{$_.Trim()} -contains 'SupportsTags') } } } ) # Output ## Show all $ResourcesTagSupport | Sort-Object -Property 'ResourceNamespaceAndType' | Format-Table -Property 'ResourceNamespaceAndType','SupportsTags' ## Supports tags $ResourcesTagSupport.Where{$_.'SupportsTags'} | Select-Object -Property 'ResourceNamespaceAndType' | Sort-Object ## Does not support tags $ResourcesTagSupport.Where{-not $_.'SupportsTags'} | Select-Object -Property 'ResourceNamespaceAndType' | Sort-Object ```

I found that following resources supports tags:

Click to expand ``` ResourceNamespaceAndType ------------------------ Microsoft.Compute/availabilitySets Microsoft.HybridCompute/privateLinkScopes Microsoft.HybridCompute/machines/extensions Microsoft.HybridCompute/machines Microsoft.HealthcareApis/workspaces/fhirservices Microsoft.HealthcareApis/workspaces/iotconnectors Microsoft.HealthcareApis/workspaces/dicomservices Microsoft.HealthcareApis/workspaces Microsoft.HealthcareApis/services Microsoft.HealthBot/healthBots Microsoft.HDInsight/clusters Microsoft.HanaOnAzure/sapMonitors Microsoft.HanaOnAzure/hanaInstances Microsoft.FluidRelay/fluidRelayServers Microsoft.Falcon/namespaces Microsoft.ExtendedLocation/customLocations Microsoft.EventHub/clusters Microsoft.EventHub/namespaces Microsoft.EventGrid/partnerDestinations Microsoft.EventGrid/partnerTopics Microsoft.EventGrid/partnerNamespaces Microsoft.EventGrid/partnerConfigurations Microsoft.EventGrid/partnerRegistrations Microsoft.EventGrid/systemTopics Microsoft.HybridData/dataManagers Microsoft.HybridNetwork/devices Microsoft.HybridNetwork/networkFunctions Microsoft.ImportExport/jobs Microsoft.MachineLearningServices/workspaces/batchEndpoints Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments Microsoft.MachineLearningServices/workspaces/onlineEndpoints Microsoft.MachineLearningServices/workspaces Microsoft.MachineLearning/commitmentPlans Microsoft.MachineLearning/webServices Microsoft.MachineLearning/Workspaces Microsoft.Logz/monitors/accounts Microsoft.Logz/monitors Microsoft.Logic/integrationServiceEnvironments/managedApis Microsoft.Logic/integrationServiceEnvironments Microsoft.EventGrid/domains Microsoft.Logic/integrationAccounts Microsoft.LoadTestService/loadtests Microsoft.LabServices/labaccounts Microsoft.LabServices/labs Microsoft.LabServices/labplans Microsoft.Kusto/clusters Microsoft.Kubernetes/connectedClusters Microsoft.KeyVault/managedHSMs Microsoft.KeyVault/vaults Microsoft.IoTCentral/IoTApps Microsoft.IndustryDataLifecycle/dataConsumerCollaboratives Microsoft.IndustryDataLifecycle/memberCollaboratives Microsoft.Logic/workflows Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments Microsoft.EventGrid/topics Microsoft.EdgeOrder/orderItems Microsoft.DeploymentManager/artifactSources Microsoft.DBforPostgreSQL/flexibleServers Microsoft.DBforPostgreSQL/serverGroups Microsoft.DBforPostgreSQL/serverGroupsv2 Microsoft.DBforPostgreSQL/serversv2 Microsoft.DBforPostgreSQL/servers Microsoft.DBforMySQL/flexibleServers Microsoft.DBforMySQL/servers Microsoft.DBforMariaDB/servers Microsoft.DataShare/accounts Microsoft.DataReplication/replicationFabrics Microsoft.DataReplication/replicationVaults Microsoft.DataProtection/ResourceGuards Microsoft.DataProtection/BackupVaults Microsoft.DataMigration/SqlMigrationServices Microsoft.DataMigration/services/projects Microsoft.DataMigration/services Microsoft.DataLakeStore/accounts Microsoft.DataLakeAnalytics/accounts Microsoft.DataFactory/factories Microsoft.DataFactory/dataFactories Microsoft.Datadog/monitors Microsoft.DataCatalog/catalogs Microsoft.DeploymentManager/serviceTopologies Microsoft.DeploymentManager/serviceTopologies/services Microsoft.DeploymentManager/serviceTopologies/services/serviceUnits Microsoft.DeploymentManager/steps Microsoft.EdgeOrder/addresses Microsoft.DomainRegistration/domains Microsoft.DocumentDB/cassandraClusters Microsoft.DocumentDB/databaseAccounts Microsoft.DigitalTwins/digitalTwinsInstances Microsoft.DevTestLab/labs/serviceRunners Microsoft.DevTestLab/labs/virtualMachines Microsoft.DevTestLab/schedules Microsoft.DevTestLab/labs Microsoft.DevTestLab/labs/environments Microsoft.DevOps/pipelines Microsoft.Elastic/monitors Microsoft.DeviceUpdate/accounts/instances Microsoft.Devices/ProvisioningServices Microsoft.Devices/IotHubs Microsoft.DevAI/instances/sandboxes/experiments Microsoft.DevAI/instances/sandboxes Microsoft.DevAI/instances/experiments Microsoft.DevAI/instances Microsoft.DesktopVirtualization/scalingplans Microsoft.DesktopVirtualization/hostpools Microsoft.DesktopVirtualization/applicationgroups Microsoft.DesktopVirtualization/workspaces Microsoft.DeploymentManager/rollouts Microsoft.DeviceUpdate/accounts Microsoft.Maintenance/maintenanceConfigurations Microsoft.ManagedIdentity/userAssignedIdentities Microsoft.Maps/accounts Microsoft.Synapse/workspaces/kustoPools Microsoft.Synapse/workspaces/sqlDatabases Microsoft.Synapse/workspaces/sqlPools Microsoft.Synapse/workspaces/bigDataPools Microsoft.Synapse/workspaces Microsoft.StreamAnalytics/clusters Microsoft.StreamAnalytics/streamingjobs Microsoft.StorSimple/managers Microsoft.StorageSync/storageSyncServices Microsoft.StoragePool/diskPools Microsoft.StorageCache/caches Microsoft.SqlVirtualMachine/SqlVirtualMachines Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups Microsoft.Solutions/jitRequests Microsoft.Solutions/applicationDefinitions Microsoft.Solutions/applications Microsoft.Singularity/accounts Microsoft.SignalRService/WebPubSub Microsoft.SignalRService/SignalR Microsoft.ServicesHub/connectors Microsoft.ServiceFabricMesh/gateways Microsoft.ServiceFabricMesh/secrets Microsoft.ServiceFabricMesh/volumes Microsoft.Synapse/privateLinkHubs Microsoft.TestBase/testBaseAccounts Microsoft.TestBase/testBaseAccounts/packages Microsoft.TimeSeriesInsights/environments Wandisco.Fusion/migrators/metadataMigrations Wandisco.Fusion/migrators/exclusionTemplates Wandisco.Fusion/migrators/liveDataMigrations Wandisco.Fusion/migrators/targets Wandisco.Fusion/migrators Wandisco.Fusion/fusionGroups/managedOnPremZones Wandisco.Fusion/fusionGroups/hiveReplicationRules Wandisco.Fusion/fusionGroups/replicationRules Wandisco.Fusion/fusionGroups/azureZones/plugins Wandisco.Fusion/fusionGroups/azureZones Wandisco.Fusion/fusionGroups Microsoft.ServiceFabricMesh/networks Microsoft.WindowsIoT/DeviceServices Microsoft.VSOnline/accounts Microsoft.VMwareCloudSimple/dedicatedCloudServices Microsoft.VMwareCloudSimple/dedicatedCloudNodes Microsoft.VMwareCloudSimple/virtualMachines microsoft.visualstudio/account/extension microsoft.visualstudio/account/project microsoft.visualstudio/account Microsoft.VirtualMachineImages/imageTemplates Microsoft.VideoIndexer/accounts Microsoft.TimeSeriesInsights/environments/referenceDataSets Microsoft.TimeSeriesInsights/environments/eventsources Microsoft.VSOnline/plans Microsoft.ServiceFabricMesh/applications Microsoft.ServiceBus/namespaces Microsoft.SecurityDetonation/chambers Microsoft.OffAzure/HyperVSites Microsoft.OffAzure/VMwareSites Microsoft.ObjectStore/osNamespaces Microsoft.NotificationHubs/namespaces/notificationHubs Microsoft.NotificationHubs/namespaces Microsoft.NetworkFunction/meshVpns/connectionPolicies Microsoft.NetworkFunction/meshVpns Microsoft.NetworkFunction/azureTrafficCollectors Microsoft.NetApp/netAppAccounts/capacityPools/volumes Microsoft.NetApp/netAppAccounts/capacityPools Microsoft.NetApp/netAppAccounts/snapshotPolicies Microsoft.OffAzure/ServerSites Microsoft.NetApp/netAppAccounts Microsoft.MixedReality/remoteRenderingAccounts Microsoft.MixedReality/spatialAnchorsAccounts Microsoft.Migrate/moveCollections Microsoft.Migrate/assessmentProjects Microsoft.Migrate/migrateprojects Microsoft.Migrate/projects Microsoft.Media/mediaservices/liveEvents Microsoft.Media/mediaservices/streamingEndpoints Microsoft.Media/videoAnalyzers Microsoft.Media/mediaservices Microsoft.Maps/accounts/creators Microsoft.MixedReality/objectAnchorsAccounts Microsoft.Databricks/workspaces Microsoft.OffAzure/ImportSites Microsoft.Peering/peerings Microsoft.Search/searchServices Microsoft.SaaS/resources Microsoft.SaaS/applications Microsoft.Resources/templateSpecs/versions Microsoft.Resources/templateSpecs Microsoft.Resources/deploymentScripts Microsoft.Resources/subscriptions/resourceGroups Microsoft.ResourceGraph/queries Microsoft.ResourceConnector/appliances Microsoft.Relay/namespaces Microsoft.RedHatOpenShift/OpenShiftClusters Microsoft.OffAzure/MasterSites Microsoft.RecoveryServices/vaults Microsoft.RecommendationsService/accounts/modeling Microsoft.RecommendationsService/accounts Microsoft.Quantum/Workspaces Microsoft.Purview/accounts Microsoft.PowerPlatform/accounts Microsoft.PowerBIDedicated/autoScaleVCores Microsoft.PowerBIDedicated/capacities Microsoft.PowerBI/privateLinkServicesForPowerBI Microsoft.PowerBI/workspaceCollections Microsoft.Portal/dashboards Microsoft.Peering/peeringServices Microsoft.RecommendationsService/accounts/serviceEndpoints Microsoft.DataBoxEdge/DataBoxEdgeDevices Microsoft.DataBox/jobs Microsoft.D365CustomerInsights/instances Microsoft.Web/sites/premieraddons Microsoft.Web/sites/slots Microsoft.Web/sites Microsoft.Web/serverFarms Microsoft.Web/certificates Microsoft.Web/staticSites Microsoft.Network/ipAllocations Microsoft.Network/virtualRouters Microsoft.Network/bastionHosts Microsoft.Network/networkExperimentProfiles Microsoft.Network/frontdoorWebApplicationFirewallPolicies Microsoft.Network/frontdoors Microsoft.Network/networkProfiles Microsoft.Network/ddosProtectionPlans Microsoft.Network/privateLinkServices Microsoft.Network/virtualNetworkTaps Microsoft.Network/azureFirewalls Microsoft.Network/securityPartnerProviders Microsoft.Network/ipGroups Microsoft.Network/firewallPolicies Microsoft.Network/expressRouteGateways Microsoft.Network/p2sVpnGateways Microsoft.Network/vpnGateways Microsoft.Web/hostingEnvironments Microsoft.Web/kubeEnvironments Microsoft.Web/connections Microsoft.Web/customApis Microsoft.Sql/servers/jobAgents Microsoft.Sql/servers/jobAccounts Microsoft.Sql/servers/elasticpools Microsoft.Sql/servers/databases Microsoft.Sql/servers microsoft.insights/privateLinkScopes microsoft.insights/dataCollectionEndpoints microsoft.insights/dataCollectionRules microsoft.insights/workbooktemplates microsoft.insights/workbooks microsoft.insights/activityLogAlerts Microsoft.Network/virtualHubs microsoft.insights/actiongroups microsoft.insights/alertrules microsoft.insights/metricalerts microsoft.insights/scheduledqueryrules microsoft.insights/webtests microsoft.insights/components Microsoft.OperationalInsights/clusters Microsoft.OperationalInsights/querypacks Microsoft.OperationalInsights/workspaces Microsoft.Web/containerApps Microsoft.Web/workerApps Microsoft.Web/connectionGateways microsoft.insights/autoscalesettings Microsoft.Network/vpnServerConfigurations Microsoft.Network/vpnSites Microsoft.Network/virtualWans Microsoft.Compute/hostGroups/hosts Microsoft.Compute/hostGroups Microsoft.Compute/images Microsoft.Compute/cloudServices Microsoft.Compute/diskAccesses Microsoft.Compute/diskEncryptionSets Microsoft.Compute/snapshots Microsoft.Compute/disks Microsoft.Compute/galleries/applications/versions Microsoft.Compute/galleries/applications Microsoft.Compute/galleries/images/versions Microsoft.Network/virtualNetworks Microsoft.Compute/galleries/images Microsoft.Compute/sharedVMImages/versions Microsoft.Compute/sharedVMImages Microsoft.Compute/capacityReservationGroups/capacityReservations Microsoft.Compute/capacityReservationGroups Microsoft.Compute/sshPublicKeys Microsoft.Compute/proximityPlacementGroups Microsoft.Compute/restorePointCollections Microsoft.Compute/virtualMachines/runCommands Microsoft.Compute/virtualMachineScaleSets Microsoft.Compute/virtualMachines/extensions Microsoft.Compute/virtualMachines Microsoft.Compute/galleries Microsoft.Sql/instancePools Microsoft.Network/natGateways Microsoft.Network/networkInterfaces Microsoft.Network/routeFilters Microsoft.Network/expressRouteCircuits Microsoft.Network/trafficmanagerprofiles Microsoft.Network/privateDnsZones/virtualNetworkLinks Microsoft.Network/privateDnsZones Microsoft.Network/dnszones Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies Microsoft.Network/applicationGateways Microsoft.Network/connections Microsoft.Network/localNetworkGateways Microsoft.Network/virtualNetworkGateways Microsoft.Network/publicIPAddresses Microsoft.Network/networkWatchers/pingMeshes Microsoft.Network/networkWatchers/connectionMonitors Microsoft.Network/networkWatchers Microsoft.Network/publicIPPrefixes Microsoft.Network/routeTables Microsoft.Network/networkIntentPolicies Microsoft.Network/serviceEndpointPolicies Microsoft.Network/applicationSecurityGroups Microsoft.Network/networkSecurityGroups Microsoft.Network/loadBalancers Microsoft.Network/privateEndpointRedirectMaps Microsoft.Network/privateEndpoints Microsoft.Network/networkWatchers/flowLogs Wandisco.Fusion/migrators/metadataTargets Microsoft.Sql/managedInstances Microsoft.Sql/virtualClusters Microsoft.CognitiveServices/accounts Microsoft.Codespaces/plans Microsoft.CloudTest/images Microsoft.CloudTest/hostedpools Microsoft.CloudTest/pools Microsoft.CloudTest/accounts Microsoft.Chaos/experiments Microsoft.CertificateRegistration/certificateOrders Microsoft.Cdn/profiles/afdendpoints Microsoft.Cdn/CdnWebApplicationFirewallPolicies Microsoft.Cdn/profiles/endpoints Microsoft.Cdn/profiles Microsoft.Cascade/Operations Microsoft.Cascade/Locations/operationStatuses Microsoft.Cascade/Locations Microsoft.Cascade/sites Microsoft.Cache/redisEnterprise Microsoft.Cache/Redis Microsoft.BotService/botServices Microsoft.Bing/accounts Microsoft.Batch/batchAccounts Microsoft.BareMetalInfrastructure/bareMetalInstances Microsoft.BackupSolutions/VMwareApplications Microsoft.Communication/CommunicationServices Microsoft.ConfidentialLedger/Ledgers Microsoft.Confluent/organizations Microsoft.ConnectedCache/CacheNodes Microsoft.CustomProviders/resourceProviders Microsoft.CostManagement/Connectors Microsoft.ContainerService/managedclustersnapshots Microsoft.ContainerService/snapshots Microsoft.ContainerService/openShiftManagedClusters Microsoft.ContainerService/managedClusters Microsoft.ContainerService/containerServices Microsoft.ContainerRegistry/registries/webhooks Microsoft.ContainerRegistry/registries/replications Microsoft.ContainerRegistry/registries/buildTasks Microsoft.ContainerRegistry/registries/tasks Microsoft.AzureStackHCI/clusters Microsoft.ContainerRegistry/registries/agentPools Microsoft.ContainerInstance/containerGroups Microsoft.ConnectedVMwarevSphere/Hosts Microsoft.ConnectedVMwarevSphere/Datastores Microsoft.ConnectedVMwarevSphere/Clusters Microsoft.ConnectedVMwarevSphere/VirtualMachines/Extensions Microsoft.ConnectedVMwarevSphere/VirtualMachines Microsoft.ConnectedVMwarevSphere/VirtualMachineTemplates Microsoft.ConnectedVMwarevSphere/VirtualNetworks Microsoft.ConnectedVMwarevSphere/ResourcePools Microsoft.ConnectedVMwarevSphere/VCenters Microsoft.ConnectedCache/enterpriseCustomers Microsoft.ContainerRegistry/registries Microsoft.AzureStackHCI/virtualharddisks Microsoft.AzureStackHCI/virtualnetworks Microsoft.AzureStackHCI/virtualmachines Microsoft.App/managedEnvironments/certificates Microsoft.App/managedEnvironments Microsoft.ApiManagement/service Microsoft.AnyBuild/clusters Microsoft.AnalysisServices/servers microsoft.aadiam/tenants microsoft.aadiam/privateLinkForAzureAD microsoft.aadiam/azureADMetrics Microsoft.AAD/DomainServices Microsoft.Storage/storageAccounts Microsoft.ServiceFabric/managedclusters Microsoft.App/containerApps Microsoft.ServiceFabric/clusters Microsoft.OperationsManagement/managementconfigurations Microsoft.OperationsManagement/solutions Microsoft.Security/assignments Microsoft.Security/standards Microsoft.Security/customEntityStoreAssignments Microsoft.Security/customAssessmentAutomations Microsoft.Security/securityConnectors Microsoft.Security/automations Microsoft.Security/iotSecuritySolutions Microsoft.AlertsManagement/actionRules Microsoft.AlertsManagement/smartDetectorAlertRules Microsoft.OperationsManagement/views Microsoft.Sql/managedInstances/databases Microsoft.AppConfiguration/configurationStores Microsoft.Attestation/attestationProviders Microsoft.AzureStackHCI/networkinterfaces Microsoft.AzureStackHCI/galleryimages Microsoft.AzureStack/linkedSubscriptions Microsoft.AzureStack/registrations Microsoft.AzureData/sqlServerRegistrations Microsoft.AzureCIS/dstsServiceClientIdentities Microsoft.AzureCIS/dstsServiceAccounts Microsoft.AzureCIS/autopilotEnvironments Microsoft.AzureArcData/SqlServerInstances Microsoft.AzureArcData/PostgresInstances Microsoft.AzureArcData/SqlManagedInstances Microsoft.AppPlatform/Spring Microsoft.AzureArcData/DataControllers Microsoft.AzureActiveDirectory/guestUsages Microsoft.AVS/privateClouds Microsoft.AutonomousSystems/workspaces Microsoft.Automation/automationAccounts/configurations Microsoft.Automation/automationAccounts/runbooks Microsoft.Automation/automationAccounts Microsoft.Automanage/configurationProfiles/versions Microsoft.Automanage/configurationProfiles Microsoft.Automanage/configurationProfilePreferences Microsoft.Automanage/accounts Microsoft.Authorization/resourceManagementPrivateLinks Microsoft.AzureActiveDirectory/b2cDirectories Wandisco.Fusion/migrators/pathMappings ```

And following doesn't.

Edit: Comment got too long if including this list.