abap_cloud_platform
Version:
A handful of cloud foundry API methods
217 lines • 6.86 kB
TypeScript
/// <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