UNPKG

@sap/subaccount-destination-service-provider

Version:

Provide service consumption of SAP subaccount services

103 lines (102 loc) 2.8 kB
import { Authentication, BaseProviderSystem, Filter, ProviderSystem } from "@sap/service-provider-apis"; export type BusinessObjectType = "BO INTERFACE"; export type CDSType = "CDS VIEW"; export interface BusinessItem { id: string; title: string; type: BusinessObjectType | CDSType; description: string | null; } export interface BusinessItemSpec { isUI: boolean; status: string; sot: string | null; sotName: string | null; entities: BusinessItemEntity[]; } export interface CatalogProviderSystem extends ProviderSystem { sapClient?: string; } export interface ProviderSystemBusiness extends BaseProviderSystem { product?: string; sapClient?: string; getBOs(options?: ProviderOptions): Promise<BusinessItem[]>; getCDS(options?: ProviderOptions): Promise<BusinessItem[]>; getSpecBo(boId: string): Promise<BusinessItemSpec>; getSpecCds(cdsId: string): Promise<BusinessItemSpec>; } export interface ProviderOptions { credentials?: Authentication; } export interface BusinessItemsRetriever { retrieveBusinessItems(destinationName: string, credentials?: Authentication): Promise<BusinessItem[]>; retrieveSpecBusinessItem(businessItemId: string): Promise<BusinessItemSpec>; } export interface BusinessRepositoryRetriever { retrieveSystemsBusinessItems(filter?: Filter): Promise<ProviderSystemBusiness[]>; } export interface RawBusinessItem { id: string; name: string; title: string; description: string | null; type: CDSType | BusinessObjectType; status: string; sot: string | null; sotName: string | null; entities: BusinessItemEntity[]; } export interface BusinessItemEntity { id: string; name: string; properties: EntityProperty[]; associations: EntityAssosiation[] | null; actions: EntityAction[] | null; } export interface EntityProperty { name: string; key: boolean; type: string; length: string | null; label: string | null; } export interface EntityAssosiation { name: string; assocName: string; cardinality: string; } export interface EntityAction { name: string; type: string; } export interface AnnotationsMetadata { id: string; uri: string; type: string; content_type: string; media_src: string; } export interface DeferredUri { uri: string; } export interface AnnotationResult { __metadata: AnnotationsMetadata; TechnicalName: string; Version: string; Description: string; MediaType: string; Services: { __deferred: DeferredUri; }; RecommendedSrv: { __deferred: DeferredUri; }; ScopedSrv: { __deferred: DeferredUri; }; } export interface RawServiceAnnotationsResults { d: { results: AnnotationResult[]; }; }