naftiko: 1.0.0-alpha2 info: label: YouTube Reporting API — Jobs description: 'YouTube Reporting API — Jobs. 4 operations. Lead operation: Youtube Create Reporting Job. Self-contained Naftiko capability covering one Youtube business surface.' tags: - Youtube - Jobs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: YOUTUBE_API_KEY: YOUTUBE_API_KEY capability: consumes: - type: http namespace: reporting-jobs baseUri: https://youtubereporting.googleapis.com/v1 description: YouTube Reporting API — Jobs business capability. Self-contained, no shared references. resources: - name: jobs path: /jobs operations: - name: youtubereportingjobscreate method: POST description: Youtube Create Reporting Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: onBehalfOfContentOwner in: query type: string description: The content owner's external ID on which behalf the user is acting on. - name: body in: body type: object description: Request body (JSON). required: true - name: youtubereportingjobslist method: GET description: Youtube List Reporting Jobs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: onBehalfOfContentOwner in: query type: string description: The content owner's external ID on which behalf the user is acting on. - name: includeSystemManaged in: query type: boolean description: If set to true, also returns system-managed reporting jobs. - name: pageToken in: query type: string description: A token identifying a page of results to return. - name: pageSize in: query type: integer description: The maximum number of items to return in the response. - name: jobs-jobId path: /jobs/{jobId} operations: - name: youtubereportingjobsget method: GET description: Youtube Get Reporting Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: jobId in: path type: string description: The ID of the job to retrieve. required: true - name: onBehalfOfContentOwner in: query type: string description: The content owner's external ID on which behalf the user is acting on. - name: youtubereportingjobsdelete method: DELETE description: Youtube Delete Reporting Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: jobId in: path type: string description: The ID of the job to delete. required: true - name: onBehalfOfContentOwner in: query type: string description: The content owner's external ID on which behalf the user is acting on. authentication: type: bearer token: '{{env.YOUTUBE_API_KEY}}' exposes: - type: rest namespace: reporting-jobs-rest port: 8080 description: REST adapter for YouTube Reporting API — Jobs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/jobs name: jobs description: REST surface for jobs. operations: - method: POST name: youtubereportingjobscreate description: Youtube Create Reporting Job call: reporting-jobs.youtubereportingjobscreate with: onBehalfOfContentOwner: rest.onBehalfOfContentOwner body: rest.body outputParameters: - type: object mapping: $. - method: GET name: youtubereportingjobslist description: Youtube List Reporting Jobs call: reporting-jobs.youtubereportingjobslist with: onBehalfOfContentOwner: rest.onBehalfOfContentOwner includeSystemManaged: rest.includeSystemManaged pageToken: rest.pageToken pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/jobs/{jobid} name: jobs-jobid description: REST surface for jobs-jobId. operations: - method: GET name: youtubereportingjobsget description: Youtube Get Reporting Job call: reporting-jobs.youtubereportingjobsget with: jobId: rest.jobId onBehalfOfContentOwner: rest.onBehalfOfContentOwner outputParameters: - type: object mapping: $. - method: DELETE name: youtubereportingjobsdelete description: Youtube Delete Reporting Job call: reporting-jobs.youtubereportingjobsdelete with: jobId: rest.jobId onBehalfOfContentOwner: rest.onBehalfOfContentOwner outputParameters: - type: object mapping: $. - type: mcp namespace: reporting-jobs-mcp port: 9090 transport: http description: MCP adapter for YouTube Reporting API — Jobs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: youtube-create-reporting-job description: Youtube Create Reporting Job hints: readOnly: false destructive: false idempotent: false call: reporting-jobs.youtubereportingjobscreate with: onBehalfOfContentOwner: tools.onBehalfOfContentOwner body: tools.body outputParameters: - type: object mapping: $. - name: youtube-list-reporting-jobs description: Youtube List Reporting Jobs hints: readOnly: true destructive: false idempotent: true call: reporting-jobs.youtubereportingjobslist with: onBehalfOfContentOwner: tools.onBehalfOfContentOwner includeSystemManaged: tools.includeSystemManaged pageToken: tools.pageToken pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: youtube-get-reporting-job description: Youtube Get Reporting Job hints: readOnly: true destructive: false idempotent: true call: reporting-jobs.youtubereportingjobsget with: jobId: tools.jobId onBehalfOfContentOwner: tools.onBehalfOfContentOwner outputParameters: - type: object mapping: $. - name: youtube-delete-reporting-job description: Youtube Delete Reporting Job hints: readOnly: false destructive: true idempotent: true call: reporting-jobs.youtubereportingjobsdelete with: jobId: tools.jobId onBehalfOfContentOwner: tools.onBehalfOfContentOwner outputParameters: - type: object mapping: $.