naftiko: 1.0.0-alpha2 info: label: Content APIs — Use Cases > Document Ad description: 'Content APIs — Use Cases > Document Ad. 6 operations. Lead operation: LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use). Self-contained Naftiko capability covering one Linkedin business surface.' tags: - Linkedin - Use Cases > Document Ad created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LINKEDIN_API_KEY: LINKEDIN_API_KEY capability: consumes: - type: http namespace: marketing-content-use-cases-document-ad baseUri: https://api.linkedin.com description: Content APIs — Use Cases > Document Ad business capability. Self-contained, no shared references. resources: - name: root path: / operations: - name: putuploadthedocumentfile method: PUT description: LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: documents-document_asset_id path: //documents/{document_asset_id} operations: - name: getgetasingledocument method: GET description: LinkedIn Get a Single Document outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: document_asset_id in: path type: string required: true - name: documents path: /documents operations: - name: postinitializedocumentupload method: POST description: LinkedIn Initialize Document Upload outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: action in: query type: string - name: body in: body type: object description: Request body (JSON). required: false - name: posts path: /posts operations: - name: postcreatedocumentcontent method: POST description: LinkedIn Create Document Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: getfetchmultipledocumentcontent method: GET description: LinkedIn Fetch Multiple Document Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ids in: query type: string - name: rest-images path: /rest/images operations: - name: getgetmultipledocuments method: GET description: LinkedIn Get Multiple Documents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ids in: query type: string exposes: - type: rest namespace: marketing-content-use-cases-document-ad-rest port: 8080 description: REST adapter for Content APIs — Use Cases > Document Ad. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1 name: root description: REST surface for root. operations: - method: PUT name: putuploadthedocumentfile description: LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use) call: marketing-content-use-cases-document-ad.putuploadthedocumentfile with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/documents/{document-asset-id} name: documents-document-asset-id description: REST surface for documents-document_asset_id. operations: - method: GET name: getgetasingledocument description: LinkedIn Get a Single Document call: marketing-content-use-cases-document-ad.getgetasingledocument with: document_asset_id: rest.document_asset_id outputParameters: - type: object mapping: $. - path: /v1/documents name: documents description: REST surface for documents. operations: - method: POST name: postinitializedocumentupload description: LinkedIn Initialize Document Upload call: marketing-content-use-cases-document-ad.postinitializedocumentupload with: action: rest.action body: rest.body outputParameters: - type: object mapping: $. - path: /v1/posts name: posts description: REST surface for posts. operations: - method: POST name: postcreatedocumentcontent description: LinkedIn Create Document Content call: marketing-content-use-cases-document-ad.postcreatedocumentcontent with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getfetchmultipledocumentcontent description: LinkedIn Fetch Multiple Document Content call: marketing-content-use-cases-document-ad.getfetchmultipledocumentcontent with: ids: rest.ids outputParameters: - type: object mapping: $. - path: /v1/images name: rest-images description: REST surface for rest-images. operations: - method: GET name: getgetmultipledocuments description: LinkedIn Get Multiple Documents call: marketing-content-use-cases-document-ad.getgetmultipledocuments with: ids: rest.ids outputParameters: - type: object mapping: $. - type: mcp namespace: marketing-content-use-cases-document-ad-mcp port: 9090 transport: http description: MCP adapter for Content APIs — Use Cases > Document Ad. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: linkedin-upload-document-file-select description: LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use) hints: readOnly: false destructive: false idempotent: true call: marketing-content-use-cases-document-ad.putuploadthedocumentfile with: body: tools.body outputParameters: - type: object mapping: $. - name: linkedin-get-single-document description: LinkedIn Get a Single Document hints: readOnly: true destructive: false idempotent: true call: marketing-content-use-cases-document-ad.getgetasingledocument with: document_asset_id: tools.document_asset_id outputParameters: - type: object mapping: $. - name: linkedin-initialize-document-upload description: LinkedIn Initialize Document Upload hints: readOnly: false destructive: false idempotent: false call: marketing-content-use-cases-document-ad.postinitializedocumentupload with: action: tools.action body: tools.body outputParameters: - type: object mapping: $. - name: linkedin-create-document-content description: LinkedIn Create Document Content hints: readOnly: false destructive: false idempotent: false call: marketing-content-use-cases-document-ad.postcreatedocumentcontent with: body: tools.body outputParameters: - type: object mapping: $. - name: linkedin-fetch-multiple-document-content description: LinkedIn Fetch Multiple Document Content hints: readOnly: true destructive: false idempotent: true call: marketing-content-use-cases-document-ad.getfetchmultipledocumentcontent with: ids: tools.ids outputParameters: - type: object mapping: $. - name: linkedin-get-multiple-documents description: LinkedIn Get Multiple Documents hints: readOnly: true destructive: false idempotent: true call: marketing-content-use-cases-document-ad.getgetmultipledocuments with: ids: tools.ids outputParameters: - type: object mapping: $.