1. A method comprising: receiving, from an application, first data that identifies a particular category of hardware resources, of a plurality of categories of hardware resources, the particular category of hardware resources representing a set of hardware resources that are required to be allocated to the application in order for the application to function, wherein each category in the plurality of categories is mapped to a different set of hardware resources of a device on which the application is executing, wherein the first data includes at least one category identifier representing the particular category of hardware resources; receiving, from the application, second data that identifies a particular mode of a plurality of modes, wherein the particular mode of the plurality of modes corresponds to an intended use of the set of hardware resources based on a configuration setting of the particular category of hardware resources, and wherein the particular mode is mapped to the configuration setting of the particular category of hardware resources, the configuration setting consistent with the intended use of the application, wherein the second data includes at least one mode identifier representing the particular mode; and in response to receiving the first data and the second data, allocating, to the application, the set of hardware resources represented by the particular category and the particular mode, and configuring one or more hardware resources in the set of hardware resources in conformity with the configuration setting mapped to the particular mode, wherein the first data differs from the second data; wherein the method is performed by one or more computing devices.