mirror of
https://github.com/LukeHagar/developer.sailpoint.com.git
synced 2025-12-07 20:37:46 +00:00
96 lines
4.3 KiB
TypeScript
96 lines
4.3 KiB
TypeScript
import { createAuthentication } from "docusaurus-plugin-openapi-docs/src/markdown/createAuthentication";
|
|
import { createAuthorization } from "docusaurus-plugin-openapi-docs/src/markdown/createAuthorization";
|
|
import { createCallbacks } from "docusaurus-plugin-openapi-docs/src/markdown/createCallbacks";
|
|
import { createContactInfo } from "docusaurus-plugin-openapi-docs/src/markdown/createContactInfo";
|
|
import { createDeprecationNotice } from "docusaurus-plugin-openapi-docs/src/markdown/createDeprecationNotice";
|
|
import { createDescription } from "docusaurus-plugin-openapi-docs/src/markdown/createDescription";
|
|
import { createDownload } from "docusaurus-plugin-openapi-docs/src/markdown/createDownload";
|
|
import { createHeading } from "docusaurus-plugin-openapi-docs/src/markdown/createHeading";
|
|
import { createLicense } from "docusaurus-plugin-openapi-docs/src/markdown/createLicense";
|
|
import { createLogo } from "docusaurus-plugin-openapi-docs/src/markdown/createLogo";
|
|
import { createMethodEndpoint } from "docusaurus-plugin-openapi-docs/src/markdown/createMethodEndpoint";
|
|
import { createParamsDetails } from "docusaurus-plugin-openapi-docs/src/markdown/createParamsDetails";
|
|
import { createRequestBodyDetails } from "docusaurus-plugin-openapi-docs/src/markdown/createRequestBodyDetails";
|
|
import { createRequestHeader } from "docusaurus-plugin-openapi-docs/src/markdown/createRequestHeader";
|
|
import { createNodes } from "docusaurus-plugin-openapi-docs/src/markdown/createSchema";
|
|
import { createStatusCodes } from "docusaurus-plugin-openapi-docs/src/markdown/createStatusCodes";
|
|
import { createTermsOfService } from "docusaurus-plugin-openapi-docs/src/markdown/createTermsOfService";
|
|
import { createVendorExtensions } from "docusaurus-plugin-openapi-docs/src/markdown/createVendorExtensions";
|
|
import { createVersionBadge } from "docusaurus-plugin-openapi-docs/src/markdown/createVersionBadge";
|
|
import { create, greaterThan, lessThan, render } from "docusaurus-plugin-openapi-docs/src/markdown/utils";
|
|
import {
|
|
ContactObject,
|
|
LicenseObject,
|
|
MediaTypeObject,
|
|
SecuritySchemeObject,
|
|
} from "docusaurus-plugin-openapi-docs/src/openapi/types";
|
|
import {
|
|
ApiPageMetadata,
|
|
InfoPageMetadata,
|
|
SchemaPageMetadata,
|
|
TagPageMetadata,
|
|
} from "docusaurus-plugin-openapi-docs/src/types";
|
|
|
|
interface RequestBodyProps {
|
|
title: string;
|
|
body: {
|
|
content?: {
|
|
[key: string]: MediaTypeObject;
|
|
};
|
|
description?: string;
|
|
required?: boolean;
|
|
};
|
|
}
|
|
|
|
export function createApiPageMD({
|
|
title,
|
|
api: {
|
|
deprecated,
|
|
"x-deprecated-description": deprecatedDescription,
|
|
description,
|
|
method,
|
|
path,
|
|
extensions,
|
|
parameters,
|
|
requestBody,
|
|
responses,
|
|
callbacks,
|
|
},
|
|
infoPath,
|
|
frontMatter,
|
|
}: ApiPageMetadata) {
|
|
return render([
|
|
`import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";\n`,
|
|
`import ParamsDetails from "@theme/ParamsDetails";\n`,
|
|
`import RequestSchema from "@theme/RequestSchema";\n`,
|
|
`import StatusCodes from "@theme/StatusCodes";\n`,
|
|
`import OperationTabs from "@theme/OperationTabs";\n`,
|
|
`import TabItem from "@theme/TabItem";\n`,
|
|
`import Heading from "@theme/Heading";\n\n`,
|
|
createHeading(title),
|
|
createMethodEndpoint(method, path),
|
|
infoPath && createAuthorization(infoPath),
|
|
frontMatter.show_extensions
|
|
? createVendorExtensions(extensions)
|
|
: undefined,
|
|
createExperimentalNotice(parameters),
|
|
createDeprecationNotice({ deprecated, description: deprecatedDescription }),
|
|
createDescription(description),
|
|
requestBody || parameters ? createRequestHeader("Request") : undefined,
|
|
createParamsDetails({ parameters }),
|
|
createRequestBodyDetails({
|
|
title: "Body",
|
|
body: requestBody,
|
|
} as RequestBodyProps),
|
|
createStatusCodes({ responses }),
|
|
createCallbacks({ callbacks }),
|
|
]);
|
|
}
|
|
|
|
function createExperimentalNotice(parameters){
|
|
if (parameters && parameters.some(element => element.in === 'header' && element.name === 'X-SailPoint-Experimental')) {
|
|
return ":::warning experimental\n\nThis API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to `true` to use this endpoint.\n\n:::\n\n";
|
|
}
|
|
// Return an empty string if the condition is not met
|
|
return "";
|
|
} |