From ad869a2563d701debf61fc98f03c048c2bd1abae Mon Sep 17 00:00:00 2001
From: Sufia Ashraf 
Date: Tue, 8 Oct 2024 13:09:03 +0530
Subject: [PATCH 01/39] Adding Developer Docs for Watermark and Checker
---
 .../howtos/pdf-watermark-api.md               | 670 +++++++++++++++++-
 1 file changed, 660 insertions(+), 10 deletions(-)
diff --git a/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md b/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
index 17e9a87a5..cf5e7f6b3 100644
--- a/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
+++ b/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
@@ -1,9 +1,6 @@
 ---
 title: PDF Watermark | How Tos | PDF Services API | Adobe PDF Services
 ---
-
-
-PDF Watermark is currently accessible through the REST API only.
 
 # PDF Watermark
 
@@ -43,16 +40,669 @@ The page ranges are specified as an array of objects whose length cannot exceed
 
 See our public API Reference for [PDF Watermark API](../../../apis/#tag/PDF-Watermark).
 
-## Apply Watermark on specified pages
+## Apply Watermark with default appearance on PDF
 
-The sample below performs watermark operation applying watermark in foreground on specified pages of a given PDF.
+The sample below performs watermark operation applying watermark in foreground on of a given PDF with default appearance.
 
 Please refer the [API usage guide](../gettingstarted.md) to understand how to use our APIs.
 
-
+ 
+
+#### Java
+
+```javascript
+// Get the samples from https://www.adobe.com/go/pdftoolsapi_java_samples
+// Run the sample:
+// mvn -f pom.xml exec:java -Dexec.mainClass=com.adobe.pdfservices.operation.samples.pdfwatermark.PDFWatermark
+
+public class PDFWatermark {
+
+    // Initialize the logger
+    private static final Logger LOGGER = LoggerFactory.getLogger(PDFWatermark.class);
+
+    public static void main(String[] args) {
+
+        try (
+            InputStream sourceFileInputStream = Files.newInputStream(new File("src/main/resources/pdfWatermarkInput.pdf").toPath());
+            InputStream watermarkFileInputStream = Files.newInputStream(new File("src/main/resources/watermark.pdf").toPath())) {
+            
+            // Initial setup, create credentials instance
+            Credentials credentials = new ServicePrincipalCredentials(System.getenv("PDF_SERVICES_CLIENT_ID"), System.getenv("PDF_SERVICES_CLIENT_SECRET"));
+        
+            // Creates a PDF Services instance
+            PDFServices pdfServices = new PDFServices(credentials);
+        
+            // Creates an asset(s) from source file(s) and upload
+            Asset inputDocumentAsset = pdfServices.upload(sourceFileInputStream, PDFServicesMediaType.PDF.getMediaType());
+            Asset watermarkDocumentAsset = pdfServices.upload(watermarkFileInputStream, PDFServicesMediaType.PDF.getMediaType());
+        
+            // Creates a new job instance
+            PDFWatermarkJob pdfWatermarkJob = new PDFWatermarkJob(inputDocumentAsset, watermarkDocumentAsset);
+        
+            // Submit the job and gets the job result
+            String location = pdfServices.submit(pdfWatermarkJob);
+            PDFServicesResponse pdfServicesResponse = pdfServices.getJobResult(location, PDFWatermarkResult.class);
+        
+            // Get content from the resulting asset(s)
+            Asset resultAsset = pdfServicesResponse.getResult().getAsset();
+            StreamAsset streamAsset = pdfServices.getContent(resultAsset);
+
+            // Creates an output stream and copy stream asset's content to it
+            Files.createDirectories(Paths.get("output/"));
+            OutputStream outputStream = Files.newOutputStream(new File("output/pdfWatermarkOutput.pdf").toPath());
+            LOGGER.info("Saving asset at output/pdfWatermarkOutput.pdf");
+            IOUtils.copy(streamAsset.getInputStream(), outputStream);
+            outputStream.close();
+        } catch (ServiceApiException | IOException | SDKException | ServiceUsageException ex) {
+            LOGGER.error("Exception encountered while executing operation", ex);
+        }
+    }
+}
+```
+
+#### .NET
+
+```javascript
+// Get the samples from https://www.adobe.com/go/pdftoolsapi_net_samples
+// Run the sample:
+// cd PDFWatermark/
+// dotnet run PDFWatermark.csproj
+
+namespace PDFWatermark
+{
+    class Program
+    {
+        // Initialize the logger.
+        private static readonly ILog log = LogManager.GetLogger(typeof(Program));
+
+        static void Main()
+        {
+            //Configure the logging
+            ConfigureLogging();
+
+            try
+            {
+                // Initial setup, create credentials instance
+                ICredentials credentials = new ServicePrincipalCredentials(
+                    Environment.GetEnvironmentVariable("PDF_SERVICES_CLIENT_ID"),
+                    Environment.GetEnvironmentVariable("PDF_SERVICES_CLIENT_SECRET"));
+
+                // Creates a PDF Services instance
+                PDFServices pdfServices = new PDFServices(credentials);
+
+                // Creates an asset(s) from source file(s) and upload
+                Stream sourceFileInputStream = File.OpenRead(@"pdfWatermarkInput.pdf");
+                IAsset inputDocumentAsset = pdfServices.Upload(sourceFileInputStream, PDFServicesMediaType.PDF.GetMIMETypeValue());
+
+                // Creates a watermark asset from source file(s) and upload
+                Stream watermarkFileInputStream = File.OpenRead(@"watermark.pdf");
+                IAsset watermarkDocumentAsset = pdfServices.Upload(watermarkFileInputStream, PDFServicesMediaType.PDF.GetMIMETypeValue());
+
+                // Submits the job and gets the job result
+                PDFWatermarkJob pdfWatermarkJob = new PDFWatermarkJob(inputDocumentAsset, watermarkDocumentAsset);
+                String location = pdfServices.Submit(pdfWatermarkJob);
+
+                // Get content from the resulting asset(s)
+                PDFServicesResponse pdfServicesResponse =
+                    pdfServices.GetJobResult(location, typeof(PDFWatermarkResult));
+
+                // Creating output streams and copying stream asset's content to it
+                IAsset resultAsset = pdfServicesResponse.Result.Asset;
+                StreamAsset streamAsset = pdfServices.GetContent(resultAsset);
+
+                // Creating output streams and copying stream asset's content to it
+                String outputFilePath = "/output/pdfWatermarkOutput.pdf";
+                new FileInfo(Directory.GetCurrentDirectory() + outputFilePath).Directory.Create();
+                Stream outputStream = File.OpenWrite(Directory.GetCurrentDirectory() + outputFilePath);
+                streamAsset.Stream.CopyTo(outputStream);
+                outputStream.Close();
+            }
+            catch (ServiceUsageException ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+            catch (ServiceApiException ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+            catch (SDKException ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+            catch (IOException ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+            catch (Exception ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+        }
+
+        static void ConfigureLogging()
+        {
+            ILoggerRepository logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
+            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
+        }
+    }
+}
+```
+
+#### Node JS
+
+```javascript
+// Get the samples from http://www.adobe.com/go/pdftoolsapi_node_sample
+// Run the sample:
+// node src/electronicseal/electronic-seal.js
+
+const {
+    ServicePrincipalCredentials,
+    PDFServices,
+    MimeType,
+    PDFWatermarkJob,
+    PDFWatermarkResult,
+    SDKError,
+    ServiceUsageError,
+    ServiceApiError,
+} = require("@dcloud/pdfservices-node-sdk");
+const fs = require("fs");
+
+(async () => {
+    let sourceFileReadStream;
+    let watermarkFileReadStream;
+    try {
+        // Initial setup, create credentials instance
+        const credentials = new ServicePrincipalCredentials({
+            clientId: process.env.PDF_SERVICES_CLIENT_ID,
+            clientSecret: process.env.PDF_SERVICES_CLIENT_SECRET
+        });
+
+        // Creates a PDF Services instance
+        const pdfServices = new PDFServices({credentials});
+
+        // Creates an asset(s) from source file(s) and upload
+        sourceFileReadStream = fs.createReadStream("resources/watermarkPDFInput.pdf");
+        watermarkFileReadStream = fs.createReadStream("resources/watermark.pdf");
+        const [inputAsset, watermarkAsset] = await pdfServices.uploadAssets({
+            streamAssets: [{
+                readStream: sourceFileReadStream,
+                mimeType: MimeType.PDF
+            }, {
+                readStream: watermarkFileReadStream,
+                mimeType: MimeType.PDF
+            }]
+        });
+
+        // Creates a new job instance
+        const job = new PDFWatermarkJob({
+            inputAsset: inputAsset,
+            watermarkAsset: watermarkAsset,
+        });
+
+        // Submit the job and get the job result
+        const pollingURL = await pdfServices.submit({job});
+        const pdfServicesResponse = await pdfServices.getJobResult({
+            pollingURL,
+            resultType: PDFWatermarkResult
+        });
+
+        // Get content from the resulting asset(s)
+        const resultAsset = pdfServicesResponse.result.asset;
+        const streamAsset = await pdfServices.getContent({asset: resultAsset});
+
+        // Creates a write stream and copy stream asset's content to it
+        const outputFilePath = "./pdfWatermarkOutput.pdf";
+        console.log(`Saving asset at ${outputFilePath}`);
+
+        const writeStream = fs.createWriteStream(outputFilePath);
+        streamAsset.readStream.pipe(writeStream);
+    } catch (err) {
+        if (err instanceof SDKError || err instanceof ServiceUsageError || err instanceof ServiceApiError) {
+            console.log("Exception encountered while executing operation", err);
+        } else {
+            console.log("Exception encountered while executing operation", err);
+        }
+    } finally {
+        sourceFileReadStream?.destroy();
+        watermarkFileReadStream?.destroy();
+    }
+})();
+```
+
+#### Python
+
+```javascript
+# Get the samples from https://github.com/adobe/pdfservices-python-sdk-samples
+# Run the sample:
+# python src/watermarkpdf/watermark_pdf.py
+
+# Initialize the logger
+logging.basicConfig(level=logging.INFO)
+
+class PDFWatermark:
+    def __init__(self):
+        try:
+            pdf_file = open("src/resources/watermarkPDFInput.pdf", 'rb')
+            input_stream = pdf_file.read()
+            pdf_file.close()
+            
+            pdf_file = open("src/resources/watermark.pdf", 'rb')
+            watermark_asset = pdf_file.read()
+            pdf_file.close()
+            
+            # Initial setup, create credentials instance
+            credentials = ServicePrincipalCredentials(
+                client_id=os.getenv('PDF_SERVICES_CLIENT_ID'),
+                client_secret=os.getenv('PDF_SERVICES_CLIENT_SECRET'))
+
+            # Creates a PDF Services instance
+            pdf_services = PDFServices(credentials=credentials)
+
+            
+            # Creates an asset(s) from source file(s) and upload
+            input_asset = pdf_services.upload(input_stream=input_stream, mime_type=PDFServicesMediaType.PDF)
+            watermark_asset = pdf_services.upload(input_stream=watermark_asset, mime_type=PDFServicesMediaType.PDF)
+            
+            # Creates a new job instance
+            watermark_job = PDFWatermarkJob(input_asset=input_asset, watermark_asset=watermark_asset)
+            
+            # Submit the job and gets the job result
+            location = pdf_services.submit(watermark_job)
+            pdf_services_response = pdf_services.get_job_result(location, WatermarkResult)
+            
+            # Get content from the resulting asset(s)
+            watermark_result: CloudAsset = pdf_services_response.get_result().get_asset()
+            stream_asset: StreamAsset = pdf_services.get_content(watermark_result)
+
+            # Creates an output stream and copy stream asset's content to it
+
+            output_file_path = 'output/pdfWatermark.pdf'
+            with open(output_file_path, "wb") as file:
+                file.write(stream_asset.get_input_stream())
+
+        except (ServiceApiException, ServiceUsageException, SdkException) as e:
+            logging.exception(f'Exception encountered while executing operation: {e}')
+
+if __name__ == "__main__":
+    PDFWatermark()
+```
+
+#### REST API
+
+```javascript
+curl --location --request POST 'https://pdf-services.adobe.io/operation/addwatermark' \
+--header 'x-api-key: {{Placeholder for client_id}}' \
+--header 'Content-Type: application/json' \
+--header 'Authorization: Bearer {{Placeholder for token}}' \
+--data-raw '{
+    "inputDocumentAssetID": "urn:aaid:AS:UE1:54cbf87f-d7f5-4918-8e4b-9f68",
+    "watermarkDocumentAssetID": "urn:aaid:AS:UE1:54cbf87f-d7f5-4918-8e4b-9f1878678e68"
+}'
+```
+
+## Apply Watermark with customized appearance on PDF
+
+The sample below performs watermark operation applying watermark with customized appearance on a given PDF.
+
+Please refer to the [API usage guide](../api-usage.md) to understand how to use our APIs.
+
+ 
+
+#### Java
+
+```javascript
+// Get the samples from https://github.com/adobe/pdfservices-java-sdk-samples/tree/beta
+// Run the sample:
+// mvn -f pom.xml exec:java -Dexec.mainClass=com.adobe.pdfservices.operation.samples.electronicseal.ElectronicSealWithAppearanceOptions
+
+package com.adobe.pdfservices.operation.samples.pdfwatermark;
+
+public class PDFWatermarkWithOptions {
+
+    // Initialize the logger
+    private static final Logger LOGGER = LoggerFactory.getLogger(PDFWatermarkWithOptions.class);
+
+    public static void main(String[] args) {
+
+        try (
+            InputStream sourceFileInputStream = Files.newInputStream(new File("src/main/resources/pdfWatermarkInput.pdf").toPath());
+            InputStream watermarkFileInputStream = Files.newInputStream(new File("src/main/resources/watermark.pdf").toPath())) {
+        
+            // Initial setup, create credentials instance
+            Credentials credentials = new ServicePrincipalCredentials(System.getenv("PDF_SERVICES_CLIENT_ID"), System.getenv("PDF_SERVICES_CLIENT_SECRET"));
+        
+            // Creates a PDF Services instance
+            PDFServices pdfServices = new PDFServices(credentials);
+        
+            // Creates an asset(s) from source file(s) and upload
+            Asset inputDocumentAsset = pdfServices.upload(sourceFileInputStream, PDFServicesMediaType.PDF.getMediaType());
+            Asset watermarkDocumentAsset = pdfServices.upload(watermarkFileInputStream, PDFServicesMediaType.PDF.getMediaType());
+        
+            // Creates a new job instance
+            PDFServices pdfServices = new PDFServices(credentials);
+        
+            // Creates an asset(s) from source file(s) and upload
+            Asset inputDocumentAsset = pdfServices.upload(inputStream1, PDFServicesMediaType.PDF.getMediaType());
+            Asset watermarkDocumentAsset = pdfServices.upload(inputStream2, PDFServicesMediaType.PDF.getMediaType());
+        
+            // Watermark pages of the document (as specified by PageRanges).
+            PageRanges pageRangeForPDFWatermark = getPageRangeForPDFWatermark();
+        
+            // Creates PDF Watermark appearance option
+            WatermarkAppearance watermarkAppearance = new WatermarkAppearance();
+            watermarkAppearance.setOpacity(50);
+        
+            // Create parameters for the job
+            PDFWatermarkParams pdfWatermarkParams = PDFWatermarkParams.pdfWatermarkParamsBuilder()
+                .withPageRanges(pageRangeForPDFWatermark)
+                .withWatermarkAppearance(watermarkAppearance)
+                .build();
+        
+            // Creates a new job instance
+            PDFWatermarkJob pdfWatermarkJob = new PDFWatermarkJob(inputDocumentAsset, watermarkDocumentAsset)
+                .setParams(pdfWatermarkParams);
+        
+        
+            // Submit the job and gets the job result
+            String location = pdfServices.submit(pdfWatermarkJob);
+            PDFServicesResponse pdfServicesResponse = pdfServices.getJobResult(location, PDFWatermarkResult.class);
+        
+            // Get content from the resulting asset(s)
+            Asset resultAsset = pdfServicesResponse.getResult().getAsset();
+            StreamAsset streamAsset = pdfServices.getContent(resultAsset);
+
+            // Creates an output stream and copy stream asset's content to it
+            Files.createDirectories(Paths.get("output/"));
+            OutputStream outputStream = Files.newOutputStream(new File("output/pdfWatermarkWithOptionsOutput.pdf").toPath());
+            LOGGER.info("Saving asset at output/pdfWatermarkWithOptionsOutput.pdf");
+            IOUtils.copy(streamAsset.getInputStream(), outputStream);
+            outputStream.close();
+        } catch (ServiceApiException | IOException | SDKException | ServiceUsageException ex) {
+            LOGGER.error("Exception encountered while executing operation", ex);
+        }
+    }
+}
+```
+
+#### .NET
+
+```javascript
+// Get the samples from https://www.adobe.com/go/pdftoolsapi_net_samples
+// Run the sample:
+// cd PDFWatermark/
+// dotnet run PDFWatermark.csproj
+
+namespace PDFWatermark
+{
+    class Program
+    {
+        // Initialize the logger.
+        private static readonly ILog log = LogManager.GetLogger(typeof(Program));
+
+        static void Main()
+        {
+            //Configure the logging
+            ConfigureLogging();
+
+            try
+            {
+                // Initial setup, create credentials instance
+                ICredentials credentials = new ServicePrincipalCredentials(
+                    Environment.GetEnvironmentVariable("PDF_SERVICES_CLIENT_ID"),
+                    Environment.GetEnvironmentVariable("PDF_SERVICES_CLIENT_SECRET"));
+
+                // Creates a PDF Services instance
+                PDFServices pdfServices = new PDFServices(credentials);
+
+                // Creates an asset(s) from source file(s) and upload
+                Stream sourceFileInputStream = File.OpenRead(@"pdfWatermarkInput.pdf");
+                IAsset inputDocumentAsset = pdfServices.Upload(sourceFileInputStream, PDFServicesMediaType.PDF.GetMIMETypeValue());
+
+                // Creates a watermark asset from source file(s) and upload
+                Stream watermarkFileInputStream = File.OpenRead(@"watermark.pdf");
+                IAsset watermarkDocumentAsset = pdfServices.Upload(watermarkFileInputStream, PDFServicesMediaType.PDF.GetMIMETypeValue());
+
+                // Watermark pages of the document
+                PageRanges pageRangeForPDFWatermark = new PageRanges();
+                
+                // Add page 1
+                pageRangeForPDFWatermark.AddSinglePage(1);
+                
+                // Add pages 3 to 4
+                pageRangeForPDFWatermark.AddRange(3, 4);
+                
+                // Creates PDF Watermark appearance option
+                WatermarkAppearance watermarkAppearance = new WatermarkAppearance();
+                watermarkAppearance.SetOpacity(50);
+
+                // Create parameters for the job
+                PDFWatermarkParams pdfWatermarkParams = PDFWatermarkParams.PDFWatermarkParamsBuilder()
+                                                            .WithPageRanges(pageRangesForPDFWatermark)
+                                                            .WithWatermarkAppearance(watermarkAppearance).Build();
+
+                // Submits the job and gets the job result
+                PDFWatermarkJob pdfWatermarkJob = new PDFWatermarkJob(inputDocumentAsset, watermarkDocumentAsset).SetParams(pdfWatermarkParams);
+                String location = pdfServices.Submit(pdfWatermarkJob);
+
+                // Get content from the resulting asset(s)
+                PDFServicesResponse pdfServicesResponse =
+                    pdfServices.GetJobResult(location, typeof(PDFWatermarkResult));
+
+                // Creating output streams and copying stream asset's content to it
+                IAsset resultAsset = pdfServicesResponse.Result.Asset;
+                StreamAsset streamAsset = pdfServices.GetContent(resultAsset);
+
+                // Creating output streams and copying stream asset's content to it
+                String outputFilePath = "/output/pdfWatermarkWithOptionsOutput.pdf";
+                new FileInfo(Directory.GetCurrentDirectory() + outputFilePath).Directory.Create();
+                Stream outputStream = File.OpenWrite(Directory.GetCurrentDirectory() + outputFilePath);
+                streamAsset.Stream.CopyTo(outputStream);
+                outputStream.Close();
+            }
+            catch (ServiceUsageException ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+            catch (ServiceApiException ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+            catch (SDKException ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+            catch (IOException ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+            catch (Exception ex)
+            {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+        }
+
+        static void ConfigureLogging()
+        {
+            ILoggerRepository logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
+            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
+        }
+    }
+}
+```
+
+#### Node JS
+
+```javascript
+// Get the samples from http://www.adobe.com/go/pdftoolsapi_node_sample
+// Run the sample:
+// node src/electronicseal/electronic-seal.js
+
+const {
+    ServicePrincipalCredentials,
+    PDFServices,
+    MimeType,
+    PDFWatermarkJob,
+    PDFWatermarkResult,
+    SDKError,
+    ServiceUsageError,
+    ServiceApiError,
+} = require("@dcloud/pdfservices-node-sdk");
+const fs = require("fs");
+
+(async () => {
+    let sourceFileReadStream;
+    let watermarkFileReadStream;
+    try {
+        // Initial setup, create credentials instance
+        const credentials = new ServicePrincipalCredentials({
+            clientId: process.env.PDF_SERVICES_CLIENT_ID,
+            clientSecret: process.env.PDF_SERVICES_CLIENT_SECRET
+        });
+
+        // Creates a PDF Services instance
+        const pdfServices = new PDFServices({credentials});
+
+        // Creates an asset(s) from source file(s) and upload
+        sourceFileReadStream = fs.createReadStream("resources/watermarkPDFInput.pdf");
+        watermarkFileReadStream = fs.createReadStream("resources/watermark.pdf");
+        
+        const [inputAsset, watermarkAsset] = await pdfServices.uploadAssets({
+            streamAssets: [{
+                readStream: sourceFileReadStream,
+                mimeType: MimeType.PDF
+            }, {
+                readStream: waterMarkReadStream,
+                mimeType: MimeType.PDF
+            }]
+        });
+        
+        const pageRangesForWatermark = new PageRanges();
+        
+        // Add page 1.
+        pageRangesForWatermark.addSinglePage(1);
+        
+        // Add pages 3 to 4.
+        pageRangesForWatermark.addRange(3, 4);
+        
+        const watermarkAppearance = new WatermarkAppearance({
+            appearOnForeground: false,
+            opacity: 50,
+        });
+
+        // Create parameters for the job
+        const pdfWatermarkParams = new PDFWatermarkParams({
+            watermarkAppearance: watermarkAppearance,
+            pageRanges: pageRangesForWatermark
+        })
+
+        // Creates a new job instance
+        const job = new PDFWatermarkJob({
+            inputAsset: inputAsset,
+            watermarkAsset: watermarkAsset,
+            params: pdfWatermarkParams
+        });
+
+        // Submit the job and get the job result
+        const pollingURL = await pdfServices.submit({job});
+        const pdfServicesResponse = await pdfServices.getJobResult({
+            pollingURL,
+            resultType: PDFWatermarkResult
+        });
+
+        // Get content from the resulting asset(s)
+        const resultAsset = pdfServicesResponse.result.asset;
+        const streamAsset = await pdfServices.getContent({asset: resultAsset});
+
+        // Creates a write stream and copy stream asset's content to it
+        const outputFilePath = "./pdfWatermarkOutput.pdf";
+        console.log(`Saving asset at ${outputFilePath}`);
+
+        const writeStream = fs.createWriteStream(outputFilePath);
+        streamAsset.readStream.pipe(writeStream);
+    } catch (err) {
+        if (err instanceof SDKError || err instanceof ServiceUsageError || err instanceof ServiceApiError) {
+            console.log("Exception encountered while executing operation", err);
+        } else {
+            console.log("Exception encountered while executing operation", err);
+        }
+    } finally {
+        sourceFileReadStream?.destroy();
+        watermarkFileReadStream?.destroy();
+    }
+})();
+```
+
+#### Python
+
+```javascript
+# Get the samples from https://github.com/adobe/pdfservices-python-sdk-samples
+# Run the sample:
+# python src/watermarkpdf/watermark_pdf.py
+
+# Initialize the logger
+logging.basicConfig(level=logging.INFO)
+
+class PDFWatermarkWithOptions:
+    def __init__(self):
+        try:
+            pdf_file = open("src/resources/watermarkPDFInput.pdf", 'rb')
+            input_stream = pdf_file.read()
+            pdf_file.close()
+            
+            pdf_file = open("src/resources/watermark.pdf", 'rb')
+            watermark_asset = pdf_file.read()
+            pdf_file.close()
+            
+            # Initial setup, create credentials instance
+            credentials = ServicePrincipalCredentials(
+                client_id=os.getenv('PDF_SERVICES_CLIENT_ID'),
+                client_secret=os.getenv('PDF_SERVICES_CLIENT_SECRET'))
+
+            # Creates a PDF Services instance
+            pdf_services = PDFServices(credentials=credentials)
+
+
+            # Creates an asset(s) from source file(s) and upload
+            input_asset = pdf_services.upload(input_stream=input_stream, mime_type=PDFServicesMediaType.PDF)
+            watermark_asset = pdf_services.upload(input_stream=watermark_asset, mime_type=PDFServicesMediaType.PDF)
+            
+            watermark_appearance = WatermarkAppearance(appear_on_foreground=False, opacity=80)
+            
+            page_ranges = PageRanges()
+            page_ranges.add_range(1, 2)
+
+            # Create parameters for the job
+            watermark_params = WatermarkParams(page_ranges=page_ranges, watermark_appearance=watermark_appearance)
+            
+            # Creates a new job instance
+            watermark_job = PDFWatermarkJob(input_asset=input_asset, watermark_asset=watermark_asset,
+                watermark_params=watermark_params)
+
+            # Submit the job and gets the job result
+            location = pdf_services.submit(watermark_job)
+            pdf_services_response = pdf_services.get_job_result(location, WatermarkResult)
+            
+            # Get content from the resulting asset(s)
+            watermark_result: CloudAsset = pdf_services_response.get_result().get_asset()
+            stream_asset: StreamAsset = pdf_services.get_content(watermark_result)
+
+            # Creates an output stream and copy stream asset's content to it
+            output_file_path = 'output/pdfWatermark.pdf'
+            with open(output_file_path, "wb") as file:
+                file.write(stream_asset.get_input_stream())
+
+        except (ServiceApiException, ServiceUsageException, SdkException) as e:
+            logging.exception(f'Exception encountered while executing operation: {e}')
+
+if __name__ == "__main__":
+    PDFWatermarkWithOptions()
+```
+
 
 #### REST API
 
+```javascript
+
 ```javascript
 curl --location --request POST 'https://pdf-services.adobe.io/operation/addwatermark' \
 --header 'x-api-key: {{Placeholder for client_id}}' \
@@ -63,12 +713,12 @@ curl --location --request POST 'https://pdf-services.adobe.io/operation/addwater
     "watermarkDocumentAssetID": "urn:aaid:AS:UE1:54cbf87f-d7f5-4918-8e4b-9f1878678e68",
     "pageRanges": [
         {
-            "start": 2,
-            "end": 5
+           "start": 2,
+           "end": 5
         },
         {
-            "start": 8,
-            "end": 10
+           "start": 8,
+           "end": 10
         }
     ],
     "appearance": {
From 78f9d936b2abfe027b9e441b95840f63ca722b6c Mon Sep 17 00:00:00 2001
From: Sufia Ashraf 
Date: Tue, 8 Oct 2024 16:20:41 +0530
Subject: [PATCH 02/39] update
---
 .../howtos/pdf-accessibility-checker-api.md   | 591 +++++++++++++++++-
 .../howtos/pdf-watermark-api.md               |  30 +-
 2 files changed, 604 insertions(+), 17 deletions(-)
diff --git a/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md b/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
index 44f64c7a5..3babdca9b 100644
--- a/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
+++ b/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
@@ -28,11 +28,600 @@ See our public API Reference for the [PDF Accessibility Checker API](../../../ap
 
 ## Check accessibility for specified pages
 
+The sample below performs an accessibility check operation on a given PDF.
+
+Please refer to the [API usage guide](../gettingstarted.md) to understand how to use our APIs.
+
+ 
+
+#### Java
+
+```javascript
+// Get the samples from https://www.adobe.com/go/pdftoolsapi_java_samples
+// Run the sample:
+// mvn -f pom.xml exec:java -Dexec.mainClass=com.adobe.pdfservices.operation.samples.pdfaccessibilitychecker.PDFAccessibilityChecker
+public class PDFAccessibilityChecker {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(PDFAccessibilityChecker.class);
+
+    public static void main(String[] args) {
+
+        try (
+            InputStream inputStream = Files
+            .newInputStream(new File("src/main/resources/accessibilityCheckerInput.pdf")
+                .toPath())) {
+            // Initial setup, create credentials instance
+            Credentials credentials = new ServicePrincipalCredentials(System.getenv("PDF_SERVICES_CLIENT_ID"),
+                System.getenv("PDF_SERVICES_CLIENT_SECRET"));
+        
+            // Creates a PDF Services instance
+            PDFServices pdfServices = new PDFServices(credentials);
+        
+            // Creates an asset(s) from source file(s) and upload
+            Asset asset = pdfServices.upload(inputStream, PDFServicesMediaType.PDF.getMediaType());
+        
+            // Creates a new job instance
+            PDFAccessibilityCheckerJob PDFAccessibilityCheckerJob = new PDFAccessibilityCheckerJob(asset);
+        
+            // Submit the job and gets the job result
+            String location = pdfServices.submit(PDFAccessibilityCheckerJob);
+            PDFServicesResponse pdfServicesResponse = pdfServices
+                .getJobResult(location, PDFAccessibilityCheckerResult.class);
+        
+            // Get content from the resulting asset(s)
+            Asset resultAsset = pdfServicesResponse.getResult().getAsset();
+            StreamAsset streamAsset = pdfServices.getContent(resultAsset);
+        
+            Asset report = pdfServicesResponse.getResult().getReport();
+            StreamAsset streamAssetReport = pdfServices.getContent(report);
+            
+            String outputFilePath = "/output/pdfAccessibilityCheckerOutput.pdf";
+            String outputFilePathReport = "/output/pdfAccessibilityCheckerReport.json";
+            
+            LOGGER.info(String.format("Saving asset at %s", outputFilePath));
+            LOGGER.info(String.format("Saving report at %s", outputFilePathReport));
+            
+            new FileInfo(Directory.GetCurrentDirectory() + outputFilePath).Directory.Create();
+            new FileInfo(Directory.GetCurrentDirectory() + outputFilePathReport).Directory.Create();
+            
+            OutputStream outputStreamReport = Files.newOutputStream(new File(outputFilePath).toPath());
+            OutputStream outputStreamReport = Files.newOutputStream(new File(outputFilePathReport).toPath());
+            
+            IOUtils.copy(streamAsset.getInputStream(), outputStream);
+            IOUtils.copy(streamAssetReport.getInputStream(), outputStreamReport);
+            
+            outputStream.close();
+            outputStreamReport.close();
+        } catch (ServiceApiException | IOException | SDKException | ServiceUsageException ex) {
+            System.out.println("Exception encountered while executing operation: "+ ex);
+        }
+    }
+}
+```
+
+#### .NET
+
+```javascript
+// Get the samples from https://www.adobe.com/go/pdftoolsapi_net_samples
+// Run the sample:
+// cd PDFAccessibilityChecker/
+// dotnet run PDFAccessibilityChecker.csproj
+namespace PDFAccessibilityChecker
+{
+    public class Program {
+        private static readonly ILog log = LogManager.GetLogger(typeof (Program));
+
+        static void Main() {
+            //Configure the logging
+            ConfigureLogging();
+            try {
+                // Initial setup, create credentials instance
+                ICredentials credentials = new ServicePrincipalCredentials(
+                    Environment.GetEnvironmentVariable("PDF_SERVICES_CLIENT_ID"),
+                    Environment.GetEnvironmentVariable("PDF_SERVICES_CLIENT_SECRET"));
+
+                // Creates a PDF Services instance
+                PDFServices pdfServices = new PDFServices(credentials);
+
+                // Creates an asset(s) from source file(s) and upload
+                using Stream inputStream = File.OpenRead(@"checkerPDFInput.pdf");
+                IAsset inputDocumentAsset = pdfServices.Upload(inputStream, PDFServicesMediaType.PDF.GetMIMETypeValue());
+
+                // Create the PDF Accessibility Checker job instance
+                PDFAccessibilityCheckerJob pdfAccessibilityCheckerJob = new PDFAccessibilityCheckerJob(inputDocumentAsset);
+
+                // Submits the job and gets the job result
+                String location = pdfServices.Submit(pdfAccessibilityCheckerJob);
+                
+                // Get content from the resulting asset(s)
+                PDFServicesResponse  pdfServicesResponse = 
+                    pdfServices.GetJobResult  (location, typeof (PDFAccessibilityCheckerResult));
+
+                IAsset outputAsset = pdfServicesResponse.Result.Asset;
+                StreamAsset streamAsset = pdfServices.GetContent(outputAsset);
+
+                IAsset outputReportAsset = pdfServicesResponse.Result.Report;
+                StreamAsset streamReportAsset = pdfServices.GetContent(outputReportAsset);
+
+                // Creating output streams and copying stream asset's content to it
+                String outputPdfPath = '/output/accessibilityChecker.pdf';
+                new FileInfo(Directory.GetCurrentDirectory() + outputPdfPath).Directory.Create();
+                Stream outputStream = File.OpenWrite(Directory.GetCurrentDirectory() + outputPdfPath);
+                streamAsset.Stream.CopyTo(outputStream);
+                outputStream.Close();
+
+                String outputJSONPath = '/output/accessibilityChecker.json';
+                new FileInfo(Directory.GetCurrentDirectory() + outputJSONPath).Directory.Create();
+                Stream outputJSONStream = File.OpenWrite(Directory.GetCurrentDirectory() + outputJSONPath);
+                streamReportAsset.Stream.CopyTo(outputJSONStream);
+                outputStream.Close();
+            } catch (ServiceUsageException ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            } catch (ServiceApiException ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            } catch (SDKException ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            } catch (IOException ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            } catch (Exception ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+        }
+
+        static void ConfigureLogging() {
+            ILoggerRepository
+            logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
+            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
+        }
+    }
+}
+```
+
+#### Node JS
+
+```javascript
+// Get the samples from http://www.adobe.com/go/pdftoolsapi_node_sample
+// Run the sample:
+// node src/pdfaccessibilitychecker/pdf-accessibility-checker.js
+
+const {
+    ServicePrincipalCredentials,
+    PDFServices,
+    MimeType,
+    SDKError,
+    ServiceUsageError,
+    ServiceApiError,
+    PDFAccessibilityCheckerJob,
+    PDFAccessibilityCheckerResult
+} = require("@dcloud/pdfservices-node-sdk");
+const fs = require("fs");
+
+(async () => {
+    let readStream;
+    try {
+        // Initial setup, create credentials instance
+        const credentials = new ServicePrincipalCredentials({
+            clientId: process.env.PDF_SERVICES_CLIENT_ID,
+            clientSecret: process.env.PDF_SERVICES_CLIENT_SECRET
+        });
+
+        // Creates a PDF Services instance
+        const pdfServices = new PDFServices({credentials});
+
+        // Creates an asset(s) from source file(s) and upload
+        readStream = fs.createReadStream("resources/accessibilityCheckerInput.pdf");
+        const inputAsset = await pdfServices.upload({
+            readStream,
+            mimeType: MimeType.PDF
+        });
+
+        // Create a new job instance
+        const job = new PDFAccessibilityCheckerJob({inputAsset});
+
+        // Submit the job and get the job result
+        const pollingURL = await pdfServices.submit({job});
+        const pdfServicesResponse = await pdfServices.getJobResult({
+            pollingURL,
+            resultType: PDFAccessibilityCheckerResult
+        });
+
+        // Get content from the resulting asset(s)
+        const resultAsset = pdfServicesResponse.result.asset;
+        const streamAsset = await pdfServices.getContent({asset: resultAsset});
+
+        const resultAssetReport = pdfServicesResponse.result.report;
+        const streamAssetReport = await pdfServices.getContent({asset: resultAssetReport});
+
+        // Creates an output stream and copy result asset's content to it
+        const outputFilePath = "output/PDFAccessibilityChecker.pdf"
+        const outputFilePathReport = "output/PDFAccessibilityChecker.json"
+        console.log(`Saving asset at ${outputFilePath}`);
+        console.log(`Saving asset at ${outputFilePathReport}`);
+
+        let writeStream = fs.createWriteStream(outputFilePath);
+        streamAsset.readStream.pipe(writeStream);
+        writeStream = fs.createWriteStream(outputFilePathReport);
+        streamAssetReport.readStream.pipe(writeStream);
+    } catch (err) {
+        if (err instanceof SDKError || err instanceof ServiceUsageError || err instanceof ServiceApiError) {
+            console.log("Exception encountered while executing operation", err);
+        } else {
+            console.log("Exception encountered while executing operation", err);
+        }
+    } finally {
+        readStream?.destroy();
+    }
+})();
+```
+
+#### Python
+
+```javascript
+# Get the samples from https://github.com/adobe/pdfservices-python-sdk-samples
+# Run the sample:
+# python src/resources/CheckerPDFInput.pdf
+
+class PDFAccessibilityChecker:
+    def __init__(self):
+    try:
+        pdf_file = open("src/resources/CheckerPDFInput.pdf", 'rb')
+        input_stream = pdf_file.read()
+        pdf_file.close()
+        
+        # Initial setup, create credentials instance
+        credentials = ServicePrincipalCredentials(
+            client_id=os.getenv('PDF_SERVICES_CLIENT_ID'),
+            client_secret=os.getenv('PDF_SERVICES_CLIENT_SECRET'))
+        
+        # Creates a PDF Services instance
+        pdf_services = PDFServices(credentials=credentials)
+        
+        # Creates an asset(s) from source file(s) and upload
+        input_asset = pdf_services.upload(input_stream=input_stream, mime_type=PDFServicesMediaType.PDF)
+
+        # Creates a new job instance
+        pdf_accessibility_checker_job = PDFAccessibilityCheckerJob(input_asset=input_asset)
+        
+        # Submit the job and gets the job result
+        location = pdf_services.submit(pdf_accessibility_checker_job)
+        pdf_services_response = pdf_services.get_job_result(location, PDFAccessibilityCheckerResult)
+        
+        # Get content from the resulting asset(s)
+        result_asset: CloudAsset = pdf_services_response.get_result().get_asset()
+        stream_asset: StreamAsset = pdf_services.get_content(result_asset)
+        
+        report_asset: CloudAsset = pdf_services_response.get_result().get_report()
+        stream_report: StreamAsset = pdf_services.get_content(report_asset)
+        
+        output_file_path = 'output/accessibilitychecker.pdf'
+        
+        with open(output_file_path, "wb") as file:
+            file.write(stream_asset.get_input_stream())
+        
+        output_file_path_json = 'output/accessibilitychecker.json'
+        with open(output_file_path_json, "wb") as file:
+            file.write(stream_report.get_input_stream())
+        
+        except (ServiceApiException, ServiceUsageException, SdkException) as e:
+            logging.exception(f'Exception encountered while executing operation: {e}')
+
+        
+    if __name__ == "__main__":
+        PDFAccessibilityChecker()
+```
+
+#### REST API
+
+```javascript
+curl --location --request POST 'https://pdf-services.adobe.io/operation/accessibilitychecker' \
+--header 'x-api-key: {{Placeholder for client_id}}' \
+--header 'Content-Type: application/json' \
+--header 'Authorization: Bearer {{Placeholder for token}}' \
+--data-raw '{
+    "assetID": "urn:aaid:AS:UE1:54cbf87f-d7f5-4918-8e4b-9f1878678e68"
+}'
+```
+
+## Check PDF accessibility for specified pages
+
 The sample below performs an accessibility check operation for specified pages of a given PDF.
 
 Please refer to the [API usage guide](../gettingstarted.md) to understand how to use our APIs.
 
-
+ 
+
+#### Java
+
+```javascript
+// Get the samples from https://www.adobe.com/go/pdftoolsapi_java_samples
+// Run the sample:
+// mvn -f pom.xml exec:java -Dexec.mainClass=com.adobe.pdfservices.operation.samples.pdfaccessibilitychecker.PDFAccessibilityCheckerWithOptions
+public class PDFAccessibilityCheckerWithOptions {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(PDFAccessibilityCheckerWithOptions.class);
+
+    public static void main(String[] args) {
+
+        try (
+            InputStream inputStream = Files
+            .newInputStream(new File("src/main/resources/accessibilityCheckerInput.pdf")
+                .toPath())) {
+            // Initial setup, create credentials instance
+            Credentials credentials = new ServicePrincipalCredentials(System.getenv("PDF_SERVICES_CLIENT_ID"),
+                System.getenv("PDF_SERVICES_CLIENT_SECRET"));
+        
+            // Creates a PDF Services instance
+            PDFServices pdfServices = new PDFServices(credentials);
+        
+            // Creates an asset(s) from source file(s) and upload
+            Asset asset = pdfServices.upload(inputStream, PDFServicesMediaType.PDF.getMediaType());
+
+            // Creates parameters for the job
+            PDFAccessibilityCheckerParams pdfAccessibilityCheckerParams = PDFAccessibilityCheckerParams
+                .pdfAccessibilityCheckerParamsBuilder().withPageStart(1).withPageEnd(2).build();
+        
+            // Creates a new job instance
+            PDFAccessibilityCheckerJob pdfAccessibilityCheckerJob = new PDFAccessibilityCheckerJob(asset)
+                .setParams(pdfAccessibilityCheckerParams);
+            
+            // Submit the job and gets the job result
+            String location = pdfServices.submit(PDFAccessibilityCheckerJob);
+            PDFServicesResponse pdfServicesResponse = pdfServices
+                .getJobResult(location, PDFAccessibilityCheckerResult.class);
+        
+            // Get content from the resulting asset(s)
+            Asset resultAsset = pdfServicesResponse.getResult().getAsset();
+            StreamAsset streamAsset = pdfServices.getContent(resultAsset);
+        
+            Asset report = pdfServicesResponse.getResult().getReport();
+            StreamAsset streamAssetReport = pdfServices.getContent(report);
+            
+            String outputFilePath = "/output/pdfAccessibilityCheckerOutput.pdf";
+            String outputFilePathReport = "/output/pdfAccessibilityCheckerReport.json";
+            
+            LOGGER.info(String.format("Saving asset at %s", outputFilePath));
+            LOGGER.info(String.format("Saving report at %s", outputFilePathReport));
+            
+            new FileInfo(Directory.GetCurrentDirectory() + outputFilePath).Directory.Create();
+            new FileInfo(Directory.GetCurrentDirectory() + outputFilePathReport).Directory.Create();
+            
+            OutputStream outputStreamReport = Files.newOutputStream(new File(outputFilePath).toPath());
+            OutputStream outputStreamReport = Files.newOutputStream(new File(outputFilePathReport).toPath());
+            
+            IOUtils.copy(streamAsset.getInputStream(), outputStream);
+            IOUtils.copy(streamAssetReport.getInputStream(), outputStreamReport);
+            
+            outputStream.close();
+            outputStreamReport.close();
+        } catch (ServiceApiException | IOException | SDKException | ServiceUsageException ex) {
+            System.out.println("Exception encountered while executing operation: "+ ex);
+        }
+    }
+}
+```
+
+#### .NET
+
+```javascript
+// Get the samples from https://www.adobe.com/go/pdftoolsapi_net_samples
+// Run the sample:
+// cd PDFAccessibilityCheckerWithOptions/
+// dotnet run PDFAccessibilityCheckerWithOptions.csproj
+namespace PDFAccessibilityCheckerWithOptions
+{
+    public class Program {
+        private static readonly ILog log = LogManager.GetLogger(typeof (Program));
+
+        static void Main() {
+            //Configure the logging
+            ConfigureLogging();
+            try {
+                // Initial setup, create credentials instance
+                ICredentials credentials = new ServicePrincipalCredentials(
+                    Environment.GetEnvironmentVariable("PDF_SERVICES_CLIENT_ID"),
+                    Environment.GetEnvironmentVariable("PDF_SERVICES_CLIENT_SECRET"));
+
+                // Creates a PDF Services instance
+                PDFServices pdfServices = new PDFServices(credentials);
+
+                // Creates an asset(s) from source file(s) and upload
+                using Stream inputStream = File.OpenRead(@"checkerPDFInput.pdf");
+                IAsset inputDocumentAsset = pdfServices.Upload(inputStream, PDFServicesMediaType.PDF.GetMIMETypeValue());
+
+                // Set up PDF Accessibility Checker parameters
+                PDFAccessibilityCheckerParams pdfAccessibilityCheckerParams = PDFAccessibilityCheckerParams
+                    .PDFAccessibilityCheckerParamsBuilder()
+                    .WithPageStart(1)
+                    .WithPageEnd(3)
+                    .Build();
+
+                // Create the PDF Accessibility Checker job instance
+                PDFAccessibilityCheckerJob pdfAccessibilityCheckerJob =
+                    new PDFAccessibilityCheckerJob(inputDocumentAsset).SetParams(pdfAccessibilityCheckerParams);
+
+                // Submits the job and gets the job result
+                String location = pdfServices.Submit(pdfAccessibilityCheckerJob);
+                PDFServicesResponse  pdfServicesResponse = 
+                    pdfServices.GetJobResult  (location, typeof (PDFAccessibilityCheckerResult));
+
+                // Get content from the resulting asset(s)
+                IAsset outputAsset = pdfServicesResponse.Result.Asset;
+                StreamAsset streamAsset = pdfServices.GetContent(outputAsset);
+
+                IAsset outputReportAsset = pdfServicesResponse.Result.Report;
+                StreamAsset streamReportAsset = pdfServices.GetContent(outputReportAsset);
+
+                // Creating output streams and copying stream asset's content to it
+                String outputPdfPath = '/output/accessibilityChecker.pdf';
+                new FileInfo(Directory.GetCurrentDirectory() + outputPdfPath).Directory.Create();
+                Stream outputStream = File.OpenWrite(Directory.GetCurrentDirectory() + outputPdfPath);
+                streamAsset.Stream.CopyTo(outputStream);
+                outputStream.Close();
+
+                String outputJSONPath = '/output/accessibilityChecker.json';
+                new FileInfo(Directory.GetCurrentDirectory() + outputJSONPath).Directory.Create();
+                Stream outputJSONStream = File.OpenWrite(Directory.GetCurrentDirectory() + outputJSONPath);
+                streamReportAsset.Stream.CopyTo(outputJSONStream);
+                outputStream.Close();
+            } catch (ServiceUsageException ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            } catch (ServiceApiException ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            } catch (SDKException ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            } catch (IOException ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            } catch (Exception ex) {
+                log.Error("Exception encountered while executing operation", ex);
+            }
+        }
+
+        static void ConfigureLogging() {
+            ILoggerRepository
+            logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
+            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
+        }
+    }
+}
+```
+
+#### Node JS
+
+```javascript
+// Get the samples from http://www.adobe.com/go/pdftoolsapi_node_sample
+// Run the sample:
+// node src/pdfaccessibilitychecker/pdf-accessibility-checker-with-options.js
+const {
+    ServicePrincipalCredentials,
+    PDFServices,
+    MimeType,
+    SDKError,
+    ServiceUsageError,
+    ServiceApiError,
+    PDFAccessibilityCheckerJob,
+    PDFAccessibilityCheckerResult
+} = require("@dcloud/pdfservices-node-sdk");
+const fs = require("fs");
+
+(async () => {
+    let readStream;
+    try {
+        // Initial setup, create credentials instance
+        const credentials = new ServicePrincipalCredentials({
+            clientId: process.env.PDF_SERVICES_CLIENT_ID,
+            clientSecret: process.env.PDF_SERVICES_CLIENT_SECRET
+        });
+
+        // Creates a PDF Services instance
+        const pdfServices = new PDFServices({credentials});
+
+        // Creates an asset(s) from source file(s) and upload
+        readStream = fs.createReadStream("resources/accessibilityCheckerInput.pdf");
+        const inputAsset = await pdfServices.upload({
+            readStream,
+            mimeType: MimeType.PDF
+        });
+
+        // Create parameters for the job
+        const params = new PDFAccessibilityCheckerParams({pageStart:1, pageEnd:3});
+
+        // Create a new job instance
+        const job = new PDFAccessibilityCheckerJob({inputAsset, params});
+
+        // Submit the job and get the job result
+        const pollingURL = await pdfServices.submit({job});
+        const pdfServicesResponse = await pdfServices.getJobResult({
+            pollingURL,
+            resultType: PDFAccessibilityCheckerResult
+        });
+
+        // Get content from the resulting asset(s)
+        const resultAsset = pdfServicesResponse.result.asset;
+        const streamAsset = await pdfServices.getContent({asset: resultAsset});
+
+        const resultAssetReport = pdfServicesResponse.result.report;
+        const streamAssetReport = await pdfServices.getContent({asset: resultAssetReport});
+
+        // Creates an output stream and copy result asset's content to it
+        const outputFilePath = "output/PDFAccessibilityChecker.pdf"
+        const outputFilePathReport = "output/PDFAccessibilityChecker.json"
+        console.log(`Saving asset at ${outputFilePath}`);
+        console.log(`Saving asset at ${outputFilePathReport}`);
+
+        let writeStream = fs.createWriteStream(outputFilePath);
+        streamAsset.readStream.pipe(writeStream);
+        writeStream = fs.createWriteStream(outputFilePathReport);
+        streamAssetReport.readStream.pipe(writeStream);
+    } catch (err) {
+        if (err instanceof SDKError || err instanceof ServiceUsageError || err instanceof ServiceApiError) {
+            console.log("Exception encountered while executing operation", err);
+        } else {
+            console.log("Exception encountered while executing operation", err);
+        }
+    } finally {
+        readStream?.destroy();
+    }
+})();
+```
+
+#### Python
+
+```javascript
+# Get the samples from https://github.com/adobe/pdfservices-python-sdk-samples
+# Run the sample:
+# python src/PDFAccessibilityChecker/pdf_accessibility_checker.py
+
+class PDFAccessibilityChecker:
+    def __init__(self):
+    try:
+        pdf_file = open("src/resources/CheckerPDFInput.pdf", 'rb')
+        input_stream = pdf_file.read()
+        pdf_file.close()
+        
+        # Initial setup, create credentials instance
+        credentials = ServicePrincipalCredentials(
+            client_id=os.getenv('PDF_SERVICES_CLIENT_ID'),
+            client_secret=os.getenv('PDF_SERVICES_CLIENT_SECRET'))
+        
+        # Creates a PDF Services instance
+        pdf_services = PDFServices(credentials=credentials)
+        
+        # Creates an asset(s) from source file(s) and upload
+        input_asset = pdf_services.upload(input_stream=input_stream, mime_type=PDFServicesMediaType.PDF)
+        
+        # Create parameters for the job
+        pdf_accessibility_checker_params = PDFAccessibilityCheckerParams(page_start=1, page_end=2)
+        
+        # Creates a new job instance
+        pdf_accessibility_checker_job = PDFAccessibilityCheckerJob(input_asset=input_asset,
+            pdf_accessibility_checker_params=pdf_accessibility_checker_params)
+        
+        # Submit the job and gets the job result
+        location = pdf_services.submit(pdf_accessibility_checker_job)
+        pdf_services_response = pdf_services.get_job_result(location, PDFAccessibilityCheckerResult)
+        
+        # Get content from the resulting asset(s)
+        result_asset: CloudAsset = pdf_services_response.get_result().get_asset()
+        stream_asset: StreamAsset = pdf_services.get_content(result_asset)
+        
+        report_asset: CloudAsset = pdf_services_response.get_result().get_report()
+        stream_report: StreamAsset = pdf_services.get_content(report_asset)
+        
+        output_file_path = 'output/accessibilitychecker.pdf'
+        with open(output_file_path, "wb") as file:
+            file.write(stream_asset.get_input_stream())
+        
+        output_file_path_json = 'output/accessibilitychecker.json'
+        with open(output_file_path_json, "wb") as file:
+            file.write(stream_report.get_input_stream())
+    
+    except (ServiceApiException, ServiceUsageException, SdkException) as e:
+        logging.exception(f'Exception encountered while executing operation: {e}')
+    
+    
+    if __name__ == "__main__":
+        PDFAccessibilityChecker()
+```
 
 #### REST API
 
diff --git a/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md b/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
index cf5e7f6b3..035e905f8 100644
--- a/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
+++ b/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
@@ -193,7 +193,7 @@ namespace PDFWatermark
 ```javascript
 // Get the samples from http://www.adobe.com/go/pdftoolsapi_node_sample
 // Run the sample:
-// node src/electronicseal/electronic-seal.js
+// node src/pdfwatermark/pdf-watermark.js
 
 const {
     ServicePrincipalCredentials,
@@ -353,7 +353,7 @@ Please refer to the [API usage guide](../api-usage.md) to understand how to use
 ```javascript
 // Get the samples from https://github.com/adobe/pdfservices-java-sdk-samples/tree/beta
 // Run the sample:
-// mvn -f pom.xml exec:java -Dexec.mainClass=com.adobe.pdfservices.operation.samples.electronicseal.ElectronicSealWithAppearanceOptions
+// mvn -f pom.xml exec:java -Dexec.mainClass=com.adobe.pdfservices.operation.samples.pdfwatermark.PDFWatermarkWithOptions
 
 package com.adobe.pdfservices.operation.samples.pdfwatermark;
 
@@ -380,14 +380,14 @@ public class PDFWatermarkWithOptions {
         
             // Creates a new job instance
             PDFServices pdfServices = new PDFServices(credentials);
-        
-            // Creates an asset(s) from source file(s) and upload
-            Asset inputDocumentAsset = pdfServices.upload(inputStream1, PDFServicesMediaType.PDF.getMediaType());
-            Asset watermarkDocumentAsset = pdfServices.upload(inputStream2, PDFServicesMediaType.PDF.getMediaType());
-        
+
             // Watermark pages of the document (as specified by PageRanges).
-            PageRanges pageRangeForPDFWatermark = getPageRangeForPDFWatermark();
-        
+            PageRanges pageRangeForPDFWatermark = new PageRanges();
+            // Add page 1
+            pageRangeForPDFWatermark.addSinglePage(1);
+            // Add pages 3 to 4
+            pageRangeForPDFWatermark.addRange(3, 4);
+
             // Creates PDF Watermark appearance option
             WatermarkAppearance watermarkAppearance = new WatermarkAppearance();
             watermarkAppearance.setOpacity(50);
@@ -535,7 +535,7 @@ namespace PDFWatermark
 ```javascript
 // Get the samples from http://www.adobe.com/go/pdftoolsapi_node_sample
 // Run the sample:
-// node src/electronicseal/electronic-seal.js
+// node src/pdfwatermark/pdf-watermark-with-options.js
 
 const {
     ServicePrincipalCredentials,
@@ -637,12 +637,12 @@ const fs = require("fs");
 ```javascript
 # Get the samples from https://github.com/adobe/pdfservices-python-sdk-samples
 # Run the sample:
-# python src/watermarkpdf/watermark_pdf.py
+# python src/watermarkpdf/watermark_pdf_with_params.py
 
 # Initialize the logger
 logging.basicConfig(level=logging.INFO)
 
-class PDFWatermarkWithOptions:
+class PDFWatermark:
     def __init__(self):
         try:
             pdf_file = open("src/resources/watermarkPDFInput.pdf", 'rb')
@@ -694,15 +694,13 @@ class PDFWatermarkWithOptions:
         except (ServiceApiException, ServiceUsageException, SdkException) as e:
             logging.exception(f'Exception encountered while executing operation: {e}')
 
-if __name__ == "__main__":
-    PDFWatermarkWithOptions()
+    if __name__ == "__main__":
+        PDFWatermark:()
 ```
 
 
 #### REST API
 
-```javascript
-
 ```javascript
 curl --location --request POST 'https://pdf-services.adobe.io/operation/addwatermark' \
 --header 'x-api-key: {{Placeholder for client_id}}' \
From bcad1f3f6f1d842f1ef8de609111a604d795cbb9 Mon Sep 17 00:00:00 2001
From: Sufia Ashraf 
Date: Tue, 8 Oct 2024 16:28:55 +0530
Subject: [PATCH 03/39] update
---
 .../howtos/pdf-accessibility-checker-api.md                 | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md b/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
index 3babdca9b..aa38d8ed8 100644
--- a/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
+++ b/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
@@ -1,10 +1,6 @@
 ---
 title: PDF Accessibility Checker | How Tos | PDF Services API | Adobe PDF Services
 ---
-
-
-PDF Accessibility Checker is currently accessible through the REST API only.
-
 # PDF Accessibility Checker
 
 The Accessibility Checker API verifies if PDF files meet the machine-verifiable requirements of PDF/UA and WCAG 2.0. It generates a report summarizing the findings of the accessibility checks. Additional human remediation may be required to ensure the reading order of elements is correct and that alternative text tags properly convey the meaning of images. The report contains links to documentation that assists in manually fixing problems using Adobe Acrobat Pro.
@@ -259,7 +255,7 @@ const fs = require("fs");
 ```javascript
 # Get the samples from https://github.com/adobe/pdfservices-python-sdk-samples
 # Run the sample:
-# python src/resources/CheckerPDFInput.pdf
+# python src/PDFAccessibilityChecker/pdf_accessibility_checker.py
 
 class PDFAccessibilityChecker:
     def __init__(self):
From f644178175d26a7711b918d81f543f1b128d9e2e Mon Sep 17 00:00:00 2001
From: Sufia Ashraf 
Date: Tue, 8 Oct 2024 16:32:56 +0530
Subject: [PATCH 04/39] fix linters
---
 .../howtos/pdf-accessibility-checker-api.md                | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md b/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
index aa38d8ed8..422bf3716 100644
--- a/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
+++ b/src/pages/overview/pdf-services-api/howtos/pdf-accessibility-checker-api.md
@@ -18,6 +18,7 @@ This parameter specifies the starting page for the accessibility check. If "page
 ### Page end (_pageEnd_)
 
 This parameter specifies the ending page for the accessibility check. If "pageEnd" is not provided, the last page is considered the default end page. It should be greater than or equal to 1.
+
 ## REST API
 
 See our public API Reference for the [PDF Accessibility Checker API](../../../apis/#tag/PDF-Accessibility-Checker).
@@ -28,7 +29,7 @@ The sample below performs an accessibility check operation on a given PDF.
 
 Please refer to the [API usage guide](../gettingstarted.md) to understand how to use our APIs.
 
- 
+
 
 #### Java
 
@@ -324,7 +325,7 @@ The sample below performs an accessibility check operation for specified pages o
 
 Please refer to the [API usage guide](../gettingstarted.md) to understand how to use our APIs.
 
- 
+
 
 #### Java
 
@@ -631,4 +632,4 @@ curl --location --request POST 'https://pdf-services.adobe.io/operation/accessib
     "pageStart":1,
     "pageEnd":5
 }'
-```
\ No newline at end of file
+```
From 41db7c90a6fac4fdd9d9a836408c71808fef41e5 Mon Sep 17 00:00:00 2001
From: Sufia Ashraf 
Date: Tue, 8 Oct 2024 16:44:28 +0530
Subject: [PATCH 05/39] fix linters
---
 .../pdf-services-api/howtos/pdf-watermark-api.md   | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md b/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
index 035e905f8..2c9ec3a30 100644
--- a/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
+++ b/src/pages/overview/pdf-services-api/howtos/pdf-watermark-api.md
@@ -28,13 +28,14 @@ The output generated will retain the content along with the watermark from the f
 
 Specifies the number of pages on which the watermark will be applied. Page numbers are indexed from 1 to N. If a page range is not specified, the watermark will be applied on all pages of the source document.
 The page ranges are specified as an array of objects whose length cannot exceed beyond 20. Each object has the following properties:
-* **Start Page**  (*start*) : The first page number of the range. Default value is 1.
-* **End Page**  (*end*) : The last page number of the range. Default value is the last page of the document.
+
+* **Start Page**  (_start_) : The first page number of the range. Default value is 1.
+* **End Page**  (_end_) : The last page number of the range. Default value is the last page of the document.
 
 ### Appearance (_appearance_)
 
-* **Foreground**  (*appearOnForeground*) : Specifies the placement of the watermark on the page. It can appear in the foreground or background. The default value is true, placing the watermark in the foreground.
-* **Opacity**  (*opacity*) : Specifies the opacity of the watermark, represented as an integer percentage value ranging from 0 to 100. The default value is 100.
+* **Foreground**  (_appearOnForeground_) : Specifies the placement of the watermark on the page. It can appear in the foreground or background. The default value is true, placing the watermark in the foreground.
+* **Opacity**  (_opacity_) : Specifies the opacity of the watermark, represented as an integer percentage value ranging from 0 to 100. The default value is 100.
 
 ## REST API
 
@@ -46,7 +47,7 @@ The sample below performs watermark operation applying watermark in foreground o
 
 Please refer the [API usage guide](../gettingstarted.md) to understand how to use our APIs.
 
- 
+
 
 #### Java
 
@@ -346,7 +347,7 @@ The sample below performs watermark operation applying watermark with customized
 
 Please refer to the [API usage guide](../api-usage.md) to understand how to use our APIs.
 
- 
+
 
 #### Java
 
@@ -698,7 +699,6 @@ class PDFWatermark:
         PDFWatermark:()
 ```
 
-
 #### REST API
 
 ```javascript
From 633a83932e981ec5f09340ca11bb3791c724f361 Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Thu, 22 Aug 2024 12:36:43 +0530
Subject: [PATCH 06/39] documentation update and postman collection
---
 src/pages/apis/index.md                                     | 2 +-
 .../document-generation-api/stylingformattingtags.md        | 6 ++++++
 src/pages/overview/document-generation-api/templatetags.md  | 4 ++++
 src/pages/resources/openapi.json                            | 2 +-
 4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/pages/apis/index.md b/src/pages/apis/index.md
index 1e5df79d7..b0994e5b4 100644
--- a/src/pages/apis/index.md
+++ b/src/pages/apis/index.md
@@ -1,5 +1,5 @@
 ---
 title: Adobe PDF Services Open API spec
 description: The OpenAPI spec for Adobe PDF Services API endpoints, parameters, and responses.
-openAPISpec: https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/main/src/pages/resources/openapi.json
+openAPISpec: https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/docgen_documentation_update/src/pages/resources/openapi.json
 ---
diff --git a/src/pages/overview/document-generation-api/stylingformattingtags.md b/src/pages/overview/document-generation-api/stylingformattingtags.md
index 95d2ef04d..3a8092a56 100644
--- a/src/pages/overview/document-generation-api/stylingformattingtags.md
+++ b/src/pages/overview/document-generation-api/stylingformattingtags.md
@@ -53,6 +53,12 @@ Styling for the text tag can be provided using the json data through the HTML ba
 
 - Any HTML tags which are not supported will be ignored.
 
+Formatting for image can be provided using the attributes of the img tag.
+
+- The img tag supports the height and width attributes.
+
+- Any other unsupported attributes inside the img tag will be ignored.
+
 ## Inline styling attributes supported
 
 - font-size : Xpt or Ypx ;  X=dynamic positive integer 1–1638 pt, 1pt = 1/72 inch; Y=dynamic positive integer 1–2184 px, 1px = 1/96 inch ( point (pt) and pixels (px) are the only supported unit for font size.)
diff --git a/src/pages/overview/document-generation-api/templatetags.md b/src/pages/overview/document-generation-api/templatetags.md
index ce1e0f5b5..8d4477362 100644
--- a/src/pages/overview/document-generation-api/templatetags.md
+++ b/src/pages/overview/document-generation-api/templatetags.md
@@ -399,6 +399,10 @@ Dynamically generate a numbered or bullet list by placing it inside a repeating
 
 
 
+
+
+Only JSON keys should be placed inside a repeating section.
+
 ## Numerical Calculations
 
 Performing numerical calculations on the input data.
diff --git a/src/pages/resources/openapi.json b/src/pages/resources/openapi.json
index 3e9f7443f..a5950ace7 100644
--- a/src/pages/resources/openapi.json
+++ b/src/pages/resources/openapi.json
@@ -2,7 +2,7 @@
   "openapi": "3.0.1",
   "info": {
     "title": "PDF Services API",
-    "description": "
",
+    "description": "",
     "version": ""
   },
   "servers": [
From a59b70b2f9bbb563eb45a7ee578ef8ee2b93d580 Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Thu, 22 Aug 2024 16:20:14 +0530
Subject: [PATCH 07/39] correct branch name
---
 src/pages/apis/index.md          | 2 +-
 src/pages/resources/openapi.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pages/apis/index.md b/src/pages/apis/index.md
index b0994e5b4..fba60594a 100644
--- a/src/pages/apis/index.md
+++ b/src/pages/apis/index.md
@@ -1,5 +1,5 @@
 ---
 title: Adobe PDF Services Open API spec
 description: The OpenAPI spec for Adobe PDF Services API endpoints, parameters, and responses.
-openAPISpec: https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/docgen_documentation_update/src/pages/resources/openapi.json
+openAPISpec: https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/dcogen_documentation_update/src/pages/resources/openapi.json
 ---
diff --git a/src/pages/resources/openapi.json b/src/pages/resources/openapi.json
index a5950ace7..fe1b88198 100644
--- a/src/pages/resources/openapi.json
+++ b/src/pages/resources/openapi.json
@@ -2,7 +2,7 @@
   "openapi": "3.0.1",
   "info": {
     "title": "PDF Services API",
-    "description": "",
+    "description": "",
     "version": ""
   },
   "servers": [
From c5d6f2ee19419f57f025ec71ea5b768da6cd810f Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Fri, 23 Aug 2024 13:19:10 +0530
Subject: [PATCH 08/39] changes for merging to develop
---
 src/pages/apis/index.md          | 2 +-
 src/pages/resources/openapi.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pages/apis/index.md b/src/pages/apis/index.md
index fba60594a..f21695d07 100644
--- a/src/pages/apis/index.md
+++ b/src/pages/apis/index.md
@@ -1,5 +1,5 @@
 ---
 title: Adobe PDF Services Open API spec
 description: The OpenAPI spec for Adobe PDF Services API endpoints, parameters, and responses.
-openAPISpec: https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/dcogen_documentation_update/src/pages/resources/openapi.json
+openAPISpec: https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/develop/src/pages/resources/openapi.json
 ---
diff --git a/src/pages/resources/openapi.json b/src/pages/resources/openapi.json
index fe1b88198..8fcafa14d 100644
--- a/src/pages/resources/openapi.json
+++ b/src/pages/resources/openapi.json
@@ -2,7 +2,7 @@
   "openapi": "3.0.1",
   "info": {
     "title": "PDF Services API",
-    "description": "",
+    "description": "",
     "version": ""
   },
   "servers": [
From 527a117f72504f02f7bd0fe875e3d3b54d1208e0 Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Tue, 27 Aug 2024 16:54:42 +0530
Subject: [PATCH 09/39] added release notes
---
 .../document-generation-api/templatetags.md   | 46 ++-----------------
 src/pages/overview/releasenotes.md            | 16 ++-----
 2 files changed, 8 insertions(+), 54 deletions(-)
diff --git a/src/pages/overview/document-generation-api/templatetags.md b/src/pages/overview/document-generation-api/templatetags.md
index 8d4477362..3a44cf96f 100644
--- a/src/pages/overview/document-generation-api/templatetags.md
+++ b/src/pages/overview/document-generation-api/templatetags.md
@@ -26,9 +26,10 @@ A placeholder(text tags) gets replaced by the actual input data.
 
 
 A placeholder variable can only be applied to an input field of type
-string, number or boolean.
 Please refer to the **Arrays** section to use array as a placeholder variable.
 Formatting applied to the placeholder
-variable in the document template will be retained in the output document.
-For more simplified styling and formatting for the placeholder tag from the input json data, please refer [styling and formatting](../document-generation-api/stylingformattingtags.md) section.
+string, number or boolean. 
 Formatting applied to the placeholder
+variable in the document template will be retained in the output
+document.
+For more simplified styling and formatting for the placeholder tag from the input json data, please refer [styling and formatting](../document-generation-api/stylingformattingtags.md) section:
 
 JSON representation of the input data:
 
@@ -73,22 +74,6 @@ A prefix value can be specified for the placeholder variable. Doing so will appe
 this value before the result of the tag.
 
 
-
-**Arrays**
-
-To work with arrays, please refer to the [JSONata Functions](#jsonata-functions) section.
-
-JSON representation of the input data:
-
-```json
-{
-  "companyName": "Tech Corp",
-  "discountCoupons": ["SummerSale", "BlackFriday", "NewYearSpecial"]
-}
-```
-
-
-
 ## Images
 
 To dynamically insert an image in the document, add any image as
@@ -226,11 +211,6 @@ Placeholder tag is replaced by a table generated using the html string provided
 Table tags can also inserted in a document using table markers. Please refer [Table Tag with Markers](../document-generation-api/tablewithmarkers.md)
 to learn more about the usage of table markers.
 
-
-
-Please visit [Complex Table Constructs with Table Markers](../document-generation-api/tablewithmarkers.md#complex-table-constructs-with-table-markers) to learn about advanced
-constructs inside tables.
-
 ### Insert Table using Placeholder Table Tag 
 
 **DEPRECATED (Please use [Table Tag with Markers](../document-generation-api/tablewithmarkers.md))**
@@ -399,10 +379,6 @@ Dynamically generate a numbered or bullet list by placing it inside a repeating
 
 
 
-
-
-Only JSON keys should be placed inside a repeating section.
-
 ## Numerical Calculations
 
 Performing numerical calculations on the input data.
@@ -466,20 +442,6 @@ Here is the list of [supported aggregation functions](https://docs.jsonata.org/a
 aggregate numerical calculation can only be applied to a list of
 numbers.
 
-## JSONata Functions
-The Document Generation API supports various JSONata functions, including:
-
-- [String Functions](https://docs.jsonata.org/string-functions)
-- [Numeric Functions](https://docs.jsonata.org/numeric-functions)
-- [Aggregation Functions](https://docs.jsonata.org/aggregation-functions)
-- [Boolean Functions](https://docs.jsonata.org/boolean-functions)
-- [Array Functions](https://docs.jsonata.org/array-functions)
-- [Date/Time Functions](https://docs.jsonata.org/date-time-functions)
-- [Higher Order Functions](https://docs.jsonata.org/higher-order-functions)
-
-
-It is recommended to test these functions before incorporating them into your template.
-
 ## Adobe Sign
 
 Adobe Sign text tags can be placed anywhere within the contents of the document template.
diff --git a/src/pages/overview/releasenotes.md b/src/pages/overview/releasenotes.md
index 6d462b660..86528d32f 100644
--- a/src/pages/overview/releasenotes.md
+++ b/src/pages/overview/releasenotes.md
@@ -93,8 +93,8 @@ version.
     UTF-8
     11
     11
-    4.1.1
-    4.1.1
+    4.1.0
+    4.1.0
 
 
 
@@ -181,18 +181,10 @@ Upgrading to the latest SDK should not break existing applications.
 
 ## Change history
 
-### October 1, 2024; Java SDK 4.1.1 patch release
-
-- Bug fixes and stability improvements.
-
-### September 10, 2024; Adobe Document Generation Server Side Release
-
-- Enhanced support for [JSONata functions](../document-generation-api/templatetags/#jsonata-functions) in Table Tag with Markers.
-
-### August 23, 2024; Added new features for Document Generation API and updated Acrobat Service API postman collection
+### August 27, 2024; PDF Accessibility Checker API Added
 
 - Added base64 format support for inline images.
-- Supported attributes for img tag (height and width only).
+- Supported attributes for img tag (height and width only)
 - Postman collection for external storage : Electronic Seal, Extract, Split, Accessibility Checker.
 - Added request body schema with example for accessibility checker with external storage.
 
From 6e1699e22d8bd96193cfd4177221ec9928f837f0 Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Tue, 27 Aug 2024 17:18:08 +0530
Subject: [PATCH 10/39] updated link to refer Complex Table Constructs with
 Table markers
---
 src/pages/overview/document-generation-api/templatetags.md | 5 +++++
 src/pages/overview/releasenotes.md                         | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/pages/overview/document-generation-api/templatetags.md b/src/pages/overview/document-generation-api/templatetags.md
index 3a44cf96f..2cef92de2 100644
--- a/src/pages/overview/document-generation-api/templatetags.md
+++ b/src/pages/overview/document-generation-api/templatetags.md
@@ -211,6 +211,11 @@ Placeholder tag is replaced by a table generated using the html string provided
 Table tags can also inserted in a document using table markers. Please refer [Table Tag with Markers](../document-generation-api/tablewithmarkers.md)
 to learn more about the usage of table markers.
 
+
+
+Please visit [Complex Table Constructs with Table Markers](../document-generation-api/tablewithmarkers.md#complex-table-constructs-with-table-markers) to learn about advanced
+constructs inside tables.
+
 ### Insert Table using Placeholder Table Tag 
 
 **DEPRECATED (Please use [Table Tag with Markers](../document-generation-api/tablewithmarkers.md))**
diff --git a/src/pages/overview/releasenotes.md b/src/pages/overview/releasenotes.md
index 86528d32f..3fd80649d 100644
--- a/src/pages/overview/releasenotes.md
+++ b/src/pages/overview/releasenotes.md
@@ -181,7 +181,7 @@ Upgrading to the latest SDK should not break existing applications.
 
 ## Change history
 
-### August 27, 2024; PDF Accessibility Checker API Added
+### August 23, 2024; PDF Accessibility Checker API Added
 
 - Added base64 format support for inline images.
 - Supported attributes for img tag (height and width only)
From e923701b62f329b1ecee8bb08931a680dd2f749b Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Tue, 27 Aug 2024 17:32:18 +0530
Subject: [PATCH 11/39] release notes updated
---
 src/pages/overview/releasenotes.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pages/overview/releasenotes.md b/src/pages/overview/releasenotes.md
index 3fd80649d..d00101090 100644
--- a/src/pages/overview/releasenotes.md
+++ b/src/pages/overview/releasenotes.md
@@ -181,10 +181,10 @@ Upgrading to the latest SDK should not break existing applications.
 
 ## Change history
 
-### August 23, 2024; PDF Accessibility Checker API Added
+### August 23, 2024; Added new features for Document Generation API and updated Acrobat Service API postman collection
 
 - Added base64 format support for inline images.
-- Supported attributes for img tag (height and width only)
+- Supported attributes for img tag (height and width only).
 - Postman collection for external storage : Electronic Seal, Extract, Split, Accessibility Checker.
 - Added request body schema with example for accessibility checker with external storage.
 
From 2523a8f9ae2c706eb05b85bda15a596fbd458cef Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Wed, 28 Aug 2024 16:22:20 +0530
Subject: [PATCH 12/39] removed notifier and added response for accessibility
 checker external storage
---
 ...with External Storage Postman Collection.zip | Bin 0 -> 38841 bytes
 src/pages/resources/openapi.json                |   2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)
 create mode 100644 Platform PDF Services with External Storage Postman Collection.zip
diff --git a/Platform PDF Services with External Storage Postman Collection.zip b/Platform PDF Services with External Storage Postman Collection.zip
new file mode 100644
index 0000000000000000000000000000000000000000..19ca7bb6e6bb4ad74592af128599eabbdf75d92f
GIT binary patch
literal 38841
zcmdqJ1yG&ambQz#y9Rf64KBgmU4uKpf(CbY2=4Cg5Zom=!QDN`UF_4{JAe1Ct~zJu
z-n##xYEo1!s@7U_e)Ab)zVDbrUJ4Wp4e0GB;R~k5AAkJEFMc3GAbBeTCsSJoYeIPu
zF+wF1hfn54CXR$I=1yjWqOMLR4mJi>gi21f4hA1h2<2@ZovaOP2!(B}tW1oY%x!HL
zRFvU?AdM^sP2UFi(zvO!D=ZK&*ex&+&>wFq|Hqp{0YUvAZ;l3dSpx9pdU`T~!g5OL
z4D@<`?{oYgAA@T3e|!uheRQLb`iA=FGSaH&h^oQzJ|NLppcF{Bz!xNh5SQ4ZSivBX
zL_~r}80z0J2xSG7dce@{^z}F7#wX^aXekFJ=0;?s$9)H1feoP{AQb$y4a^M{40R<;
zb*VvVdY`6AqAcXN2Fju8PBO_GtyqMO>XHUBV8!0KxPuC@Q`?8R)-ZjpMYp-XTbyz9
zHjK^z8ri8&KBb-IV60-SV`q_)m8oWxZTK`!IXod#Zwdq?F9iu@0gG{51z4%K$@+5|
z$^4kr{&NkR5rBYP0n_;R=8i$w*4ohA2C%$s3$JJNUkguf;b?2~$E;UU
zLz%n{@5TQy>nEz~wo8miUgX}Q+l8`Q;?PznnkU(YRzhj>B~|7#MbQ!!(J_4~)|9xz
zuY5e8P=b20@aJ>~gwxW`PJf<0Wn?6%2zoh5O{TQhP@}VkLT?d8igi#(7eyF+Ugo>8
zC^v$%IJq5?u>L&lrC^!a^PLN$lmQ=7#YEp<(XGbMNO83zI_x8Bx`^6qqHY4g3lcGc`i{)@)cF~3j-}?P?3cYG%@#(
zOd|ZnSEizxq_zuuhAMiEathTKwE#jG{@og34Jmmj5XRM%(vcT|84;zfck+vr@BssT
zKQ&lU0{W!v_gH-f(HV5toO+d6-4l}dK~o@`eHqvlLv!{=K_IVKk1XaMCXc-E!rg6S
z`|KD?$J}F-T?82IsLuI&u3IyXPW3tBAH9vRn`*Rk8PL{?M-691mX0RcWnHch9))9B
zU9$}r4SJfUzRDouurFJo8S$|REBByK&`<<2;}@ivnLE1mg&X|{DX{b{#=oDkvaX14
zOXgMc-v!;YXy)f>yu**@`}TR9Z%P0m#Gf+afFBF3l(a|sOTODUbSet1+jd%JvHSb=
znn0sYay|B)N9LBM!-zGP&ePEuqL}ZBy10W4D{=u_oab{Dd4-f_lTsJ#Q^0Uivk)GZtz7+A3(kMiMGDOm=4%B7q
zI5{;+iaH;WV9zY^Wb`wRFviKz3aIXOA;^cpiRHNKPAe->7ZHowVGsHt@@ftWT-mtr
zEIy`-pM`fzy7@hbk<-$$ifdv
z8Q35|ZRPDuBi)^`c=&nsN;9~BA&QTIz>bUeGP>g3zK#1d&!*1ZD|)r3-Q`H@{q_0LO>)@&5{2h{4=^*7?sojPokfdT=&apkXx!w+E5mtVpCH_=0{_j};;&mfYR@TL_j*{HldA_T}Z=ZglZs9S!q7qo|}oagK66JD1$A#
z{izsaI2_!|?(+-&$4qVd|CRP}0@*R80I>dt}~(fZa^(ah+T?(b<1#syoDTKvh{C;X<~8Q8;#h#lHH&w8$T>c%HFjD7D2<9CEKdnEp9$?s#M^MP=VZKN@TWvBM
zP=x`>06T6Rc6+O~9BSr=%xXGg!eo`qijR`;MhH5A4^jZPjBfi~?9fX-G37Yn4v
zE%)HYx=?+uTd29iuB?(;^qOeDtYj0!dl_>I2#w7GL(4iCz4?6-~uNm2*6NVXWZQhV$N%7rSHV
zDplzHat?;uPauDw9zicmQ`Y@;xPhST<5#W9z|xuej#)b@aSno@=kD#^u~y!*lzH5(
zwxW)mK&rC6KAEKjv6~pI&YqPhl9rXt7VGB8+6q@JmQBk0>-tyu%Sh71l>06t8EyC}
ztc;+zM&%Do8YL&BPJ9mxxpfO!Qr(FI+bTq}gVU4p#uqqG%eRfE8?1->Nje=bncBLD
z6y69g#ZRvFo5#2uk)847^Ak&I0-iUpvmr62%#&iOhWXf0b+q!y!sU#iyJ$jlxx8vR
zC6+KAXzC|Z_CCko+H`=bq~8g++OocYiiC2>_PvMdA9?|~TGtR0zH$yU0)}5eCbP%r
z`LIT{Ip%UC02h)o5&mO4fp+~fcyzvP
z(mct@(pTQ9WseOd=MlT*(~B>z-$Oll?q99GzxR3!FL@juS6AEVph+*VHqnsX*Z1%5C?Kd{sC?6~XiI~@hDf`YsiKnk=Kz_oV)AyPF(
zC8FdvW39{c0__1)bdmVpv_opqL<&_mGEk)u$>-8U%;4;(gVot$F#tk>-fCtYPaOaky(2bHI&3UyXdm_pyYbTh$*El
zsyNX3Do#Yemy$aAyIb}^ZR3Jgocm_feo19X`N
zaWyaRv=%Gb1>wA8RRX4Cvye#jr&HDz_04)jP`lnSs!)OgQh$#@*bt#jvL+=Af$iZh
zN$Bl_!?5jx)19C@Z>c|S@rM{S)4(t0o6gl{UqA7z2j-sI<6)wOE*8`Wms%2XHo^4~
z7(irv>SWPI%zv#c1F4W~l*bG_tKVC@z&vR1p0aik+k2kjv
z7BiB%^aB^{Y!PMfbk)lj`)WyL=@j+UL)tE4WGNhtBPARDTaHSD!-ZLcl**AQg-V{s
zrH77rxipcQ{2X>=6SqScC7k;fnxS!q1oJUN`7hCmr1&rtH9K2_xRJ5}x#4vpQiY>x
z%;Kh#Dlnk0V0U3!
zrFEu19^%rqy6A9IWW4fxyxBHx6!eN?zz)xuuYIs0`%X4s;a+KaWK>hO?JH3-O4^%C
zTGzy@Fw*oepijP<(rhDzUAe2aCaN6yJ=r)xuY{hd{GQ{D7th6+{Kfznzfs{&82`$P
zw~R6bz>EJ9TmB|E==FXlI{q0X|KF6kv;0Er6u{cJ{e5Bsj!Je8CXSB(V(LB&5NY1V
zU%^^cOKzDF&CAA1bem$*-Iw`v36y$Oxf~}LqrqG-<_K?Tl62gvF<#~2tk!66z$BoX
z)m)Qc>3%!?Dr4DYC0|9@%Sm*~x4q7SZF?X-3`xA=Oaggn@yqQR-v!Rv{J6~)-Nx!b
zQTw`$m5sG+_#njM`u9~aXA`U+Nb#aUflQ#|Co@}jw-F5FpInH1L^-P<{g`4EASYBv-__*ZzQRPVNI+
zo=V>Lq@K)OfT9jGRG#2784RnXN|A`D-&wm=m69>dIzNxd;@!+GyCvBhi-CXxY}&Q`
z<(b@NZdS5FUeg2I^mKtG5OKyUCQiT$i02x@rC7ou5ZJ%Jc(|#`EF7a&TpD9?gp1%A@WB)la1t8j7
zBedQ`JJzp~UV%u$9n2%16iz!6RwZ9JVo;V)2M^cW!#d4HUMgadD>q2K(@%jykNAAe
zY_odPXtwd)wy0OQqoYZ@@co_9-H{|eKF&~L=zx3zAaTX}=3ChsyT+BkT&^x18oU^6
zoaaQW<%Q?gJizjUl7wz*8v80?GzR-RzNd>od}C;hJmlC$Bko8_$r7;vFHevB2F_=^
z55_-Ec?%qg$&_>Zjxad8j#fj@fol@sk>aZ(qO5VtK4pcv5
zd=|`)u*5a6!P)t~=cJ@H0v$ermRFaFt=S>lfK7sa&|^x=_imZxXsyiE?rj8L=UaO(
z_wkbRO5%)nDdFjgnGdrUKbtVdovvuNCWI4wt;`84!l`B&qVbl~`C6OYtnbAtMvg@D
z0R2X8HC?_!djPrL=b
zUEsSbROytNp2>XcVj_r9{FYeTiHw
zhVWgg-KDpy-4AQsd{XfHP2b$1mwALxqXr3*<2FwS+(J`MuM*C6
zB=L`|;&QLh#qav3k{=r;3Vys#DMy#P+aGE%Z)NZO`Ovai*nKNr#xXLQ1$swsPe*@E
zoDSjOT0L*n&|W7n|bz9&Y@ZQUXA-4@uydHhLw)n_IehNFGp_It`n
zQ`q;P$H#8uSW^lcM5%_8C0GXjh8ffo`QC5yoq;#v^Z?sXZ(@hIsiaViH1BdTq7kV#z%|
z?RwM$6h@G2J?{6p2Qjt68Xnp7Q-2n^WE!48E;SzJPsOwJ+qfd*Q}iV2
zLixy@rDP+`3A=TEVom9-t;z&abx`YSm^3zk_1)C#W|NC~e(tP)c<2<$zK=2(9^2Y|
zmxu_qpzm!N<=U>P+*L^c7XL&LXd|_T|5T=indw2lZ{U;pdh_JnKk>@{$8i+Mrl~m=
z1YqU?cEg{L`gNbYSyW2D6;gk_W&RoF0NdjueYwZ=Nd_+H5%d9uw1b0&_G1?0HU+8%
zOGOd$Z!&Z6s?aqQ6qGH|{nN=4{$CH~+-P`_=78_|_I>}HiKAZxT16BfAfLZaj5ixj
z^vz#&u(dHa0(i0j2lk)01i^+RMCtTk;B-c}H@l
z+v|v@UvQ*5vnu?4t7OKCV>uw9AUc}ex(R{lhZ%LS&EB!n-9p%e`w3}9m@D@6!y^Yh
zjp4Xwr=Ro@7eZeA_&I9)uB=m&AFvXPWI&~RFf)D699EumC^;}P8gs(9F?dCGoOu{H
zBxJlf*mN|%zzGN4b=rXz%0N(*o{~oj=Z7cBl}#K+PhenQe}1!07Np;7M!W9@6bX$RtfrkYaq25h
zZLj?0t7o|nO;19DYqh=b3{S1?_r@6myvEpEx%e&CpRu?ShL#r1(mx{{o+ZlkfOFg^
zU6(dmc|TDfW;jmuM&|tZR=HFS)_|pt+)kEBSm{HVFmVAk4kon0dx0P-%6ri|)uNgs
zJ)Ep~vqO&tr4+m2U!1_%WNy0(L}U@1q|@+H=Aq;o97=kn1=*hUO2re_5}E*J964(Dx)WvJJO0|{(2-mffB_ocO(`^TS6Sj
zC1*^LP?^XGk&u8-XT~SwM^3b$w&ucHF5=4fAPh_wz;U+}3!X=Y;)4g+2yP!Q$fNIr
zr}Jh5rgvQ3jr3A`v$jmB)I^f#B?uH>cMwFre`_|X2e*;#kY5LlRp9W9Zg
zo1cLui?tW^Oep%xhZnL>yq~7T$TyRTzJ`~?<_n2o-}aUH(J)x&OgM{mXMYJ18NuK@
zIQ|xmh~?dNBaN~g6ih|oLZC8AL7+T_d`?}cDTv2Fuq&09TbU*C!3
zxgDsR_i~n(u&)(}#dP|R0&|n6v@>qkGD6|GQs&aXn2?T53^knW!hE>zZ$pWKy?@O`qjF
z3&OKD6x1STH(&nfD|5M@c?-#lJJ}F!F7hyyj
z@wZ6X@^8gSG6pv0cFurmCO}ydq1s>7Fa57&EYARC3QrdBx_s<+8+Mj_1&+rM5JVgkUbg
zD4az8-QGRU$^s{X8Hyot^!I0^;AS3m7=0#$)fhr)p>Wi@T_l4Yc1*uZit@y2)=I(e
zBB}2}H1#+`wBA7rpDPc}=Kum_lw@LoP;#=8x?&G$8eR5t)6Btp?o-0T#Cer^5MuLJ
z+Uk-`;;SUW6{QK#@rUFUA80k9D$vAipo)1fF66#-<+Jz|Z2*
zSE<6j(qX!To^uY=ho=Wv?Ay)fD*oh-R!*szM9LO*D(NQ5gW9p)Y15zxN{p+TFlhCm
zp&?XZ4T3{qr?O^lLtKU+p44h^QyZ*44$B#n)bP^Au;Zs_*M@^LerH7dq?j(^A7|=C
zVxkJlfj0!Sn
zVnPShhib3^ayG=S@-7aadG(VFb!zKSQA?ZDiSWJ(Gnrg?wxVfGkwICOn9
z?Qa_+wK7U>EheNKQX^U7-%yR;72JgTkQyTPYDL_`!h~W+-a~*V$QHJ!+|*9=v)pK@
z*havT)Pxw&DWdyr9m$h$ujW3|N9S}zfA~JoMiFK~O3yfRSnm>zE+6cfv0$U!@;tRu
z;0B*EkBBr8gmfG10@;E`P%_fnI+@>8uWw!*_p&S%BCl`Sl^{JeK;M)hlTeGskOJS*
z`Q7N5%ax;I5gf9Dk-Br?xb>L>W08P9{*mrvif8pB1LW(%;_1*3KWk`IAKe!PG5nQ@
z$lVI3GV`<5)s{6{o}XP9Dkr4N;@tIh+zQL?SBXPb&9Fbo)QVkQywMATOR%+)v>(dt
zh7R)hf!|~nC-O4nY04@mJ(mSqJFiNM1HCp@VW+H;{Gsnt~nz`DrEDzDs`Wbd(OOUm#*RYcmv8
zcf7yi^K@pFF$#EKBa$_LcKLdC+IlryLd4LPXSS}ZQIF$5GA!yNypSe=YT+^j=i)vC
z;q=Kg;`HZj-4uy&rC>|a3Bt8|2Gwa!ivyfJ(C}6se~s;Xrbb99VA{Tp_Zaa%XeJqD
zcaikL(_xV>o>ir^Qq>6IoZ}|5oX5<+6VKlHLdo&bFO9A4$_`B{L*dT^n24kpvjnZ3
z)GrgZz0ICfF3y!>u0<7K(p0{yz0k#cwwu_Dy0MB_LEKfC@AJvFwVmPNP=A
zzrXD`2UK<3cn4BA1!0C*5$C5?iPrs6hawnZ)^=Hb@&c@`KO
zme$Z~;4>RuXbyActG+;4=soj^$}T6rzJ@!x$l9^=*d2iOoR>Is@vQ$fNbbV#sv>d~KZEx{6sx?6>YP#TYK4I9il!rU{+9^wKWB
z>%S~QkXBS7!^Y1SmnuQ6mrbjbHl5Z~=pidic!GFCbwxTq
zp(Oy-Z#ei9)xUz`4b>jMH7oyn%=mYOGy5-a1_JmKE`J}+!VV?|PXB6=`6PhPZ{sf*
zJ*ToP3n(=CM|Ljn=nF=Pc>^3!7a9sf3|wELP*)w)*LQ22q
zCl{B2s@Lk;Mh~E(3J?-JztDZ=E|BA^xQW{ghJsJF|KVIR@-nThWC#T(yedNtBWlrE
zo68C$!==(gYc-~e&?SKZHvu%>t51%t%_=pl2|)vR-F_(Ki_)jdkSDhT9}O{ALuQWt*)`WYwFYkHfQ2q-g&|FLt*IYuKRCB|t6mkb<-cpHRQQk)?s%`q6t3X*Rk>$_zbv818g(
zgE8Hsmm-+Z2@-wixi%i3fDn!&PX)R4DHa2OntaW3>H``I!%l<-Pz;S;TiXGd($v0*
z?h70mf&-}DyF3)psT3}RO*H4`X+5EG-=W(UIN=kEOA5~?~M-$=p$cAVH9C2
zpe0Z}LpmC&uqI1XF^{|XnSiVEUb0MxJR{jobE0QU`7XHRwRHq$4oj_!
zKL4b+XfwIWzk5ASW#iOA8F~R&tIj)2Xa%h2H}I3xW75u!D|s3C2$G1&PWO7IQvrOes_@HWiDK{YN({>BJ?bRzjEK{0<9e
z8splG{HcU-!3j@)B-^sUoE#wlg1<52PlEqSlQ)9<{Z@ki7O?!gf?VYnkY549s{7vu
z`J0ZVY)dF%4NzSi{{^K57EmzwHvWR;Cn{350Hx(0MT6*Wtkymdec6&qXbMv$60lIY
zW?Ry@jSVh~8UFEuuNgXLk8=fi0yOm78?N72uEw^~788_61V48VTDt7aS{RR}^aT%W
z>6eJ~*}617vs-httV$G4UFcbH+|th?lQXntjF)1zIxP`7TVu^Y)%6c`XY&}I66Pck
zu0{cmue_iL_OUtz4f>@?j4yn8=w=Ft#80XaL0rap+tP
z&{-O#VhiRO`MynFc@pHslYD|7
z(23{*F|31_7m?@{$Wc@LV)@EdzZ&O7hb&oeB9V
z>oHgS(1a2_*!hy}O6)xFi-bo=IZaCzyUEpi`^!QmB9M+TXF%Q^4TYw^loGe~V=z#{
zRG^U1DVr88rRqRN;R8ywc_G!jYTk*8)(O0!X|I!({Inl|pfm$5yo!jfr
zlSfe#vQe>l0pMZI0V#cop7R>&-^&*LmC_Sr!h0p9W#3^9xhAtuRc{^!t6=n^jxG4X
zaKLRIX~mg9k>8jqlp&_rLU-N_cS1Qx*^@?)VF3iXBuB!rBE(#BQg
z#5BI&y0P{if!GlgCYXPCWL@LO4qw0Hx4oV*s1kT_3qTY@3ZtF
zHc;9Yg#VWE76TzCI%}*8VKj{Bo-jFa=)iqwuZhiRe*;-(I~NwD0e5#H=Ahqn8{atj
z5HJjJe9Vhs|F!9cUaP4xL6bpKi{#1v^FZc9uUjSmbgIX+^Hs&G_wouq!^3;|m32$g
zoU$8zJ|3!10o8$PceOX{8mBwHG9|;LBe{UGR&Ir(riVd&_SJxPGaBsm2|yi69!@pe
z5KX75jsf?O+*`8UCt<;020-;275+r^ue^9eb--^$_3uK*zbmcPf1&lv@44LhANAe;
zV$C2jfYWc|uUM_B;{PeQZ>BtTd(^0L*C$*3DR&_Y%xm*yHHxa6(z#Ied0gMjM*c`yumvzhU
z0}CVE8a-w?Z3w=y>;LSt%z7x5_3#2)UXy^F4KM-|CgmLfW7%f%T;ZQN^K6(LV-qIz
z^R;1--k^)MJEW6`3h4E#PVTU&&&ziUOP0(&_)&EeuvxV8gK&e%^QGyKb$Kj_OiGE+
zSQ@k3NSZTEvg28;@T$aP7Fd(6IE)(`rumuWTc~DO`ULU}{Dg44BIG&|b_K*FjHomh
zC8iDh=V4C&Rwj`Y{{nDie$$eOV({{qBoEjxK_tUYerBTt(Jzhfg2s-uGzV(;Y-?P(
z@Cw}W&F!P8ngpW>dkC&E-HHmpnx(Ubi8ulIcU1KKIk`Zc1hNM^_&_Wj<3*?7g#*l?
z33X;Lj6;Sf=rNI4%`uy$r!P&BWa1er-7Ad_kf2^t4&aKXKrp9)JM&h|NfB!|NH;cd
zjzTER%EqGb)CZ(Zjp0^O;85NdlSGboV``lCp^;8uVuW*$uLOBWfD{}ZF425;tbn6x
zGP}cns)rNwh@yZ5JeWu;UdOmgQdTn)YtSkAT~5L195Rg#thZTVt2~5w35Td2Qj5GQsnO9&VC}o6~!V}8v
z__nJ))$2%lpZXuSag0VhZFTX(XL^zO73b|lw7lTJ0XIB%it`#h^JO3_z?lBH;h8MP
z{VM&S8kS^5ot`JEnbe2bKvmg=0<_#2F&X~VI`({qj-*&y4aJ&3#`kjyKq_f7hQt!1
z+T@@#{Gk8AJ1dwd|1NoSRzBaoLO_`uEvDK}GE(kIX-H7Tfxw!i@}6R(Fg?y`BZ=NE
z7`z&J#X+=MlyVhr<`WOaYB~4&Vj#%0X*mN(&_)g%?kClio^QeaeEGbeHGl4%eEx@xq*`qgK&W9N7@`}%Qo(+#J$!%}Nc_|A&8d4t?>vhj`!
ztM|ts6P_jO3hY6YdlIH0E>?rJZX5pba5)E#9(psnZDqoTf*71Oy)}g7JGF5wT5z<9
zUAbo3%lrPiq+lo=a4g<%p9Hqf*yCnMoLL)n&K$9lH!a&3tt=m%IxFZv1iC^nZ_XkDE4@M{
z?|nNPljHlE`UM;kXR`~>Ug(0Z2xwQ|Yo#nz3l?LrWwgY!nFci93%hRfEY5lr&W3+7~^>jhtzjt`YH%AUEs)bPjkRmouTF2$HIFfB}}5K9r<|kOR@j0PQfz%}tgI
z`Hr5*zf`0fh!U_*x}d?{M?frZ&ER^4Fi~xz@tleEPzWQ4*3s`EwD@5X4otr#<*If{
zJt?HX=Y5ugJPwRZ@SQvy%2;sH<^ZeDB)VSP=Y29IrhSvOm-mCbgYciLKS+ccGCSh+
zna}Ukcyr@@#^dSTBBkPrZyhrQ2=IS24p{FAhj+1)NP4#jP6IDrquK0pk1YW=FQ}9$FUHKo#4!`AP
z0!Js?3UErj&qOo`axa)j2fUkxkEUeNI)&afTboE7ChaT#k{H-CPrjk=Gw787@P(5E>5d)EG@eM#O4F
zJXTm};1z%MvlNady=N9;asATsZH}$l5*M97tR+llD^KAZNNv0Wa<8$N5EaON9`5a<
z++)W1@wLR>wRz)u3dwB32ZKbW;iau*g&SlEK?3b0VJBQpguvX)CzpIJc4
z&xqiBo+YSJ6s%@cL2PY(qtPjpZ}KS&0UsV5*EvvZeFNYJg;{Sq9a8Uu#gN7P1}APp
z?!J3y$GJ-O>W`n3=S#cS7GKMb%X&N)PWa3WFH>9k8d1FxJFD!fK-gASVV_g!7=SK-
zxJIBFz?X%@i}}MA6OV!I_7olZV@U+il_YM!i{;m&5T@GwU>;R^@Lf%^!SU#qEWFtG
z5e8DJ9K=nJpI8Ugg(pldg$s120KJ2qpCYg640Z5!>3N&sSI$(=
zCf*50J%V=j@vuW&oBbYc)s?*G2pJE#6+PiyF;b0_>NPw*H5~?QYz5`||(~H5@rG
zH0;+dVo`&goGB5PLi^%qp}JVd(9+MBonkhHg6V!75%0=`ilz#(iOjcHlbfO%54z%=
zW;e;p@n`~|
zHAp$*KgRD}#vi7xXv2tkOvCytjxGm)riN(owk_azZx9E-4Lo&;Qb&+BCx2SAKC_L8
zmA6hm$t6>cwj`D)|J13h%4U^Y6l~^)gD^g!2OoHb@OnExV7`9a&
zq>na67V>@=;{~{YsXoF5Y-vB%eK2PeeSf9F9y^&nfN^Hen$K~JqvE+r6Rqjixs32tPr;7Dy`*=mPjv?zfG_>88
zEgLyG)tP^>3(WW?=kZ!*+su3ytZ$yBNAFfkWV3mv_sMidXIWf`WNYiX2mzRtq=DR|
z8gX{4B{&6EEEc@Vm-7MfO(0sunWzo6Z>1KPj*=lE~83g%R$Y?sB5_`*8}7PTZGh$RVfwxT!g^R#WP{sk+L&j9>e%B
zJc#SERi|m3$V_CEI@$vy+DFi(&w2dSS=L;D=gUm4!CslSG|zL~&+dg=^weYoiiKi4}1*>T-=a#i5Nb1W!4J75u$uh
zc_V^(_dus-HaIR}96AGGNw%=w`P_4E2X&J@BzFQ_cAxFMX>^<;rlqONTVUbjiEctJ
zqu0alVgLuYWi^?KypNi`iofaIXgk^nVFK0{M(^sn;t#kehaKeIUR4
znxPa{I?UE#H##{rRyZ={dV8@eoO$PTRBx}FW!seP>s;0(@pGVx4|Pv1zEvTaw(+}7
zD*bF72`b617D~tGqj!?)A$iQG1a5gnr9!NMdv=eBFjO~5O<(;>C|*tSKH>ON-A^aC
zQwQMa;NX0~EbQ*G_C7+8>5X)E8(r92e7M;;j=IoGASi?w@9^Ea7GJcuDf{de62^~c
z8v*Flprk5h+y{JBi-le1tdGF*j=DJrTZj4zwv-oo4;t+I5brl#8!c!@Ypju>5OL~&
zHl3*F+^oxfUx^hP+^5gPyVZl=NND5KHxPL1H`FwZ^!nPTN|2~_Sl3PjLd7^(1>cqC
zGR!HULZkaQWc*O@I0B0m7>aT^RO)OMOJtR~;L8a?jPkRNtc-OD?@g~Afjw9sIb)bX_*@;16YdXavet%8!(4$;R(gUW3+@+4T&NEP3l>A@O&T7hfZ+-nyhKV?
zOoPgS#oZG6W=&mhc0jKe?j=C4m)?K$dO=m&!$78mzfO``!wdd){~Y#Z(LwFjC|lve
z%UxN9a4fuB0{S+x#f`xMBQ|I#{kur|6Tw>$@T+lCng#@cH~#z?1b!uxG$084ewW~P
zKCM^r_`X=>9UuLoB@Th(
z?yjyV`J}YubWo;sun!*?8H0(pVWd#QP_87IuN1K{%<<$vi>K2Va^Z6pv2MS2s>nw>
zr#I3XU3P|Xm3q}ORb6v0+wdJM)CpMXmfyU1ANSo?%CC2I^-L~}(sHr&PjfCVaph9-
zbIhdz1J(f&Y6gE~pda9~zs>%i>%tn2@n7x2K#+b**^a2Iovp*a+AR#9>YM4?_zR6^
zM|C-J=>w8yU}Y6;dAwOS6Netm@si3gIAK|!6j1ge)
z7h%ssx)?YSb2%acYt$V#+`$uNo(JxNA>h;8-+f={|E4lxp*fb`j{=462*S)(<#bYx
z$+1wWS3hP!Rvg02b#L|>sIGAMX^6lF7k@dBGE~e7np(TxA014a#|*R1-KG!O&jydU
zBCCdQH&DBllCBDZ=L!QN4FZ`1ON5Be=OPICQT360#P#;c8i(NvYBPN^?KM`K5+NKG
zA6DnbY+CSCJKy1;E-`SgVrQh-JQV
zGuw{xLRo#bXP$N}pqol7dm;F1m+A2TP*KPY_X+Oy;U
z_3zW&{DBtY9!sI*RG*coOdAlnX1J>YR-9=%qve9{6gS0;D
zOjLEq*Hw6W`~CGG(A3-mc5f<#Bp`+$C9}Vl&C)m>+Q>PeEuz27OVtigrDAXYJo)kt)*h
zEh=67l+xfoFsiK+6|Ez>Y+)KEPB~+nh+7Wty%$;!K+{dGiI>F(y@M#s<{rH5C_Hs+
z5|$JUyl+5UBy#2#^3RAP)0>OzCbT0h(m;^B9YYjVatQYIad6q){Gp>L20Q)Hfe(=p>5
zt}tngtvI$?u9D7L5106}*C*WAFV>UrLScOU6UoqKP}2Ad7K{iPivg%YF2J|b@<}Ht
zEJDFE#U11f$!IS-bs8Qyf;&kFtpx6`3qx6U;2(v?OgS=cqwz|o>j^pY$9oNzPi{h*
zZN;H9AslvPLveGYHRaN!lUk?aY_d0dFTb;Q(^jar8XG6|FnwfufP5n#(dyO^8^Bz6
z2GycA
zpUeUGqpeMBoCpE!tN%x@>i@dyW%B1g{@Jsb7GP<=jlYOX>EI5?tEj3|_D?c+FPwgUGOfj0Vad(p;x(6Xb
zg|Gq!qpT1Ew!(>*o!cp)db++0;yH2V^2qxQX`Y8ml7LTPSQf#LE(zH+fRabRV?wM+
zA%!Q3Q8#C4H5F-TvdgkVYjKQ8PtQ}uhyLxXq9o!Mab;Fdd|2_>yvp7n^(8#0cG
z7Js^3A9(Jk%A~(Ily%hksXP}Qy5Jy=ZC*@?CVa@&$=xMazsrDji;junAe6tUy?hgm
zPeh^3_32o=dP~b|zwMRC;?U2UVO5Vq_*+AI^-jv;0o>cOP(8-I%?5Z5-d6mtp9L4d
ztMPzm;rBJ7`hV%M_$PO2%Ud_u>hwPo$0y)T3sy2(dHer8am3~o==tL7OOQ>^!Ndhg
zj0r;8gpDPF>;NwMU{dTB;x<%F_~1%Nhuh&QxIeN@P
zTr71g&9oGYmSEo{6tY!DY_6-}p^K4C}$l!-bLX?rNpZK;g1-^QNu15D<}4?xL|kw
z>L;^YK<7cUoVb;OMI>*+tR>y^$M=~=t2K}Ba2G4zyu*oY|LK@4ATa%!l(oVafus;}
zADutE!wBL#A_7tvVvg<%1p*=Qwx-2N*n-cKBW2H20PpbP{hN3Anc4ApBDQSAt(0w~WDCiXWG5j@l41~(?6OTG
zB>S4ZG1<55J6RgCWh=6lwIrz?M8;A|_9eW6=j(gtc%Hd?kMH;{#~j0d
z_j#Xw=l%O#_jO(8MwFQ@az^>gCIjZck>&hhp=lYrLbaxN)tb4)=Or7=QksqFeiu__
zpDmRRa9p4A8%e*z5o{6DC>?v*JClZC+}D=rsQ{9#H~IEy9mNS1L2`M?j%*Q8Ns0Hr
zzd6j()*7;ZrDQ1gxv62FY2`~9W+4$D2@iz8;`Ltm3@~<(szBya%)T(Hdd8^LiIiij
ztW&4u`x1O=qVi4q0>b3^gl4>1QCIeDgmf99b2nCZWfm1-SClTpnE2KY4Zy&EGKt
zCFpgL7AgR6^FXjo^AXlS=u~l{ab?8d3V6N4sC^SJ{8SIO1mwKEI8YRno(m-Gcp{9q>1WLStd++(TJL#wJMIFHBXVPq-0gMPg
zW%B5Z)X~D~i9vO)pz&CVkXmV2(csA%gG4)FkGz(6cz0A(pvG2~_jHoXY(>y`l`OxG
zmM8lAdi@jjJArCG>aQvrT;w<;U+}X~pP%GScS^xb*m?2N-qu5p&ko~Y
zHv*TamXwz4!|J=lJE-|1d*2|hEJW2$iXrQe;bFs{jL9@y=Fac7TBnJU+smU?ArThT
zx$g4FiFcHViv0%5OYBx!?|sgfG9jn;ZPc^*kUN!ge@YDbBpd1hPgB0vviH`WP*ttf
z(9UT_v!pu#%3WJ=^@0O(9|yRG6S&BFHljpZYG=8OlmtsLQgOefI&_ZaXsI$HHd$2{v)NWMR~OMZRW#
zqQNCT_kO3Rb@|2tzo+`aUHB2V;L-bKb!4vW=AZ=
z^5N2m(S7~Fqk7X~N*hW_nwIz!@l02#bEaK+#`7tAiR;HRw9J`R&gP~$T#U?XAir_8
z`ShkxxBJQZ123+fP20-Oq`;4b)n*BK#P-6q4~vUjOL*n=V`03M|7)IgWwH1~o_4ka
zGjol-bXP@KI^ScI5Z@gd+N6_x2=~%j1&iqFrN{!i;57CGckjz(v`w``Lh&od_6Uz~
zDta!;^Xp<%dd4b^_JrTCiJo>kz<5WcH9qjJciB#Ror-*IsV2)W2=wfs9yKk0`;{*)
z*IiGgZOQ)dy^~Fku+mU*D(G^>G4)iXrj|`Pj0yJMOv-`hVAW*luFrHSB1dg6iuzeu
z^1{=P=UG1NzLdvU@If&6!fFk_rDq2IU7{h}w|?=kn~}Q)S$ZS~l~eU&t<#pN?}El|
zT(GJ-@Nn_=#A$_?{>%Bu24lHC9mB{k-w1d;ICLTByPOqqgiPI1h9eG*l_Vj9JH?m)A!Ya#Ttc
z2|m&{vykiX1mr%Z-8ZlpFZY0|{3-Wfy#eGN+A=<9r04&u*2{vl-V&exfMD8~veRXc
z-%ru1R*qJ#|8#oF0ABBb&rdWTu!X=UdjGJ6h&L8}55px5b}y8CTU)P{lOMvBOVhEd?y1P}mXtruls|=HNqo#&y_4l6>Q*2nE$ocK
ziWramy*1td@4;iCHzXR#?miY_H!Wp!;P$(&Q*Nj3u!E;S=U$=7R!@=PgTnU#`I@g&
zo)0HNG&92zN0J=onXY|_W1k3pf@$bZ!=@2
z$Zg!@sgfmb8F3rL>4Z9SbL$|;SlHNhw}*+1yTkW;?G)-a*cs_#no3(M#@W1i>8qoN
zcVw&A+7HRflvbB^p}Zqfd^Qw7pXNu-qM~#PMDUpjgc{|=g2$=!C*1-DWWqcd`sjiX
ztQ+#h{k!y+%Xs4kJIyTigkRxwAJoeG!6D{yuFYHvyB)dU+OxHt@+87kT0|Cga8eWZzy~wz|cqaI|ZG)44V@nHA+ly0~CHM4Xj%
zcotVxy|IVl7vGfI_*pTuZUKJx)kRyoV4^ZcwC#`TSy$@=N2ja|zpnLkZs@=JxZJvQ
zyT;FdRXd#{>f6ZZ=W9y>w6i?37D=cs6;VYiwn`j!u=7c4Pl-+7?(^_-v`738Fue-v
z=%5#pJv3_5m7JPJ_vz5iDB((c}gZVP~G3|54dHFjIpOcO|^^HcH7q<6f6&s3wHcr*G$wtzr_Jq>c7Zvd`IT){&
zHvORW-7Kf92PfD??@z`g)*0DYp|3x(HgULdT)0BnpQ0e^LzGP{lNya^g@!D0=;iL!
z=1on@m8u&pJl8d4=;_Nx;FrnsrFj=$UP7tPJ!IN4%
z5$m+cK@^RF9CH^hq)T{bqD0}+;C~
zl)B{)PYewz*2xN)3_pugm!8HYc#V8LwfG%fv&JlMHuH2dVn)r%s+V!qKXgi7U*UvG
zM?-V+wECj{o4d7^lFNmLYxn3kMBPgr7w6}zMuknjanThIs=IKi^tFyFC++EUy2c#Z
z5G7U?9QI(%&_G4c@?Z%zZ7g7RE$BFl=E5OHhGVU0{9}%i%9?Uc@h(2W3<&I>k3F#T
z0_hQGXM;hj!hiGe_utH4U9gcqvB$D&T55;SFUVgBO_sg?pZTjIP#ujo{^)uQe?TQM
zf2He;FRc8B=c5#S4NWTk1APCrh6bOy>Ltu!=kvL3azeVjO^>GdwD?_)op*I7WUn~b
z>}SUb1Pg9)jJcW!uvaL=hDyu+==r`P%U+IY{ScDJfPOE_g6wk44nOGDL+)8hiA!cZ98^7$&q?2Op}jZovGduNra(mlbab1
zZd_KEy(M441q-VT5yM)JV|y#(R}W%gIS8BK4IZ1{xFsV3IxjSp`OG^un8e+eY8}dK
zN!KoGtb4iU`#tdcr0SDSJ4-}Xevr{qF(!j6#_&xFEczT36*r$d^=nh|7MlIjjF}Pf
z@Z4CMygpv4tGRsKha{#WY0Y
zIRBW+K!B|CmvKcA&1w-FKB;2cGqU_bU+7o%Ayv7Cc78|@kV8z|SYD!h9je<`TCanV
zIc!)b#rx=Z#np1FNtih*rApyN(eY>(vK6Uo8(0V5?lT&(r&xryttGsf
z(ofbW>$hJqwtOycO2u{XgVRVCplFE-_4D0nk9Q^
z&PKZ?8;-fQF}`*imz$4_{Ho@ML@lVIsv0}oan89;^%f}Q@WXFMVOtOTI5dQHU0Mz!
zOy={hxh!an>}(dlSo{X>o%AMdYBQ*~kQOq@;pOoAC
zr)S-Ywss25){r;PmuV1Xe=-(fFze}Hm%cueR_xHCBinxt@0}#Dx7xng@22FXgFOsX
zdNEa+9z_w1*XWHtd!ZxdP_Mf=Uh0j$dl#s*83+rJz1fir%Prq!l^k1r&(wi#Qbt?z
z)svJjm%rQBsCX-JrYrp;;C(>aq@vfP_h_{ajwl@U;AejeB6>Zl?ZuIF^Q
z-{_vwtlQCs#o=7q+T5#85^wH4ftCrPfN^PznNO*vpGDVorOOW=uSSpXdTnwooVY$p
zyOlkCudOG5ulQk=)GPfr(!ptYDI<(oG|1U|rEjlRa%SSp+&@RzMmr~GH8l7)40z5Z
zn|`YW-z{qKFC>1Cc_rYB
zMCIP*6#G-d+CMIaU|9=xVFfH}2{DiH$N&0o-hZ`$?FEfLFAK1M1zR-&89zc`G3`4@
zzDLk_GXCT&_*WEQ(?cMSKnN^GngVolNu>N2noNQL0bY$@YqagOR8f*l3p5^RfP3R#
zwjF;(0rnuT+ak>Z8%j4MB5MY~
z0$wvfWd$Lym>GH~$$=6U5sCoM6R;Z!;FUxOEXJOJWQriNJt4vl00YbpVBJCpEC$O0
zB|8uyB0|jXJ`W%V2*3}85LgU1E6K$C-0FeIeFm-y?8X4NPY?o&Q9lUfeg63c61i=F
zDFk@JIFP0#1Qw&qLGo<_Ud;VciwLlQ0%*Wb1R(Q42rP!{FqF3&T3|$I0%ib%rvq<)
zG6eIIPSdZQOAaOpzyj8u?N0`n0Hh>A2#W|s!0b=(R8U|@Fd?v*XhD)GB5nL95upOE
z9!v^QI7J97rbZM>Qb+?rga%-MA9%E%=QbdM;v~}m$qYXtYycp@YyeXT34z6UNkYj6
zBzTCB0*vYc5Ag!p0||k}tVoee3LwV6XwV;6x&RztUVvsILSQk6<)GvRDo8}A0Y=?`
zhu~~K3g*g_PR$>#&Hpe1{U4@!fr$Z7fQi|D6uf>KQeq$hM1&S#)CG75#`YESRf%L;
zpqh3;M9BagU}Cnf7$!KB#6Sg!2sJ=kIk@2*C?X^T7L%Y#GBv=;hq|+z2u%Pc@WvTv
zl_vxiqpS%fO}_#j5z2rjP;h(b_SIC5fP^wA`apq(_5YCZ0&sxaDYvgCbseZ_f&vl|
zYJfgaaG%un{n|TSlBt2DA&SWI0YHEojJEIBa7Iw_0tp@>qyTME;3k>vN3<)(B$M)s
zx?zaW1i%9KjQ|}!gur6lOrfOd7a=4<9MJy)E`8sAj5}dYGI4--|Eg{n@P-Zm0^T=l
zf5;kGKuHy3n23-Al%s+RRkv@o`!ADB4m1_1L>3W%0?f?zt+t8{l*~W_hzKn}xfHmN
zYI_Q_1#hHF;#(JJE2fCh1E2xd7Hv;~o^*ne9%z9Pp$VvE09QExrBQ^yV%D5VrU{C2
xhMyElfmIE_0N!Q;^%#V}V&EQ7k^=>tpHi|L|Gt}yOc4LGlbehz_ZslmzW|u^)KmZf
literal 0
HcmV?d00001
diff --git a/src/pages/resources/openapi.json b/src/pages/resources/openapi.json
index 8fcafa14d..20dac5c3d 100644
--- a/src/pages/resources/openapi.json
+++ b/src/pages/resources/openapi.json
@@ -13131,7 +13131,7 @@
             "$ref": "#/components/schemas/inprogress"
           },
           {
-            "$ref": "#/components/schemas/AccessibilityCheckerDone"
+            "$ref": "#/components/schemas/done"
           },
           {
             "$ref": "#/components/schemas/failed"
From 3f785fd08a2a4769fcc2fa891630e0f39393a623 Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Wed, 28 Aug 2024 17:00:35 +0530
Subject: [PATCH 13/39] removed extra file
---
 ...with External Storage Postman Collection.zip | Bin 38841 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 Platform PDF Services with External Storage Postman Collection.zip
diff --git a/Platform PDF Services with External Storage Postman Collection.zip b/Platform PDF Services with External Storage Postman Collection.zip
deleted file mode 100644
index 19ca7bb6e6bb4ad74592af128599eabbdf75d92f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 38841
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
From 3ff11e14c27e2dc24d969366afb41117084c2eca Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Thu, 29 Aug 2024 12:35:38 +0530
Subject: [PATCH 14/39] acessibility checker response update
---
 src/pages/resources/openapi.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/resources/openapi.json b/src/pages/resources/openapi.json
index 20dac5c3d..8fcafa14d 100644
--- a/src/pages/resources/openapi.json
+++ b/src/pages/resources/openapi.json
@@ -13131,7 +13131,7 @@
             "$ref": "#/components/schemas/inprogress"
           },
           {
-            "$ref": "#/components/schemas/done"
+            "$ref": "#/components/schemas/AccessibilityCheckerDone"
           },
           {
             "$ref": "#/components/schemas/failed"
From 470ae828fceff477d5b830999c1f908524172469 Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Tue, 3 Sep 2024 20:22:55 +0530
Subject: [PATCH 15/39] changing branch to main
---
 src/pages/apis/index.md          | 2 +-
 src/pages/resources/openapi.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pages/apis/index.md b/src/pages/apis/index.md
index f21695d07..1e5df79d7 100644
--- a/src/pages/apis/index.md
+++ b/src/pages/apis/index.md
@@ -1,5 +1,5 @@
 ---
 title: Adobe PDF Services Open API spec
 description: The OpenAPI spec for Adobe PDF Services API endpoints, parameters, and responses.
-openAPISpec: https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/develop/src/pages/resources/openapi.json
+openAPISpec: https://raw.githubusercontent.com/AdobeDocs/pdfservices-api-documentation/main/src/pages/resources/openapi.json
 ---
diff --git a/src/pages/resources/openapi.json b/src/pages/resources/openapi.json
index 8fcafa14d..3e9f7443f 100644
--- a/src/pages/resources/openapi.json
+++ b/src/pages/resources/openapi.json
@@ -2,7 +2,7 @@
   "openapi": "3.0.1",
   "info": {
     "title": "PDF Services API",
-    "description": "",
+    "description": "",
     "version": ""
   },
   "servers": [
From 7a86f28bc2b3841d5da2b7dcbf2a63470f21e1aa Mon Sep 17 00:00:00 2001
From: NamanChhabra <57210650+NamanChhabra@users.noreply.github.com>
Date: Mon, 9 Sep 2024 15:47:56 +0530
Subject: [PATCH 16/39] functions doumentation
---
 .../document-generation-api/templatetags.md   |  38 ++++++++++++++++--
 src/pages/overview/images/arrayasstring.png   | Bin 0 -> 65798 bytes
 2 files changed, 34 insertions(+), 4 deletions(-)
 create mode 100644 src/pages/overview/images/arrayasstring.png
diff --git a/src/pages/overview/document-generation-api/templatetags.md b/src/pages/overview/document-generation-api/templatetags.md
index 2cef92de2..c3d82c412 100644
--- a/src/pages/overview/document-generation-api/templatetags.md
+++ b/src/pages/overview/document-generation-api/templatetags.md
@@ -26,10 +26,10 @@ A placeholder(text tags) gets replaced by the actual input data.
 
 
 A placeholder variable can only be applied to an input field of type
-string, number or boolean. 
 Formatting applied to the placeholder
-variable in the document template will be retained in the output
-document.
-For more simplified styling and formatting for the placeholder tag from the input json data, please refer [styling and formatting](../document-generation-api/stylingformattingtags.md) section:
+string, number or boolean. 
 Please refer to the **Arrays** section to use array as placeholder variable.
Formatting applied to the placeholder
+variable in the document template will be retained in the output document.
+For more simplified styling and formatting for the placeholder tag from the input json data, please refer [styling and formatting](../document-generation-api/stylingformattingtags.md) section.
+
 
 JSON representation of the input data:
 
@@ -74,6 +74,22 @@ A prefix value can be specified for the placeholder variable. Doing so will appe
 this value before the result of the tag.
 
 
+ 
+**Arrays**
+
+To print the array values from a JSON object, you can use the $string() function in JSONata with the array's key name.
+
+JSON representation of the input data:
+
+```json
+{
+  "companyName": "Tech Corp",
+  "discountCoupons": ["SummerSale", "BlackFriday", "NewYearSpecial"]
+}
+```
+Prints array input as string in the output document.
+
+
 ## Images
 
 To dynamically insert an image in the document, add any image as
@@ -447,6 +463,20 @@ Here is the list of [supported aggregation functions](https://docs.jsonata.org/a
 aggregate numerical calculation can only be applied to a list of
 numbers.
 
+## JSONata Funtions
+
+The Document Generation API supports various JSONata functions, including:
+
+- [String Functions](https://docs.jsonata.org/string-functions)
+- [Numeric Functions](https://docs.jsonata.org/numeric-functions)
+- [Aggregation Functions](https://docs.jsonata.org/aggregation-functions)
+- [Boolean Functions](https://docs.jsonata.org/boolean-functions)
+- [Array Functions](https://docs.jsonata.org/array-functions)
+- [Date/Time Functions](https://docs.jsonata.org/date-time-functions)
+- [Higher Order Functions](https://docs.jsonata.org/higher-order-functions)
+
+Please note that some functions may not produce the expected results. It is recommended to test these functions before incorporating them into your template.
+
 ## Adobe Sign
 
 Adobe Sign text tags can be placed anywhere within the contents of the document template.
diff --git a/src/pages/overview/images/arrayasstring.png b/src/pages/overview/images/arrayasstring.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed0714f10b4c022aaa3668a3ebfea61928171264
GIT binary patch
literal 65798
zcmeFZWmFv7);3Cn5FmjhgpeS?f(1)(hu}_dcL)$HIE{4(0fM``ySoRM1{!w>(nxR`
zXr$@BP4;=S_deel?{|LQd&llEs=BCJwQAK|b3XH#bFL=fy}ZOjEJ7?aG_;3OlA=mz
zX!o<|4fC!Ktx^aY4PWo$GkyC2iUK%1{yWW
z>1~ySrad9+v*8r&duTOL#1XVasu*Mv@ywx^$5~+t(z#J?Xpd<-)83B!
z_yiRl%+G&=26~T#9q&^MWnZ(q7fcEEA}vRM96{^R$P^#t9Us?oKO()0R<;`0b%FLM
zr+K#8BjRZ%R(01Kp>G6Ic8$d9Qg(&J2Qjl<-Q{F9=t5GyosaYGq`RRXpWL?LnRvhF
zKcm=(cmLM=ERo%ms3?#R7rK$9Ipr6PLa^lZJDO|T#DdO5V)@HAv1MXv(QtG?rqysT
zl9dG6v~D8f=b_P27)g#38d3UUW6xR5CjV)X&;pHY$hWT=c&oU#QwLufMMsijhQ`fj
z-CN*$Huz%1dnTgy2-kN8ZB@w7Sv3BOf*ju6N^(EmyD3b4X1(uOX5|2!75vA!#}F