Skip to content

integrations/ticketing/sap-service-cloud/dist

Classes

SapServiceCloudProviderApiError

Extends

  • Error

Constructors

Constructor
new SapServiceCloudProviderApiError(input): SapServiceCloudProviderApiError;
Parameters
Parameter Type
input SapServiceCloudProviderApiErrorInput
Returns

SapServiceCloudProviderApiError

Overrides
Error.constructor

Properties

body
readonly body: unknown;
provider
readonly provider: "sap-service-cloud" = "sap-service-cloud";
response
readonly response: SapServiceCloudProviderApiErrorResponseMetadata;
status
readonly status: number;

Interfaces

SapReadServiceRequestOperationInput

Properties

objectId
objectId: string;

SapServiceCloudCredentialStatusInput

Properties

accessToken?
optional accessToken?: string;
apiAccessConfigured?
optional apiAccessConfigured?: boolean;
authConfigured?
optional authConfigured?: boolean;
baseUrl?
optional baseUrl?: string;
password?
optional password?: string;
providerClient?
optional providerClient?: SapServiceCloudTicketingProviderClient;
providerClientConfigured?
optional providerClientConfigured?: boolean;
scopes?
optional scopes?: string[];
username?
optional username?: string;

SapServiceCloudJsonObject

Extended by

Indexable

[key: string]: SapServiceCloudProviderExtensionValue

SapServiceCloudLiveCheckOptions

Extends

Properties

accessToken?
optional accessToken?: string;
Inherited from

SapServiceCloudTicketingClientOptions.accessToken

auth?
optional auth?: SapServiceCloudAuthOptions;
Inherited from

SapServiceCloudTicketingClientOptions.auth

baseUrl?
optional baseUrl?: string;
Inherited from

SapServiceCloudTicketingClientOptions.baseUrl

client?
optional client?: Pick<SapServiceCloudTicketingClient, "readiness">;
csrfToken?
optional csrfToken?: string;
Inherited from

SapServiceCloudTicketingClientOptions.csrfToken

headers?
optional headers?: Record<string, string>;
Inherited from

SapServiceCloudTicketingClientOptions.headers

odataBasePath?
optional odataBasePath?: string;
Inherited from

SapServiceCloudTicketingClientOptions.odataBasePath

password?
optional password?: string;
Inherited from

SapServiceCloudTicketingClientOptions.password

providerClient?
optional providerClient?: SapServiceCloudTicketingProviderClient;
Inherited from

SapServiceCloudTicketingClientOptions.providerClient

signal?
optional signal?: AbortSignal;
Inherited from

SapServiceCloudTicketingClientOptions.signal

timeoutMs?
optional timeoutMs?: number;
Inherited from

SapServiceCloudTicketingClientOptions.timeoutMs

username?
optional username?: string;
Inherited from

SapServiceCloudTicketingClientOptions.username


SapServiceCloudProviderApiErrorInput

Properties

body
body: unknown;
message
message: string;
response
response: SapServiceCloudProviderApiErrorResponseMetadata;
status
status: number;

SapServiceCloudProviderApiErrorResponseMetadata

Properties

headers
headers: Record<string, string>;
requestId?
optional requestId?: string;
statusText
statusText: string;
url
url: string;

SapServiceCloudProviderExtensionFields

Extends

Indexable

[key: string]: SapServiceCloudProviderExtensionValue

SapServiceCloudProviderResponse

Extends

Indexable

[key: string]: SapServiceCloudProviderExtensionValue

SapServiceCloudTicketingClientOptions

Extended by

Properties

accessToken?
optional accessToken?: string;
auth?
optional auth?: SapServiceCloudAuthOptions;
baseUrl?
optional baseUrl?: string;
csrfToken?
optional csrfToken?: string;
headers?
optional headers?: Record<string, string>;
odataBasePath?
optional odataBasePath?: string;
password?
optional password?: string;
providerClient?
optional providerClient?: SapServiceCloudTicketingProviderClient;
signal?
optional signal?: AbortSignal;
timeoutMs?
optional timeoutMs?: number;
username?
optional username?: string;

SapServiceCloudTicketingIntegrationOptions

Extends

Properties

accessToken?
optional accessToken?: string;
Inherited from

SapServiceCloudTicketingClientOptions.accessToken

auth?
optional auth?: SapServiceCloudAuthOptions;
Inherited from

SapServiceCloudTicketingClientOptions.auth

baseUrl?
optional baseUrl?: string;
Inherited from

SapServiceCloudTicketingClientOptions.baseUrl

client?
optional client?: SapServiceCloudTicketingProviderClient;
csrfToken?
optional csrfToken?: string;
Inherited from

SapServiceCloudTicketingClientOptions.csrfToken

headers?
optional headers?: Record<string, string>;
Inherited from

SapServiceCloudTicketingClientOptions.headers

odataBasePath?
optional odataBasePath?: string;
Inherited from

SapServiceCloudTicketingClientOptions.odataBasePath

password?
optional password?: string;
Inherited from

SapServiceCloudTicketingClientOptions.password

providerClient?
optional providerClient?: SapServiceCloudTicketingProviderClient;
Inherited from

SapServiceCloudTicketingClientOptions.providerClient

signal?
optional signal?: AbortSignal;
Inherited from

SapServiceCloudTicketingClientOptions.signal

timeoutMs?
optional timeoutMs?: number;
Inherited from

SapServiceCloudTicketingClientOptions.timeoutMs

username?
optional username?: string;
Inherited from

SapServiceCloudTicketingClientOptions.username


SapServiceCloudTicketingProviderClient

Methods

createServiceRequest()
createServiceRequest(input): Promise<SapServiceRequestResource>;
Parameters
Parameter Type
input SapServiceCreateRequestInput
Returns

Promise\<SapServiceRequestResource>

getServiceRequest()
getServiceRequest(objectId): Promise<SapServiceRequestResource>;
Parameters
Parameter Type
objectId string
Returns

Promise\<SapServiceRequestResource>

readiness()
readiness(): Promise<SapServiceSearchResult<SapServiceRequestResource>>;
Returns

Promise\<SapServiceSearchResult\<SapServiceRequestResource>>

searchServiceRequests()
searchServiceRequests(input?): Promise<SapServiceSearchResult<SapServiceRequestResource>>;
Parameters
Parameter Type
input? SapServiceSearchInput
Returns

Promise\<SapServiceSearchResult\<SapServiceRequestResource>>

updateServiceRequest()
updateServiceRequest(
   objectId,
   input,
etag?): Promise<SapServiceRequestResource>;
Parameters
Parameter Type
objectId string
input SapServiceUpdateRequestInput
etag? string
Returns

Promise\<SapServiceRequestResource>


SapServiceCreateRequestInput

Properties

buyerPartyId?
optional buyerPartyId?: string;
buyerPartyName?
optional buyerPartyName?: string;
fields?
optional fields?: SapServiceCloudJsonObject;
name
name: string;
objectServiceIssueCategoryId?
optional objectServiceIssueCategoryId?: string;
processingTypeCode?
optional processingTypeCode?: string;
servicePriorityCode?
optional servicePriorityCode?: string;

SapServiceSearchInput

Properties

expand?
optional expand?: string[];
filter?
optional filter?: string;
inlineCount?
optional inlineCount?: "none" | "allpages";
orderBy?
optional orderBy?: string;
select?
optional select?: string[];
skip?
optional skip?: number;
top?
optional top?: number;

SapServiceSearchResult

Type Parameters

Type Parameter Default type
T SapServiceRequestResource

Properties

count?
optional count?: string;
results
results: T[];

SapServiceUpdateRequestInput

Extended by

Properties

fields?
optional fields?: SapServiceCloudJsonObject;
name?
optional name?: string;
objectServiceIssueCategoryId?
optional objectServiceIssueCategoryId?: string;
servicePriorityCode?
optional servicePriorityCode?: string;
statusCode?
optional statusCode?: string;

SapUpdateServiceRequestOperationInput

Extends

Properties

etag?
optional etag?: string;
fields?
optional fields?: SapServiceCloudJsonObject;
Inherited from

SapServiceUpdateRequestInput.fields

name?
optional name?: string;
Inherited from

SapServiceUpdateRequestInput.name

objectId
objectId: string;
objectServiceIssueCategoryId?
optional objectServiceIssueCategoryId?: string;
Inherited from

SapServiceUpdateRequestInput.objectServiceIssueCategoryId

servicePriorityCode?
optional servicePriorityCode?: string;
Inherited from

SapServiceUpdateRequestInput.servicePriorityCode

statusCode?
optional statusCode?: string;
Inherited from

SapServiceUpdateRequestInput.statusCode

Type Aliases

SapServiceCloudAuthOptions

type SapServiceCloudAuthOptions =
  | {
  accessToken: string;
  type: "bearer";
}
  | {
  password: string;
  type: "basic";
  username: string;
}
  | {
  headers: Record<string, string>;
  type: "headers";
};

SapServiceCloudJsonPrimitive

type SapServiceCloudJsonPrimitive = string | number | boolean | null;

SapServiceCloudJsonValue

type SapServiceCloudJsonValue =
  | SapServiceCloudJsonPrimitive
  | SapServiceCloudJsonObject
  | readonly SapServiceCloudJsonValue[];

SapServiceCloudProviderExtensionValue

type SapServiceCloudProviderExtensionValue =
  | SapServiceCloudJsonValue
  | object
  | undefined;

SapServiceCloudProviderPayload

type SapServiceCloudProviderPayload = SapServiceCloudJsonObject | object;

SapServiceCloudProviderQuery

type SapServiceCloudProviderQuery = Record<string, SapServiceCloudProviderExtensionValue>;

SapServiceCloudSdkHttpDestination

type SapServiceCloudSdkHttpDestination = Parameters<typeof executeHttpRequest>[0];

SapServiceCloudTicketingClient

type SapServiceCloudTicketingClient = SapServiceCloudTicketingProviderClient;

SapServiceRequestResource

type SapServiceRequestResource = SapServiceCloudProviderPayload & {
  BuyerPartyName?: string;
  ID?: string;
  Name?: string;
  ObjectID?: string;
  ProcessingTypeCode?: string;
  ServicePriorityCode?: string;
  StatusCode?: string;
};

Type Declaration

Name Type
BuyerPartyName? string
ID? string
Name? string
ObjectID? string
ProcessingTypeCode? string
ServicePriorityCode? string
StatusCode? string

Functions

createSapServiceCloudODataProviderClient()

function createSapServiceCloudODataProviderClient(options): SapServiceCloudTicketingProviderClient;

Parameters

Parameter Type
options SapServiceCloudTicketingClientOptions

Returns

SapServiceCloudTicketingProviderClient


createSapServiceCloudTicketingClient()

function createSapServiceCloudTicketingClient(options?): SapServiceCloudTicketingProviderClient;

Parameters

Parameter Type
options? SapServiceCloudTicketingClientOptions

Returns

SapServiceCloudTicketingProviderClient


createSapServiceCloudTicketingIntegration()

function createSapServiceCloudTicketingIntegration(options?): DefinedIntegration<{
  capabilities: {
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension?: boolean;
     label?: string;
     metadata?: Record<string, unknown>;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: Record<string, unknown>;
        schemaName?: string;
     }[];
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  category: string;
  channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
  coverage: {
     evidence: {
        label: string;
        url?: string;
     }[];
     notes: string[];
     scope:   | "support-workflow-subset"
        | "provider-api-subset"
        | "connector-required"
        | "local-protocol"
        | "full-provider-api";
  };
  credentialRequirements: {
     description?: string;
     id: string;
     label?: string;
     metadata?: Record<string, unknown>;
     required: boolean;
     scopes: string[];
  }[];
  directions: (
     | "receive-only"
     | "send-only"
     | "inbound-only"
     | "outbound-only"
    | "bidirectional")[];
  id: string;
  limitations: string[];
  maintainers: {
     name: string;
     type: "community" | "official" | "unknown" | "partner";
     url?: string;
  }[];
  metadata?: Record<string, unknown>;
  name: string;
  operations: {
     alias: string;
     audience?: "customer-facing" | "internal-support" | "mixed";
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension: boolean;
     externallyVisible?: boolean;
     inputSchema?: unknown;
     inputSchemaName?: string;
     inputSchemaRef?: string;
     label?: string;
     metadata?: Record<string, unknown>;
     outputSchema?: unknown;
     outputSchemaName?: string;
     outputSchemaRef?: string;
     providerObject?: string;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: Record<string, unknown>;
        schemaName?: string;
     }[];
     providerOperation?: string;
     requiredPolicyIds?: string[];
     requiresApproval?: boolean;
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  packageName: string;
  privacyNotes: string[];
  provider: string;
  trustLevel: "community" | "official" | "verified" | "experimental";
} & {
  capabilities: readonly [{
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "handoff";
     changesWorkflow: true;
     description: "Creates or updates SAP Service Cloud ServiceRequestCollection records through the built-in OData adapter or host provider client as SDK-configured support handoff targets.";
     exposesSensitiveData: true;
     label: "Create SAP Service Cloud handoff";
     providerObjects: readonly [{
        kind: "sapServiceRequest";
        label: "SAP Service Request";
        schemaName: "ServiceRequestCollection";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "create-provider-object";
     changesWorkflow: true;
     description: "Creates SAP Service Cloud ServiceRequestCollection tickets through the built-in OData adapter or host provider client from SDK-user-selected workflows.";
     exposesSensitiveData: true;
     label: "Create SAP service requests";
     providerObjects: readonly [{
        kind: "sapServiceRequest";
        label: "SAP Service Request";
        schemaName: "ServiceRequestCollection";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "read-provider-object";
     description: "Reads SAP Service Cloud service requests by ObjectID.";
     exposesSensitiveData: true;
     label: "Read SAP service requests";
     providerObjects: readonly [{
        kind: "sapServiceRequest";
        label: "SAP Service Request";
        schemaName: "ServiceRequestCollection";
     }];
     requiresCredential: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "update-provider-object";
     changesWorkflow: true;
     description: "Updates SAP Service Cloud ticket fields, statuses, priorities, or SDK-user custom fields through the built-in OData adapter or host provider client.";
     exposesSensitiveData: true;
     label: "Update SAP service requests";
     providerObjects: readonly [{
        kind: "sapServiceRequest";
        label: "SAP Service Request";
        schemaName: "ServiceRequestCollection";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "search-provider-object";
     description: "Queries SAP Service Cloud ServiceRequestCollection with SDK-user-supplied OData query controls.";
     exposesSensitiveData: true;
     label: "Search SAP service requests";
     providerObjects: readonly [{
        kind: "sapServiceRequest";
        label: "SAP Service Request";
        schemaName: "ServiceRequestCollection";
     }];
     requiresCredential: true;
  }];
  category: "ticketing";
  channelAudiences: readonly ["customer-facing", "internal-support", "mixed"];
  coverage: {
     evidence: readonly [{
        label: "SAP Cloud for Customer OData API";
        url: "https://help.sap.com/docs/sap-cloud-for-customer/odata-services/sap-cloud-for-customer-odata-api";
      }, {
        label: "SAP Cloud for Customer OData API overview";
        url: "https://help.sap.com/docs/sap-cloud-for-customer/1364b70b9cbb417ea5e2d80e966d4f49/6c0a463cc9ca450cbd01a9a5057ce682.html";
      }, {
        label: "SAP Cloud for Customer OData API v2 Reference";
        url: "https://help.sap.com/docs/r/1364b70b9cbb417ea5e2d80e966d4f49/LATEST/en-US/6cb5cd1ebe1c49d8b99c22afa29aa5d4.html";
      }, {
        label: "SAP Cloud for Customer OData Services PDF";
        url: "https://help.sap.com/doc/77979cd206da4b7f9bd264b390d373fc/CLOUD/en-US/OData_Services.pdf";
     }];
     notes: readonly ["Runtime coverage uses the built-in SAP Service Cloud OData adapter backed by the official SAP Cloud SDK HTTP client for selected ServiceRequestCollection create, read by ObjectID, update, search, and readiness workflows when baseUrl plus access credentials are provided.", "A host-injected SapServiceCloudTicketingProviderClient remains available as an override for SDK-user-owned generated clients, destination handling, authentication, retries, or endpoint policy.", "This is not full SAP Service Cloud API coverage; notes, descriptions, attachments, involved parties, service categories, code-list discovery, custom OData services, communication arrangements, workflow actions, v2 migration policy, and broader SAP Cloud for Customer APIs remain outside this adapter."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: readonly [{
     description: "Optional SapServiceCloudTicketingProviderClient override that encapsulates SAP Service Cloud tenant routing, generated SDK/provider runtime, authentication, retries, and endpoint policy.";
     id: "sap-service-cloud-provider-client";
     label: "Optional SAP Service Cloud provider client override";
     metadata: {
        credentialOwnership: "host-managed-override";
        defaultClientPolicy: "built-in-odata-adapter-backed-by-sap-cloud-sdk-http-client";
        injectionInterface: "SapServiceCloudTicketingProviderClient";
     };
     required: false;
   }, {
     description: "SAP Service Cloud tenant base URL used by the built-in OData adapter, or supplied by a host provider client override.";
     id: "sap-service-cloud-instance";
     label: "SAP Service Cloud base URL";
     metadata: {
        requiredWhen: "built-in-odata-adapter-backed-by-sap-cloud-sdk-http-client";
     };
     required: false;
   }, {
     description: "Server-side SAP Service Cloud access supplied as accessToken, basic auth, auth headers, or encapsulated in a host provider client override.";
     id: "sap-service-cloud-api-access";
     label: "SAP Service Cloud API access";
     metadata: {
        privilegeGuidance: "These strings are Cognidesk capability labels for ServiceRequestCollection access, not official SAP OAuth scope names. SAP authorization depends on the host client's communication arrangements, destination/auth configuration, business user permissions, and exposed services.";
        requiredWhen: "built-in-odata-adapter-backed-by-sap-cloud-sdk-http-client";
        scopeKind: "internal-capability-labels";
     };
     required: false;
     scopes: readonly ["ServiceRequestCollection:read", "ServiceRequestCollection:write"];
  }];
  directions: readonly ["bidirectional"];
  id: "ticketing.sap-service-cloud";
  limitations: readonly ["SAP tenant exposure, communication arrangements, required fields, statuses, code lists, workflow rules, and extensions are SDK-user host-client configuration.", "The built-in adapter covers selected ServiceRequestCollection OData operations only; hosts can still inject a SapServiceCloudTicketingProviderClient for generated clients, destinations, custom auth, CSRF preflights, or retry policy.", "SDK users own escalation timing, customer matching, field mapping, reply visibility, retention, and notification policy before calling SAP APIs."];
  maintainers: readonly [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     channelCoverage: {
        attachmentFolder: "provider-supported-not-typed";
        csrfToken: "typed-optional-header-supported-host-owned-prefetch";
        notesInvolvedPartiesCodeLists: "provider-supported-not-typed";
        readinessSearch: "typed-odata-adapter-readiness";
        serviceRequests: "typed-odata-adapter-create-read-update-search";
        workflowRulesCommunicationArrangements: "not-covered";
     };
     checkedProviderApiCoverage: {
        checkedFamilyCount: 3;
        coverageArtifact: "docs/provider-coverage/sap-service-cloud-checked-c4c-odata-2026-06-18.inventory.json";
        gapFamilyCount: 1;
        implementedFamilyCount: 2;
        implementedOperationCount: 4;
        sourceKind: "checked-endpoint-family-inventory";
        verifiedAt: "2026-06-18";
     };
     checkedProviderSdk: {
        candidates: readonly [{
           checkedVersion: "4.7.0";
           license: "Apache-2.0";
           package: "@sap-cloud-sdk/http-client";
           reason: "Official SAP Cloud SDK HTTP client provides executeHttpRequest and typed request/response surfaces suitable for the package's existing ServiceRequestCollection OData mapping.";
           result: "accepted-runtime-http-client";
         }, {
           checkedVersion: "4.7.0";
           license: "Apache-2.0";
           package: "@sap-cloud-sdk/odata-v2";
           reason: "Official generic SAP Cloud SDK OData v2 runtime; requires generated service client metadata and host destination/auth setup rather than providing a SAP Service Cloud ServiceRequestCollection client.";
           result: "not-generated-client-in-this-package";
         }, {
           checkedVersion: "4.7.0";
           license: "Apache-2.0";
           package: "@sap-cloud-sdk/generator";
           reason: "Official generator for EDMX-based clients; this package does not own or redistribute tenant/version-specific SAP Service Cloud metadata.";
           result: "not-runtime-client";
        }];
        checkedAt: "2026-06-25";
        reason: "SAP Cloud SDK for JavaScript is official and current. No generated ServiceRequestCollection client is bundled here, so this package owns the typed OData path/body mapping while delegating runtime HTTP execution to @sap-cloud-sdk/http-client.";
        sources: readonly ["https://sap.github.io/cloud-sdk/docs/js/overview", "https://sap.github.io/cloud-sdk/docs/js/features/odata/overview", "https://sap.github.io/cloud-sdk/docs/js/features/odata/generate-client", "https://www.npmjs.com/package/@sap-cloud-sdk/http-client", "https://www.npmjs.com/package/@sap-cloud-sdk/odata-v2"];
        verdict: "sdk-backed-generic-odata-http-client";
     };
     implementation: {
        adapterKind: "sap-cloud-sdk-http-client-odata-adapter";
        defaultFetchClient: "none-provider-client-override-only";
        defaultHttpClient: "executeHttpRequest";
        manifestImport: "no-client-initialization";
        packageOwnedODataMapping: true;
        packageOwnedRestClient: false;
        providerClientInterface: "SapServiceCloudTicketingProviderClient";
        providerClientOverride: true;
        providerSdkPackage: "@sap-cloud-sdk/http-client";
        strategy: "provider-sdk-http-client-odata-adapter";
     };
     implementationStrategy: "sap-cloud-sdk-http-client-odata-adapter";
     providerClient: {
        defaultClient: "built-in-odata-adapter-backed-by-sap-cloud-sdk-http-client";
        importPolicy: "optional-host-override";
        injectionPolicy: "optional-runtime-override";
        interface: "SapServiceCloudTicketingProviderClient";
     };
     providerRestAdapterSupportSurface: {
        adapterKind: "sap-cloud-sdk-http-client-odata-adapter";
        operations: readonly [{
           alias: "ticket.create";
           providerClientMethod: "createServiceRequest";
         }, {
           alias: "ticket.read";
           providerClientMethod: "getServiceRequest";
         }, {
           alias: "ticket.update";
           providerClientMethod: "updateServiceRequest";
         }, {
           alias: "ticket.search";
           providerClientMethod: "searchServiceRequests";
        }];
        source: "Built-in SAP Service Cloud OData mapping executed through SAP Cloud SDK HTTP client";
     };
     providerSdkRuntime: {
        checkedVersion: "4.7.0";
        compatibilityFallback: "Explicit host fetch or retry options keep the legacy integration-kit JSON transport for callers that require fetch injection or integration-kit retry semantics.";
        defaultRuntime: "SAP Cloud SDK HTTP client executes the package-owned ServiceRequestCollection OData mapping.";
        importedRuntimeFunction: "executeHttpRequest";
        importedRuntimeTypes: readonly ["HttpRequestConfig", "HttpResponse", "Method"];
        license: "Apache-2.0";
        package: "@sap-cloud-sdk/http-client";
     };
  };
  name: "SAP Service Cloud";
  operations: readonly [{
     alias: "ticket.create";
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "sapServiceRequest";
     requiresCredential: true;
     sideEffect: true;
   }, {
     alias: "ticket.read";
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObject: "sapServiceRequest";
     requiresCredential: true;
   }, {
     alias: "ticket.update";
     audiences: readonly ["internal-support", "mixed"];
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "sapServiceRequest";
     requiresCredential: true;
     sideEffect: true;
   }, {
     alias: "ticket.search";
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObject: "sapServiceRequest";
     requiresCredential: true;
  }];
  packageName: "@cognidesk/integration-ticketing-sap-service-cloud";
  privacyNotes: readonly ["SAP service requests can contain customer account/contact details, ticket descriptions, categories, priorities, involved parties, notes, and internal routing data.", "SAP API credentials stay server-side and Studio receives only readiness and scope status."];
  provider: "sap-service-cloud";
  trustLevel: "official";
}, unknown, {
  ticket.create: (input) => Promise<SapServiceRequestResource>;
  ticket.read: (input) => Promise<SapServiceRequestResource>;
  ticket.search: (input?) => Promise<SapServiceSearchResult<SapServiceRequestResource>>;
  ticket.update: (input) => Promise<SapServiceRequestResource>;
}>;

Parameters

Parameter Type
options? SapServiceCloudTicketingIntegrationOptions

Returns

DefinedIntegration\<{ capabilities: { audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension?: boolean; label?: string; metadata?: Record\<string, unknown>; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; requiresCredential?: boolean; sideEffect?: boolean; }[]; category: string; channelAudiences: ("customer-facing" | "internal-support" | "mixed")[]; coverage: { evidence: { label: string; url?: string; }[]; notes: string[]; scope: | "support-workflow-subset" | "provider-api-subset" | "connector-required" | "local-protocol" | "full-provider-api"; }; credentialRequirements: { description?: string; id: string; label?: string; metadata?: Record\<string, unknown>; required: boolean; scopes: string[]; }[]; directions: ( | "receive-only" | "send-only" | "inbound-only" | "outbound-only" | "bidirectional")[]; id: string; limitations: string[]; maintainers: { name: string; type: "community" | "official" | "unknown" | "partner"; url?: string; }[]; metadata?: Record\<string, unknown>; name: string; operations: { alias: string; audience?: "customer-facing" | "internal-support" | "mixed"; audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension: boolean; externallyVisible?: boolean; inputSchema?: unknown; inputSchemaName?: string; inputSchemaRef?: string; label?: string; metadata?: Record\<string, unknown>; outputSchema?: unknown; outputSchemaName?: string; outputSchemaRef?: string; providerObject?: string; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; providerOperation?: string; requiredPolicyIds?: string[]; requiresApproval?: boolean; requiresCredential?: boolean; sideEffect?: boolean; }[]; packageName: string; privacyNotes: string[]; provider: string; trustLevel: "community" | "official" | "verified" | "experimental"; } & { capabilities: readonly [{ audiences: readonly ["customer-facing", "internal-support", "mixed"]; capability: "handoff"; changesWorkflow: true; description: "Creates or updates SAP Service Cloud ServiceRequestCollection records through the built-in OData adapter or host provider client as SDK-configured support handoff targets."; exposesSensitiveData: true; label: "Create SAP Service Cloud handoff"; providerObjects: readonly [{ kind: "sapServiceRequest"; label: "SAP Service Request"; schemaName: "ServiceRequestCollection"; }]; requiresCredential: true; sideEffect: true; }, { audiences: readonly ["customer-facing", "internal-support", "mixed"]; capability: "create-provider-object"; changesWorkflow: true; description: "Creates SAP Service Cloud ServiceRequestCollection tickets through the built-in OData adapter or host provider client from SDK-user-selected workflows."; exposesSensitiveData: true; label: "Create SAP service requests"; providerObjects: readonly [{ kind: "sapServiceRequest"; label: "SAP Service Request"; schemaName: "ServiceRequestCollection"; }]; requiresCredential: true; sideEffect: true; }, { audiences: readonly ["customer-facing", "internal-support", "mixed"]; capability: "read-provider-object"; description: "Reads SAP Service Cloud service requests by ObjectID."; exposesSensitiveData: true; label: "Read SAP service requests"; providerObjects: readonly [{ kind: "sapServiceRequest"; label: "SAP Service Request"; schemaName: "ServiceRequestCollection"; }]; requiresCredential: true; }, { audiences: readonly ["internal-support", "mixed"]; capability: "update-provider-object"; changesWorkflow: true; description: "Updates SAP Service Cloud ticket fields, statuses, priorities, or SDK-user custom fields through the built-in OData adapter or host provider client."; exposesSensitiveData: true; label: "Update SAP service requests"; providerObjects: readonly [{ kind: "sapServiceRequest"; label: "SAP Service Request"; schemaName: "ServiceRequestCollection"; }]; requiresCredential: true; sideEffect: true; }, { audiences: readonly ["customer-facing", "internal-support", "mixed"]; capability: "search-provider-object"; description: "Queries SAP Service Cloud ServiceRequestCollection with SDK-user-supplied OData query controls."; exposesSensitiveData: true; label: "Search SAP service requests"; providerObjects: readonly [{ kind: "sapServiceRequest"; label: "SAP Service Request"; schemaName: "ServiceRequestCollection"; }]; requiresCredential: true; }]; category: "ticketing"; channelAudiences: readonly ["customer-facing", "internal-support", "mixed"]; coverage: { evidence: readonly [{ label: "SAP Cloud for Customer OData API"; url: "https://help.sap.com/docs/sap-cloud-for-customer/odata-services/sap-cloud-for-customer-odata-api"; }, { label: "SAP Cloud for Customer OData API overview"; url: "https://help.sap.com/docs/sap-cloud-for-customer/1364b70b9cbb417ea5e2d80e966d4f49/6c0a463cc9ca450cbd01a9a5057ce682.html"; }, { label: "SAP Cloud for Customer OData API v2 Reference"; url: "https://help.sap.com/docs/r/1364b70b9cbb417ea5e2d80e966d4f49/LATEST/en-US/6cb5cd1ebe1c49d8b99c22afa29aa5d4.html"; }, { label: "SAP Cloud for Customer OData Services PDF"; url: "https://help.sap.com/doc/77979cd206da4b7f9bd264b390d373fc/CLOUD/en-US/OData_Services.pdf"; }]; notes: readonly ["Runtime coverage uses the built-in SAP Service Cloud OData adapter backed by the official SAP Cloud SDK HTTP client for selected ServiceRequestCollection create, read by ObjectID, update, search, and readiness workflows when baseUrl plus access credentials are provided.", "A host-injected SapServiceCloudTicketingProviderClient remains available as an override for SDK-user-owned generated clients, destination handling, authentication, retries, or endpoint policy.", "This is not full SAP Service Cloud API coverage; notes, descriptions, attachments, involved parties, service categories, code-list discovery, custom OData services, communication arrangements, workflow actions, v2 migration policy, and broader SAP Cloud for Customer APIs remain outside this adapter."]; scope: "support-workflow-subset"; }; credentialRequirements: readonly [{ description: "Optional SapServiceCloudTicketingProviderClient override that encapsulates SAP Service Cloud tenant routing, generated SDK/provider runtime, authentication, retries, and endpoint policy."; id: "sap-service-cloud-provider-client"; label: "Optional SAP Service Cloud provider client override"; metadata: { credentialOwnership: "host-managed-override"; defaultClientPolicy: "built-in-odata-adapter-backed-by-sap-cloud-sdk-http-client"; injectionInterface: "SapServiceCloudTicketingProviderClient"; }; required: false; }, { description: "SAP Service Cloud tenant base URL used by the built-in OData adapter, or supplied by a host provider client override."; id: "sap-service-cloud-instance"; label: "SAP Service Cloud base URL"; metadata: { requiredWhen: "built-in-odata-adapter-backed-by-sap-cloud-sdk-http-client"; }; required: false; }, { description: "Server-side SAP Service Cloud access supplied as accessToken, basic auth, auth headers, or encapsulated in a host provider client override."; id: "sap-service-cloud-api-access"; label: "SAP Service Cloud API access"; metadata: { privilegeGuidance: "These strings are Cognidesk capability labels for ServiceRequestCollection access, not official SAP OAuth scope names. SAP authorization depends on the host client's communication arrangements, destination/auth configuration, business user permissions, and exposed services."; requiredWhen: "built-in-odata-adapter-backed-by-sap-cloud-sdk-http-client"; scopeKind: "internal-capability-labels"; }; required: false; scopes: readonly ["ServiceRequestCollection:read", "ServiceRequestCollection:write"]; }]; directions: readonly ["bidirectional"]; id: "ticketing.sap-service-cloud"; limitations: readonly ["SAP tenant exposure, communication arrangements, required fields, statuses, code lists, workflow rules, and extensions are SDK-user host-client configuration.", "The built-in adapter covers selected ServiceRequestCollection OData operations only; hosts can still inject a SapServiceCloudTicketingProviderClient for generated clients, destinations, custom auth, CSRF preflights, or retry policy.", "SDK users own escalation timing, customer matching, field mapping, reply visibility, retention, and notification policy before calling SAP APIs."]; maintainers: readonly [{ name: "Cognidesk"; type: "official"; }]; metadata: { channelCoverage: { attachmentFolder: "provider-supported-not-typed"; csrfToken: "typed-optional-header-supported-host-owned-prefetch"; notesInvolvedPartiesCodeLists: "provider-supported-not-typed"; readinessSearch: "typed-odata-adapter-readiness"; serviceRequests: "typed-odata-adapter-create-read-update-search"; workflowRulesCommunicationArrangements: "not-covered"; }; checkedProviderApiCoverage: { checkedFamilyCount: 3; coverageArtifact: "docs/provider-coverage/sap-service-cloud-checked-c4c-odata-2026-06-18.inventory.json"; gapFamilyCount: 1; implementedFamilyCount: 2; implementedOperationCount: 4; sourceKind: "checked-endpoint-family-inventory"; verifiedAt: "2026-06-18"; }; checkedProviderSdk: { candidates: readonly [{ checkedVersion: "4.7.0"; license: "Apache-2.0"; package: "@sap-cloud-sdk/http-client"; reason: "Official SAP Cloud SDK HTTP client provides executeHttpRequest and typed request/response surfaces suitable for the package's existing ServiceRequestCollection OData mapping."; result: "accepted-runtime-http-client"; }, { checkedVersion: "4.7.0"; license: "Apache-2.0"; package: "@sap-cloud-sdk/odata-v2"; reason: "Official generic SAP Cloud SDK OData v2 runtime; requires generated service client metadata and host destination/auth setup rather than providing a SAP Service Cloud ServiceRequestCollection client."; result: "not-generated-client-in-this-package"; }, { checkedVersion: "4.7.0"; license: "Apache-2.0"; package: "@sap-cloud-sdk/generator"; reason: "Official generator for EDMX-based clients; this package does not own or redistribute tenant/version-specific SAP Service Cloud metadata."; result: "not-runtime-client"; }]; checkedAt: "2026-06-25"; reason: "SAP Cloud SDK for JavaScript is official and current. No generated ServiceRequestCollection client is bundled here, so this package owns the typed OData path/body mapping while delegating runtime HTTP execution to @sap-cloud-sdk/http-client."; sources: readonly ["https://sap.github.io/cloud-sdk/docs/js/overview", "https://sap.github.io/cloud-sdk/docs/js/features/odata/overview", "https://sap.github.io/cloud-sdk/docs/js/features/odata/generate-client", "https://www.npmjs.com/package/@sap-cloud-sdk/http-client", "https://www.npmjs.com/package/@sap-cloud-sdk/odata-v2"]; verdict: "sdk-backed-generic-odata-http-client"; }; implementation: { adapterKind: "sap-cloud-sdk-http-client-odata-adapter"; defaultFetchClient: "none-provider-client-override-only"; defaultHttpClient: "executeHttpRequest"; manifestImport: "no-client-initialization"; packageOwnedODataMapping: true; packageOwnedRestClient: false; providerClientInterface: "SapServiceCloudTicketingProviderClient"; providerClientOverride: true; providerSdkPackage: "@sap-cloud-sdk/http-client"; strategy: "provider-sdk-http-client-odata-adapter"; }; implementationStrategy: "sap-cloud-sdk-http-client-odata-adapter"; providerClient: { defaultClient: "built-in-odata-adapter-backed-by-sap-cloud-sdk-http-client"; importPolicy: "optional-host-override"; injectionPolicy: "optional-runtime-override"; interface: "SapServiceCloudTicketingProviderClient"; }; providerRestAdapterSupportSurface: { adapterKind: "sap-cloud-sdk-http-client-odata-adapter"; operations: readonly [{ alias: "ticket.create"; providerClientMethod: "createServiceRequest"; }, { alias: "ticket.read"; providerClientMethod: "getServiceRequest"; }, { alias: "ticket.update"; providerClientMethod: "updateServiceRequest"; }, { alias: "ticket.search"; providerClientMethod: "searchServiceRequests"; }]; source: "Built-in SAP Service Cloud OData mapping executed through SAP Cloud SDK HTTP client"; }; providerSdkRuntime: { checkedVersion: "4.7.0"; compatibilityFallback: "Explicit host fetch or retry options keep the legacy integration-kit JSON transport for callers that require fetch injection or integration-kit retry semantics."; defaultRuntime: "SAP Cloud SDK HTTP client executes the package-owned ServiceRequestCollection OData mapping."; importedRuntimeFunction: "executeHttpRequest"; importedRuntimeTypes: readonly ["HttpRequestConfig", "HttpResponse", "Method"]; license: "Apache-2.0"; package: "@sap-cloud-sdk/http-client"; }; }; name: "SAP Service Cloud"; operations: readonly [{ alias: "ticket.create"; audiences: readonly ["customer-facing", "internal-support", "mixed"]; capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "sapServiceRequest"; requiresCredential: true; sideEffect: true; }, { alias: "ticket.read"; audiences: readonly ["customer-facing", "internal-support", "mixed"]; capability: "read-provider-object"; exposesSensitiveData: true; providerObject: "sapServiceRequest"; requiresCredential: true; }, { alias: "ticket.update"; audiences: readonly ["internal-support", "mixed"]; capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "sapServiceRequest"; requiresCredential: true; sideEffect: true; }, { alias: "ticket.search"; audiences: readonly ["customer-facing", "internal-support", "mixed"]; capability: "search-provider-object"; exposesSensitiveData: true; providerObject: "sapServiceRequest"; requiresCredential: true; }]; packageName: "@cognidesk/integration-ticketing-sap-service-cloud"; privacyNotes: readonly ["SAP service requests can contain customer account/contact details, ticket descriptions, categories, priorities, involved parties, notes, and internal routing data.", "SAP API credentials stay server-side and Studio receives only readiness and scope status."]; provider: "sap-service-cloud"; trustLevel: "official"; }, unknown, { ticket.create: (input) => Promise\<SapServiceRequestResource>; ticket.read: (input) => Promise\<SapServiceRequestResource>; ticket.search: (input?) => Promise\<SapServiceSearchResult\<SapServiceRequestResource>>; ticket.update: (input) => Promise\<SapServiceRequestResource>; }>


createSapServiceCloudTicketingLiveChecks()

function createSapServiceCloudTicketingLiveChecks(options?): {
  description: string;
  id: string;
  requiredCredentialIds: string[];
  run: Promise<{
     details: {
        count: string;
        sampleCount: number;
     };
  }>;
}[];

Parameters

Parameter Type
options? SapServiceCloudLiveCheckOptions

Returns

{ description: string; id: string; requiredCredentialIds: string[]; run: Promise\<{ details: { count: string; sampleCount: number; }; }>; }[]


createSapServiceCloudTicketingOperationHandlers()

function createSapServiceCloudTicketingOperationHandlers(client): {
  ticket.create: (input) => Promise<SapServiceRequestResource>;
  ticket.read: (input) => Promise<SapServiceRequestResource>;
  ticket.search: (input?) => Promise<SapServiceSearchResult<SapServiceRequestResource>>;
  ticket.update: (input) => Promise<SapServiceRequestResource>;
};

Parameters

Parameter Type
client SapServiceCloudTicketingProviderClient

Returns

{
  ticket.create: (input) => Promise<SapServiceRequestResource>;
  ticket.read: (input) => Promise<SapServiceRequestResource>;
  ticket.search: (input?) => Promise<SapServiceSearchResult<SapServiceRequestResource>>;
  ticket.update: (input) => Promise<SapServiceRequestResource>;
}
Name Type
ticket.create() (input) => Promise\<SapServiceRequestResource>
ticket.read() (input) => Promise\<SapServiceRequestResource>
ticket.search() (input?) => Promise\<SapServiceSearchResult\<SapServiceRequestResource>>
ticket.update() (input) => Promise\<SapServiceRequestResource>

createUnconfiguredSapServiceCloudProviderClient()

function createUnconfiguredSapServiceCloudProviderClient(): SapServiceCloudTicketingProviderClient;

Returns

SapServiceCloudTicketingProviderClient


sapServiceCloudTicketingCredentialStatuses()

function sapServiceCloudTicketingCredentialStatuses(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];

Parameters

Parameter Type
input SapServiceCloudCredentialStatusInput

Returns

{ expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes?: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]

References

sapServiceCloudTicketingProviderManifest

Re-exports sapServiceCloudTicketingProviderManifest