UNPKG

abap_cloud_platform

Version:
217 lines 6.86 kB
/// <reference types="node" /> import ClientOAuth2 from "client-oauth2"; import { Express, RequestHandler, Request } from "express"; import { Server } from "http"; interface CfLink { href: string; method?: string; meta?: { [key: string]: string; }; } export interface CfInfo { guid?: string; created_at?: Date; updated_at?: Date; links: { [key: string]: CfLink | null; }; } export interface UaaTokenKeys { kid: string; alg: string; value: string; kty: string; use: string; n: string; e: string; } export interface CfEntity { } export interface CfMetadata { created_at: string; guid: string; updated_at: string; url: string; } export interface CfResource<T extends CfEntity> { metadata: CfMetadata; entity: T; } export interface CfResult<T extends CfEntity> { total_results: number; total_pages: number; prev_url?: string | null; next_url?: string | null; resources: CfResource<T>[]; } export interface CfOrganizationEntity extends CfEntity { app_events_url: string; auditors_url: string; billing_enabled: boolean; billing_managers_url: string; default_isolation_segment_guid?: string; domains_url: string; managers_url: string; name: string; private_domains_url: string; quota_definition_guid: string; quota_definition_url: string; space_quota_definitions_url: string; spaces_url: string; status: string; users_url: string; } export interface CfSpaceEntity extends CfEntity { allow_ssh: boolean; app_events_url: string; apps_url: string; auditors_url: string; developers_url: string; domains_url: string; events_url: string; name: string; isolation_segment_guid?: string; managers_url: string; organization_guid: string; organization_url: string; routes_url: string; security_groups_url: string; service_instances_url: string; space_quota_definition_guid?: string; staging_security_groups_url: string; } export interface CfServiceEntity extends CfEntity { active: boolean; allow_context_updates: boolean; bindable: boolean; bindings_retrievable: boolean; description: string; documentation_url?: string; extra: string; info_url?: string; instances_retrievable: boolean; label: string; long_description?: string; plan_updateable: boolean; provider?: string; requires: any[]; service_broker_guid: string; service_broker_name: string; service_plans_url: string; tags: string[]; unique_id: string; url?: string; version?: string; } export interface LastOperation { created_at: string; description: string; state: string; type: string; updated_at: string; } export interface CfServiceInstanceEntity extends CfEntity { credentials: any; dashboard_url: string; gateway_data?: string; last_operation: LastOperation; maintenance_info: any; routes_url: string; service_bindings_url: string; service_guid: string; service_instance_parameters_url: string; service_keys_url: string; service_plan_guid: string; service_plan_url: string; service_url: string; shared_from_url: string; shared_to_url: string; space_guid: string; space_url: string; tags: any[]; type: string; } interface ServiceKey { } export interface AbapServiceKey extends ServiceKey { uaa: { uaadomain: string; tenantmode: string; sburl: string; clientid: string; verificationkey: string; apiurl: string; xsappname: string; identityzone: string; identityzoneid: string; clientsecret: string; tenantid: string; url: string; }; url: string; "sap.cloud.service": string; systemid: string; endpoints: { abap: string; }; catalogs: { abap: { path: string; type: string; }; }; binding: { env: string; version: string; type: string; id: string; }; } export declare const isAbapServiceKey: (x: any) => x is AbapServiceKey; export interface AbapEntity extends CfEntity { service_instance_guid: string; credentials: AbapServiceKey; service_instance_url: string; service_key_parameters_url: string; } export declare const isAbapEntity: (x: any) => x is AbapEntity; interface LoginServer<T> { callbackRequest: Promise<T>; redirectUri: string; } interface ExpressLoginServer extends LoginServer<Request> { app: Express; server: Server; } export interface AbapUserInfo { MANDT: string; UNAME: string; } export interface InstalledLanguage { ISOLANG: string; SAPLANG: string; } export interface AbapSystemInfo { INSTALLED_LANGUAGES: InstalledLanguage[]; SYSID: string; } export declare function cfInfo(cfEndPoint: string): Promise<CfInfo>; export declare function cfTokenKeys(uaaLoginEndPoint: string): Promise<UaaTokenKeys[]>; export declare function cfOrganizations(cfEndPoint: string, token: string): Promise<CfResource<CfOrganizationEntity>[]>; export declare function cfSpaces(cfEndPoint: string, organization: CfOrganizationEntity, token: string): Promise<CfResource<CfSpaceEntity>[]>; export declare function cfServices(cfEndPoint: string, token: string): Promise<CfResource<CfServiceEntity>[]>; export declare function cfServiceInstances(cfEndPoint: string, space: CfSpaceEntity, token: string): Promise<CfResource<CfServiceInstanceEntity>[]>; export declare function cfInstanceServiceKeys(cfEndPoint: string, instance: CfServiceInstanceEntity, token: string): Promise<CfResource<CfEntity>[]>; export declare function cfInstanceServiceKey(cfEndPoint: string, instance: CfServiceInstanceEntity, name: string, token: string): Promise<CfResource<CfEntity>>; export declare function cfInstanceServiceKeyCreate<T extends CfEntity>(cfEndPoint: string, instance: CfResource<CfServiceInstanceEntity>, name: string, token: string): Promise<CfResource<T>>; export declare function cfInstanceServiceKeyDelete(cfEndPoint: string, guid: string, token: string): Promise<void>; export declare function cfPasswordGrant(url: string, user: string, password: string): Promise<ClientOAuth2.Token>; export declare function loginServer(port?: number, successHandler?: RequestHandler): ExpressLoginServer; export declare function cfCodeGrant<T extends { url: string; }>(uaaUrl: string, clientId: string, clientSecret: string, server: LoginServer<T>): Promise<ClientOAuth2.Token>; export declare function getAbapSystemInfo(abapUrl: string, token: string): Promise<AbapSystemInfo>; export declare function getAbapUserInfo(abapUrl: string, token: string): Promise<AbapUserInfo>; export {}; //# sourceMappingURL=index.d.ts.map