naftiko: 1.0.0-alpha2 info: label: LinkedIn Recruiter System Connect API — Access Control description: 'LinkedIn Recruiter System Connect API — Access Control. 3 operations. Lead operation: LinkedIn Upsert Entity ACL. Self-contained Naftiko capability covering one Linkedin business surface.' tags: - Linkedin - Access Control created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LINKEDIN_API_KEY: LINKEDIN_API_KEY capability: consumes: - type: http namespace: talent-recruiter-system-connect-access-control baseUri: https://api.linkedin.com description: LinkedIn Recruiter System Connect API — Access Control business capability. Self-contained, no shared references. resources: - name: v2-atsEntityAcls path: /v2/atsEntityAcls operations: - name: upsertentityacl method: PUT description: LinkedIn Upsert Entity ACL outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ids[0].atsEntityAclId in: query type: string required: true - name: ids[0].dataProvider in: query type: string required: true - name: ids[0].integrationContext in: query type: string required: true - name: ids[0].atsEntityType in: query type: string required: true - name: ids[0].atsEntityId in: query type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: getentityacl method: GET description: LinkedIn Retrieve Entity ACL outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string required: true - name: atsEntityId in: query type: string required: true - name: atsEntityType in: query type: string required: true - name: dataProvider in: query type: string required: true - name: integrationContext in: query type: string required: true - name: start in: query type: integer - name: count in: query type: integer - name: deleteentityacl method: DELETE description: LinkedIn Delete Entity ACL outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ids[0].atsEntityAclId in: query type: string required: true - name: ids[0].dataProvider in: query type: string required: true - name: ids[0].integrationContext in: query type: string required: true - name: ids[0].atsEntityId in: query type: string required: true - name: ids[0].atsEntityType in: query type: string required: true authentication: type: bearer token: '{{env.LINKEDIN_API_KEY}}' exposes: - type: rest namespace: talent-recruiter-system-connect-access-control-rest port: 8080 description: REST adapter for LinkedIn Recruiter System Connect API — Access Control. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v2/atsentityacls name: v2-atsentityacls description: REST surface for v2-atsEntityAcls. operations: - method: PUT name: upsertentityacl description: LinkedIn Upsert Entity ACL call: talent-recruiter-system-connect-access-control.upsertentityacl with: ids[0].atsEntityAclId: rest.ids[0].atsEntityAclId ids[0].dataProvider: rest.ids[0].dataProvider ids[0].integrationContext: rest.ids[0].integrationContext ids[0].atsEntityType: rest.ids[0].atsEntityType ids[0].atsEntityId: rest.ids[0].atsEntityId body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getentityacl description: LinkedIn Retrieve Entity ACL call: talent-recruiter-system-connect-access-control.getentityacl with: q: rest.q atsEntityId: rest.atsEntityId atsEntityType: rest.atsEntityType dataProvider: rest.dataProvider integrationContext: rest.integrationContext start: rest.start count: rest.count outputParameters: - type: object mapping: $. - method: DELETE name: deleteentityacl description: LinkedIn Delete Entity ACL call: talent-recruiter-system-connect-access-control.deleteentityacl with: ids[0].atsEntityAclId: rest.ids[0].atsEntityAclId ids[0].dataProvider: rest.ids[0].dataProvider ids[0].integrationContext: rest.ids[0].integrationContext ids[0].atsEntityId: rest.ids[0].atsEntityId ids[0].atsEntityType: rest.ids[0].atsEntityType outputParameters: - type: object mapping: $. - type: mcp namespace: talent-recruiter-system-connect-access-control-mcp port: 9090 transport: http description: MCP adapter for LinkedIn Recruiter System Connect API — Access Control. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: linkedin-upsert-entity-acl description: LinkedIn Upsert Entity ACL hints: readOnly: false destructive: false idempotent: true call: talent-recruiter-system-connect-access-control.upsertentityacl with: ids[0].atsEntityAclId: tools.ids[0].atsEntityAclId ids[0].dataProvider: tools.ids[0].dataProvider ids[0].integrationContext: tools.ids[0].integrationContext ids[0].atsEntityType: tools.ids[0].atsEntityType ids[0].atsEntityId: tools.ids[0].atsEntityId body: tools.body outputParameters: - type: object mapping: $. - name: linkedin-retrieve-entity-acl description: LinkedIn Retrieve Entity ACL hints: readOnly: true destructive: false idempotent: true call: talent-recruiter-system-connect-access-control.getentityacl with: q: tools.q atsEntityId: tools.atsEntityId atsEntityType: tools.atsEntityType dataProvider: tools.dataProvider integrationContext: tools.integrationContext start: tools.start count: tools.count outputParameters: - type: object mapping: $. - name: linkedin-delete-entity-acl description: LinkedIn Delete Entity ACL hints: readOnly: false destructive: true idempotent: true call: talent-recruiter-system-connect-access-control.deleteentityacl with: ids[0].atsEntityAclId: tools.ids[0].atsEntityAclId ids[0].dataProvider: tools.ids[0].dataProvider ids[0].integrationContext: tools.ids[0].integrationContext ids[0].atsEntityId: tools.ids[0].atsEntityId ids[0].atsEntityType: tools.ids[0].atsEntityType outputParameters: - type: object mapping: $.