import { Authentication, EncodingMode, Filter, HeaderParameters, ProviderDestination, ProviderSystem, ResponseDestination, Service, ServiceMetadata, ServiceRetriever } from "@sap/service-provider-apis"; import { ApiHubEntBaseProductSystem } from "../provider/baseProductSystem"; export interface ApiHubEntServiceRetrieverInterface extends ServiceRetriever { retrieveServiceSwagger(serviceId: string, destinationName: string): Promise; retrieveProducts(systemName: string, credentials?: Authentication): Promise; retrieveServices(systemName: string, productName: string, credentials?: Authentication, filter?: Filter): Promise; retrieveMetadata(systemName: string, serviceId: string, encoding: EncodingMode, credentials?: Authentication, headerParameters?: HeaderParameters): Promise; retrieveConsumptions(destinationName: string, productName: string, tenantName: string): Promise; } export interface AdministrationManagerRawInterface { retrieveSubscriptions(systemName: string, username: string, productName?: string, credentials?: Authentication): Promise; retrieveRegistrationData(systemName: string, username: string, credentials?: Authentication): Promise; registerUser(registrationParams: RegistrationParams, credentials?: Authentication): Promise; subscribeUser(subscriptionParams: SubscriptionParams, credentials?: Authentication): Promise; } export interface ApiHubEntProductProviderSystem extends ProviderSystem { consumptionBundleId: string; correlationId: string; isSubscribable: boolean; sharedCreds: boolean; getConsumptions(tenantName: string): Promise; } export interface RawProduct { name: string; version: string; description: string; title: string; isSubscribable: boolean; sharedCreds: boolean; correlationIds: string; consumptionBundleOrd: string; [key: string]: unknown; } export interface RawConsumption { system: ConsumptionSystem; tenantSubdomain: string; destinations: ConsumptionDestination[]; } export interface ConsumptionDestination { name: string; correlationId: string; configuration: RawConsumptionDestinationConfiguration; } export interface ConsumptionSystem { id: string; type: string; baseURL: string; name: string; } export interface Consumption { system: ConsumptionSystem; tenantSubdomain: string; destinations: ConsumptionDestinationConfiguration[]; } export interface RawConsumptionDestinationConfiguration extends ResponseDestination { tokenServiceURL?: string; tokenServiceURLType?: string; tokenServiceUser?: string; tokenServicePassword?: string; clientSecret?: string; clientId?: string; User?: string; Password?: string; "com.sap.catalog.propagate.credential": string; "x-system-type": string; "x-correlation-id": string; "x-system-id": string; WebIDEEnabled?: string; "HTML5.DynamicDestination"?: string; "HTML5.Timeout"?: string; [key: string]: unknown; } export interface ConsumptionDestinationConfiguration extends ProviderDestination { comSapCatalogPropagateCredential: string; xSystemType: string; xCorrelationId: string; xSystemId: string; usage?: string; html5DynamicDestination?: string; html5Timeout?: string; } export interface RawService extends RawProduct { ToProxyEndPoints: ProxyEndPointResults; service_code: string; version: string; apiOrdId: string; releaseStatus: string; } export interface ProxyEndPointResults { results: ProxyEndPoint[]; } export interface ProxyEndPoint { base_path: string; } export interface SubscribeResponse { [key: string]: unknown; } export interface SubscriptionResponseRow { product_id: string; app_name: string; ToApplication: ApplicationResponse; isSubscribed: boolean; [key: string]: unknown; } export interface ApplicationResponse { id: string; title: string; description: string; app_key: string; created_at: string; [key: string]: unknown; } export interface ApiHubEntHeaderParameters extends HeaderParameters { apihubKey: string; } export interface RegistrationData { accessRoles: AccessRole[]; } export declare enum SubscriptionRole { Developer = "API_ApplicationDeveloper" } export declare enum SubscriptionStatus { Registered = "registered" } export interface AccessRole { role: SubscriptionRole; status?: SubscriptionStatus; requestReason?: string; } export interface RegistrationParams { destinationName: string; userId: string; firstName: string; lastName: string; emailId: string; country: string; roles: AccessRole[]; } export interface SubscriptionParams { destinationName: string; productName: string; username: string; appName: string; } export interface RawServiceMetadata { d: { id: string; APIName: string; type: string; content: string; }; }