naftiko: 1.0.0-alpha2 info: label: Content APIs — Use Cases > Image Ad description: 'Content APIs — Use Cases > Image Ad. 4 operations. Lead operation: LinkedIn Initialize Image Upload. Self-contained Naftiko capability covering one Linkedin business surface.' tags: - Linkedin - Use Cases > Image 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-image-ad baseUri: https://api.linkedin.com description: Content APIs — Use Cases > Image Ad business capability. Self-contained, no shared references. resources: - name: images path: /images operations: - name: postinitializeimageupload method: POST description: LinkedIn Initialize Image Upload outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: LinkedIn-Version in: header type: string - name: X-Restli-Protocol-Version in: header type: string - name: action in: query type: string - name: body in: body type: object description: Request body (JSON). required: false - name: rest-images-image_urn path: /rest/images/{image_urn} operations: - name: getgetasingleimage method: GET description: LinkedIn Get a Single Image outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: LinkedIn-Version in: header type: string - name: X-Restli-Protocol-Version in: header type: string - name: image_urn in: path type: string required: true - name: rest-posts path: /rest/posts operations: - name: getfetchmultipleimagecontent method: GET description: LinkedIn Fetch Multiple Image Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Restli-Protocol-Version in: header type: string - name: LinkedIn-Version in: header type: string - name: ids in: query type: string - name: rest-posts-postId path: /rest/posts/{postId} operations: - name: getgetimagecontent method: GET description: LinkedIn Get Image Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: LinkedIn-Version in: header type: string - name: X-Restli-Protocol-Version in: header type: string - name: postId in: path type: string required: true exposes: - type: rest namespace: marketing-content-use-cases-image-ad-rest port: 8080 description: REST adapter for Content APIs — Use Cases > Image Ad. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/images name: images description: REST surface for images. operations: - method: POST name: postinitializeimageupload description: LinkedIn Initialize Image Upload call: marketing-content-use-cases-image-ad.postinitializeimageupload with: LinkedIn-Version: rest.LinkedIn-Version X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version action: rest.action body: rest.body outputParameters: - type: object mapping: $. - path: /v1/images/{image-urn} name: rest-images-image-urn description: REST surface for rest-images-image_urn. operations: - method: GET name: getgetasingleimage description: LinkedIn Get a Single Image call: marketing-content-use-cases-image-ad.getgetasingleimage with: LinkedIn-Version: rest.LinkedIn-Version X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version image_urn: rest.image_urn outputParameters: - type: object mapping: $. - path: /v1/posts name: rest-posts description: REST surface for rest-posts. operations: - method: GET name: getfetchmultipleimagecontent description: LinkedIn Fetch Multiple Image Content call: marketing-content-use-cases-image-ad.getfetchmultipleimagecontent with: X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version LinkedIn-Version: rest.LinkedIn-Version ids: rest.ids outputParameters: - type: object mapping: $. - path: /v1/posts/{postid} name: rest-posts-postid description: REST surface for rest-posts-postId. operations: - method: GET name: getgetimagecontent description: LinkedIn Get Image Content call: marketing-content-use-cases-image-ad.getgetimagecontent with: LinkedIn-Version: rest.LinkedIn-Version X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version postId: rest.postId outputParameters: - type: object mapping: $. - type: mcp namespace: marketing-content-use-cases-image-ad-mcp port: 9090 transport: http description: MCP adapter for Content APIs — Use Cases > Image Ad. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: linkedin-initialize-image-upload description: LinkedIn Initialize Image Upload hints: readOnly: false destructive: false idempotent: false call: marketing-content-use-cases-image-ad.postinitializeimageupload with: LinkedIn-Version: tools.LinkedIn-Version X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version action: tools.action body: tools.body outputParameters: - type: object mapping: $. - name: linkedin-get-single-image description: LinkedIn Get a Single Image hints: readOnly: true destructive: false idempotent: true call: marketing-content-use-cases-image-ad.getgetasingleimage with: LinkedIn-Version: tools.LinkedIn-Version X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version image_urn: tools.image_urn outputParameters: - type: object mapping: $. - name: linkedin-fetch-multiple-image-content description: LinkedIn Fetch Multiple Image Content hints: readOnly: true destructive: false idempotent: true call: marketing-content-use-cases-image-ad.getfetchmultipleimagecontent with: X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version LinkedIn-Version: tools.LinkedIn-Version ids: tools.ids outputParameters: - type: object mapping: $. - name: linkedin-get-image-content description: LinkedIn Get Image Content hints: readOnly: true destructive: false idempotent: true call: marketing-content-use-cases-image-ad.getgetimagecontent with: LinkedIn-Version: tools.LinkedIn-Version X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version postId: tools.postId outputParameters: - type: object mapping: $.