Base projectInterface that all PDPs that expose their own unique project ids must
implement.
There should be a PDP that provides platform.base for all available project ids.
projectInterface a PDP serves when it can list the dataQualifiers an extension has data
for. Its one method is listExtensionDataQualifiers. Separate from platform.base because
not every PDP can enumerate its extension data and a PDP method is never optional; see
IExtensionDataEnumerationProjectDataProvider for how a consumer discovers it.
IProjectDataProvider types for each
projectInterfacesupported by PAPI. Extensions can add more Project Data Providers with correspondingprojectInterfaces by adding details to their.d.tsfile and registering a Project Data Provider factory with the correspondingprojectInterface.There are two types of Project Data Providers (and Project Data Provider Factories that serve them):
projectInterfaces for its own projects with its own unique project ids. These PDPs must support theplatform.baseprojectInterfaceby implementing IBaseProjectDataProvider. More information below.projectInterfaces for projects on other PDPs. Likely does not provide its own unique project ids but rather layers over base PDPs' project ids. These PDPs do not need to support theplatform.baseprojectInterfaceand should instead implement IProjectDataProvider. Instead of providing projects themselves, they likely use theExtensionDatadata type exposed via theplatform.baseprojectInterfaceon Base PDPs to provide additional project data on top of Base PDPs.All Base Project Data Provider Interfaces' data types must implement IBaseProjectDataProvider (which extends MandatoryProjectDataTypes) like in the following example. Please see its documentation for information on how Project Data Providers can implement this interface.
Note: The keys of this interface are the
projectInterfaces for the associated Project Data Provider Interfaces.projectInterfaces represent standardized sets of methods on a PDP.WARNING: Each Base Project Data Provider must fulfill certain requirements for its
getSetting,setSetting,resetSetting,getExtensionData, andsetExtensionDatamethods. See IBaseProjectDataProvider and MandatoryProjectDataTypes for more information.An extension can extend this interface to add types for the Project Data Provider Interfaces its registered factory provides by adding the following to its
.d.tsfile (in this example, we are adding a Base Project Data Provider interface for theMyExtensionBaseProjectInterfaceprojectInterfaceand a Layering Project Data Provider interface for theMyExtensionLayeringProjectInterfaceprojectInterface):Example