import type { Xor } from '@sap-cloud-sdk/util'; import type { DestinationFetchOptions } from './destination-accessor-types'; import type { DestinationFromServiceBindingOptions } from './destination-from-vcap'; import type { AuthenticationType, Destination, DestinationCertificate, HttpDestination } from './destination-service-types'; /** * Takes an existing or a parsed destination and returns an SDK compatible destination object. * @param destination - An object that adheres to the {@link Destination} interface. * @returns An SDK compatible destination object. */ export declare function sanitizeDestination(destination: Record): Destination; /** * Takes a JSON object returned by any of the calls to the destination service and returns an SDK compatible destination object. * This function only accepts destination configurations of type 'HTTP' and will error if no 'URL' is given. * @param destinationJson - A JSON object returned by the destination service. * @returns An SDK compatible destination object. * @internal */ export declare function parseDestination(destinationJson: DestinationJson | DestinationConfiguration): Destination; /** * @internal * Get additional headers and/or query parameters from a destination. * Destinations can specify additional headers and/or query parameters, that should be added to every request against the given destination. * They are specified in the following format: * `URL.headers.` or `URL.queries.` * @param destinationConfig - Original destination config that could include additional headers or query parameters. * @returns An object with either the headers or query parameters and their values, depending on the `originalKeyPrefix`. */ export declare function getAdditionalHeadersAndQueryParameters(destinationConfig: DestinationConfiguration): Pick; /** * @internal * Get additional headers from a destination. * Destinations can specify additional headers, that should be added to every request against the given destination. * They are specified in the following format: * `URL.headers.` * @param destinationConfig - Original destination config that could include additional headers. * @returns An object with either the headers or query parameters and their values, depending on the `originalKeyPrefix`. */ export declare function getAdditionalHeaders(destinationConfig: DestinationConfiguration): Pick; /** * @internal * Get additional query parameters from a destination. * Destinations can specify additional query parameters, that should be added to every request against the given destination. * They are specified in the following format: * `URL.queries.` * @param destinationConfig - Original destination config that could include additional headers or query parameters. * @returns An object with either the headers or query parameters and their values, depending on the `originalKeyPrefix`. */ export declare function getAdditionalQueryParameters(destinationConfig: DestinationConfiguration): Pick; /** * @internal */ export declare function getDestinationConfig(destinationJson: DestinationJson | DestinationConfiguration): DestinationConfiguration; /** * Transform destination to string containing destination information. * @param destination - Either destination object or destinationName and Jwt. * @returns String containing information on the destination. */ export declare function toDestinationNameUrl(destination: DestinationOrFetchOptions): string; /** * Transforms the upper case properties of the destination service response to lower case. * @internal * @param certificate - Response from the certificate endpoint of the destination service. * @returns The parsed Destination Certificate with lower case properties. */ export declare function parseCertificate(certificate: Record): DestinationCertificate; /** * Destination configuration alongside auth tokens and certificates. */ export interface DestinationJson { [key: string]: any; /** * Configuration of a destination as it is available through the destination service. */ destinationConfiguration: DestinationConfiguration; /** * Authentication tokens as they are available through the destination service. */ authTokens?: Record[]; /** * Certificates for authentication as they are available through the destination service. */ certificates?: Record[]; } /** * Configuration of a destination as it is available through the destination service. */ export interface DestinationConfiguration { [key: string]: any; /** * `URL` of the destination. */ URL?: string; /** * `Name` of the destination. */ Name?: string; /** * `ProxyType` of the destination, e.g., `Internet` or `OnPremise`. */ ProxyType?: string; /** * `sap-client` defined in the destination. */ 'sap-client'?: string; /** * Username in case of basic authentication destinations. */ User?: string; /** * Password in case of basic authentication destinations. */ Password?: string; /** * Represents the authentication type of a destination. */ Authentication?: AuthenticationType; /** * Value of the TrustAll property of the destination. */ TrustAll?: string; /** * URL of the token service endpoint to retrieve access token. * This may contain placeholders in multi-tenant scenarios. @see {@link https://help.sap.com/docs/CP_CONNECTIVITY/cca91383641e40ffbe03bdc78f00f681/c69ea6aacd714ad2ae8ceb5fc3ceea56.html?locale=en-US|OAuth SAML Bearer Assertion Authentication}. * In most cases the XSUAA will be used here. */ tokenServiceURL?: string; /** * Decides if the token service subdomain is fixed or adjusted in multi-tenant scenarios. @see {@link https://help.sap.com/docs/CP_CONNECTIVITY/cca91383641e40ffbe03bdc78f00f681/c69ea6aacd714ad2ae8ceb5fc3ceea56.html?locale=en-US|OAuth SAML Bearer Assertion Authentication}. */ tokenServiceURLType?: 'Common' | 'Dedicated;'; /** * Fixed username to retrieve an auth token from the endpoint. */ tokenServiceUsername?: string; /** * Password to retrieve an auth token from the endpoint. */ tokenServicePass?: string; /** * ClientId to retrieve an auth token from the token service endpoint. */ clientId?: string; /** * ClientSecret to retrieve an auth token from the token service endpoint. */ clientSecret?: string; /** * Deprecated option of the destination service to fix a user in OnPremise principal propagation. */ SystemUser?: string; /** * Type of the destination. */ Type?: 'HTTP' | 'LDAP' | 'MAIL' | 'RFC'; } /** * @internal */ export declare function isDestinationConfiguration(destination: any): destination is DestinationConfiguration; /** * @internal */ export declare function isDestinationJson(destination: any): destination is DestinationJson; /** * @internal */ export declare function noDestinationErrorMessage(destination: DestinationOrFetchOptions): string; /** * Type that is either a {@link HttpDestination} or (XOR) {@link DestinationFetchOptions & DestinationFromServiceBindingOptions}. */ export type DestinationOrFetchOptions = Xor; /** * Type that is either a {@link HttpDestination} or (XOR) {@link DestinationFetchOptions & DestinationFromServiceBindingOptions}. */ export type HttpDestinationOrFetchOptions = Xor;