naftiko: 1.0.0-alpha2 info: label: Microsoft Azure Face Client — PersonDirectory description: 'Microsoft Azure Face Client — PersonDirectory. 17 operations. Lead operation: Microsoft Azure Retrieve List Of Dynamic Person Groups In Person Directory. Self-contained Naftiko capability covering one Microsoft Azure business surface.' tags: - Microsoft Azure - PersonDirectory created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MICROSOFT_AZURE_API_KEY: MICROSOFT_AZURE_API_KEY capability: consumes: - type: http namespace: face-client-persondirectory baseUri: '' description: Microsoft Azure Face Client — PersonDirectory business capability. Self-contained, no shared references. resources: - name: dynamicpersongroups path: /dynamicpersongroups operations: - name: microsoftazurepersondirectorylistdynamicpersongroups method: GET description: Microsoft Azure Retrieve List Of Dynamic Person Groups In Person Directory outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: start in: query type: string description: List dynamicPersonGroupId from the least dynamicPersonGroupId greater than the "start". It contains no more than 64 characters. Default is empty. - name: top in: query type: string description: The number of dynamicPersonGroups to list, ranging in [1, 1000]. Default is 1000. - name: dynamicpersongroups-dynamicPersonGroupId path: /dynamicpersongroups/{dynamicPersonGroupId} operations: - name: microsoftazurepersondirectorycreatedynamicpersongroup method: PUT description: "Microsoft Azure Creates A New Dynamic Person Group With Specified Dynamicpersongroupid, Name, And User\ \ Provided Userdata \r" outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dynamicPersonGroupId in: path type: string description: User provided dynamic person group Id. Valid format should be a string composed by numbers, English letters in lower case, '-', '_', and no longer than 64 chara required: true - name: body in: body type: string required: true - name: microsoftazurepersondirectoryupdatedynamicpersongroup method: PATCH description: Microsoft Azure Updates An Existing Dynamic Person Group With Specified Dynamicpersongroupid, Name, And User Provided Userdata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dynamicPersonGroupId in: path type: string description: User provided dynamic person group Id. required: true - name: body in: body type: string required: true - name: microsoftazurepersondirectorygetdynamicpersongroup method: GET description: Microsoft Azure Get Metadata On A Dynamic Person Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dynamicPersonGroupId in: path type: string description: User provided dynamic person group id required: true - name: microsoftazurepersondirectorydeletedynamicpersongroup method: DELETE description: "Microsoft Azure Delete An Existing Dynamic Person Group \r" outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dynamicPersonGroupId in: path type: string description: User provided dynamic person group Id. required: true - name: dynamicpersongroups-dynamicPersonGroupId-persons path: /dynamicpersongroups/{dynamicPersonGroupId}/persons operations: - name: microsoftazurepersondirectorylistdynamicpersongrouppersons method: GET description: Microsoft Azure Retrieve List Of Persons Referenced In A Given Dynamicpersongroup Person Directory outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dynamicPersonGroupId in: path type: string description: Dynamic person group Id to list persons from required: true - name: start in: query type: string description: List persons from the least personId greater than the "start". It contains no more than 64 characters. Default is empty. - name: top in: query type: string description: The number of persons to list, ranging in [1, 1000]. Default is 1000. - name: persons path: /persons operations: - name: microsoftazurepersondirectorygetpersons method: GET description: Microsoft Azure Retrieve List Of Person Information In Person Directory outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: start in: query type: string description: List persons from the least personId greater than the "start". It contains no more than 64 characters. Default is empty. - name: top in: query type: string description: The number of persons to list, ranging in [1, 1000]. Default is 1000. - name: microsoftazurepersondirectorycreateperson method: POST description: Microsoft Azure Creates A New Person In Person Directory outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: string required: true - name: persons-personId path: /persons/{personId} operations: - name: microsoftazurepersondirectoryupdateperson method: PATCH description: Microsoft Azure Update Name Or Userdata Of A Person outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Person id to update. required: true - name: body in: body type: string required: true - name: microsoftazurepersondirectorydeleteperson method: DELETE description: "Microsoft Azure Delete An Existing Person From Person Directory \r" outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Person id to delete. required: true - name: microsoftazurepersondirectorygetperson method: GET description: Microsoft Azure Retrieve A Person S Name And Userdata, And The Persisted Faceids Representing The Registered Person Face Feature S outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Person id. required: true - name: persons-personId-dynamicPersonGroupReferences path: /persons/{personId}/dynamicPersonGroupReferences operations: - name: microsoftazurepersondirectorylistdynamicpersongrouppersonreferences method: GET description: Microsoft Azure List The Dynamic Person Groups That A Person Has Been Referenced In outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Valid PersonId created from Person Create. required: true - name: start in: query type: string description: List dynamic person group id from the least dynamicPersonGroupId greater than the "start". It contains no more than 64 characters. Default is empty. - name: top in: query type: string description: The number of dynamicPersonGroupId to list, ranging in [1, 1000]. Default is 1000. - name: persons-personId-recognitionModels-recognitionModel-persistedFaces path: /persons/{personId}/recognitionModels/{recognitionModel}/persistedFaces operations: - name: microsoftazurepersondirectoryaddpersonfacefromurl method: POST description: Microsoft Azure Add A New Face To Person outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Person id. required: true - name: recognitionModel in: path type: string description: Recognition model string. required: true - name: detectionModel in: query type: string description: Detection model string. - name: userData in: query type: string description: User data of person face. - name: targetFace in: query type: string description: Target face. - name: microsoftazurepersondirectorygetpersonfaces method: GET description: Microsoft Azure Retrieve Person Face Information The Persisted Person Face Is Specified By Its Personid And Persistedfaceid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Target person to get persistedFaceIds from. required: true - name: recognitionModel in: path type: string description: The 'recognitionModel' associated with this persisted face. required: true - name: persons-personId-recognitionModels-recognitionModel-persistedFaces-persistedFace path: /persons/{personId}/recognitionModels/{recognitionModel}/persistedFaces/{persistedFaceId} operations: - name: microsoftazurepersondirectorydeletepersonface method: DELETE description: "Microsoft Azure Delete An Existing Person Face From Person Directory \r" outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Person id. required: true - name: recognitionModel in: path type: string description: Recognition model string. required: true - name: persistedFaceId in: path type: string description: Persisted face id to delete. required: true - name: microsoftazurepersondirectorygetpersonface method: GET description: Microsoft Azure Retrieve Person Face Information The Persisted Person Face Is Specified By Its Personid And Persistedfaceid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Target person to get face from. required: true - name: recognitionModel in: path type: string description: The 'recognitionModel' associated with this persisted face. required: true - name: persistedFaceId in: path type: string description: Target person face id to get. required: true - name: microsoftazurepersondirectoryupdatepersonface method: PATCH description: Microsoft Azure Update The Data Of A Person Face outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: personId in: path type: string description: Target person to update face from. required: true - name: recognitionModel in: path type: string description: The 'recognitionModel' associated with this persisted face. required: true - name: persistedFaceId in: path type: string description: PersistedFaceId created from Person Face Create required: true - name: body in: body type: string description: Target person face to update. required: true exposes: - type: rest namespace: face-client-persondirectory-rest port: 8080 description: REST adapter for Microsoft Azure Face Client — PersonDirectory. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/dynamicpersongroups name: dynamicpersongroups description: REST surface for dynamicpersongroups. operations: - method: GET name: microsoftazurepersondirectorylistdynamicpersongroups description: Microsoft Azure Retrieve List Of Dynamic Person Groups In Person Directory call: face-client-persondirectory.microsoftazurepersondirectorylistdynamicpersongroups with: start: rest.start top: rest.top outputParameters: - type: object mapping: $. - path: /v1/dynamicpersongroups/{dynamicpersongroupid} name: dynamicpersongroups-dynamicpersongroupid description: REST surface for dynamicpersongroups-dynamicPersonGroupId. operations: - method: PUT name: microsoftazurepersondirectorycreatedynamicpersongroup description: "Microsoft Azure Creates A New Dynamic Person Group With Specified Dynamicpersongroupid, Name, And User\ \ Provided Userdata \r" call: face-client-persondirectory.microsoftazurepersondirectorycreatedynamicpersongroup with: dynamicPersonGroupId: rest.dynamicPersonGroupId body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: microsoftazurepersondirectoryupdatedynamicpersongroup description: Microsoft Azure Updates An Existing Dynamic Person Group With Specified Dynamicpersongroupid, Name, And User Provided Userdata call: face-client-persondirectory.microsoftazurepersondirectoryupdatedynamicpersongroup with: dynamicPersonGroupId: rest.dynamicPersonGroupId body: rest.body outputParameters: - type: object mapping: $. - method: GET name: microsoftazurepersondirectorygetdynamicpersongroup description: Microsoft Azure Get Metadata On A Dynamic Person Group call: face-client-persondirectory.microsoftazurepersondirectorygetdynamicpersongroup with: dynamicPersonGroupId: rest.dynamicPersonGroupId outputParameters: - type: object mapping: $. - method: DELETE name: microsoftazurepersondirectorydeletedynamicpersongroup description: "Microsoft Azure Delete An Existing Dynamic Person Group \r" call: face-client-persondirectory.microsoftazurepersondirectorydeletedynamicpersongroup with: dynamicPersonGroupId: rest.dynamicPersonGroupId outputParameters: - type: object mapping: $. - path: /v1/dynamicpersongroups/{dynamicpersongroupid}/persons name: dynamicpersongroups-dynamicpersongroupid-persons description: REST surface for dynamicpersongroups-dynamicPersonGroupId-persons. operations: - method: GET name: microsoftazurepersondirectorylistdynamicpersongrouppersons description: Microsoft Azure Retrieve List Of Persons Referenced In A Given Dynamicpersongroup Person Directory call: face-client-persondirectory.microsoftazurepersondirectorylistdynamicpersongrouppersons with: dynamicPersonGroupId: rest.dynamicPersonGroupId start: rest.start top: rest.top outputParameters: - type: object mapping: $. - path: /v1/persons name: persons description: REST surface for persons. operations: - method: GET name: microsoftazurepersondirectorygetpersons description: Microsoft Azure Retrieve List Of Person Information In Person Directory call: face-client-persondirectory.microsoftazurepersondirectorygetpersons with: start: rest.start top: rest.top outputParameters: - type: object mapping: $. - method: POST name: microsoftazurepersondirectorycreateperson description: Microsoft Azure Creates A New Person In Person Directory call: face-client-persondirectory.microsoftazurepersondirectorycreateperson with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/persons/{personid} name: persons-personid description: REST surface for persons-personId. operations: - method: PATCH name: microsoftazurepersondirectoryupdateperson description: Microsoft Azure Update Name Or Userdata Of A Person call: face-client-persondirectory.microsoftazurepersondirectoryupdateperson with: personId: rest.personId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: microsoftazurepersondirectorydeleteperson description: "Microsoft Azure Delete An Existing Person From Person Directory \r" call: face-client-persondirectory.microsoftazurepersondirectorydeleteperson with: personId: rest.personId outputParameters: - type: object mapping: $. - method: GET name: microsoftazurepersondirectorygetperson description: Microsoft Azure Retrieve A Person S Name And Userdata, And The Persisted Faceids Representing The Registered Person Face Feature S call: face-client-persondirectory.microsoftazurepersondirectorygetperson with: personId: rest.personId outputParameters: - type: object mapping: $. - path: /v1/persons/{personid}/dynamicpersongroupreferences name: persons-personid-dynamicpersongroupreferences description: REST surface for persons-personId-dynamicPersonGroupReferences. operations: - method: GET name: microsoftazurepersondirectorylistdynamicpersongrouppersonreferences description: Microsoft Azure List The Dynamic Person Groups That A Person Has Been Referenced In call: face-client-persondirectory.microsoftazurepersondirectorylistdynamicpersongrouppersonreferences with: personId: rest.personId start: rest.start top: rest.top outputParameters: - type: object mapping: $. - path: /v1/persons/{personid}/recognitionmodels/{recognitionmodel}/persistedfaces name: persons-personid-recognitionmodels-recognitionmodel-persistedfaces description: REST surface for persons-personId-recognitionModels-recognitionModel-persistedFaces. operations: - method: POST name: microsoftazurepersondirectoryaddpersonfacefromurl description: Microsoft Azure Add A New Face To Person call: face-client-persondirectory.microsoftazurepersondirectoryaddpersonfacefromurl with: personId: rest.personId recognitionModel: rest.recognitionModel detectionModel: rest.detectionModel userData: rest.userData targetFace: rest.targetFace outputParameters: - type: object mapping: $. - method: GET name: microsoftazurepersondirectorygetpersonfaces description: Microsoft Azure Retrieve Person Face Information The Persisted Person Face Is Specified By Its Personid And Persistedfaceid call: face-client-persondirectory.microsoftazurepersondirectorygetpersonfaces with: personId: rest.personId recognitionModel: rest.recognitionModel outputParameters: - type: object mapping: $. - path: /v1/persons/{personid}/recognitionmodels/{recognitionmodel}/persistedfaces/{persistedfaceid} name: persons-personid-recognitionmodels-recognitionmodel-persistedfaces-persistedface description: REST surface for persons-personId-recognitionModels-recognitionModel-persistedFaces-persistedFace. operations: - method: DELETE name: microsoftazurepersondirectorydeletepersonface description: "Microsoft Azure Delete An Existing Person Face From Person Directory \r" call: face-client-persondirectory.microsoftazurepersondirectorydeletepersonface with: personId: rest.personId recognitionModel: rest.recognitionModel persistedFaceId: rest.persistedFaceId outputParameters: - type: object mapping: $. - method: GET name: microsoftazurepersondirectorygetpersonface description: Microsoft Azure Retrieve Person Face Information The Persisted Person Face Is Specified By Its Personid And Persistedfaceid call: face-client-persondirectory.microsoftazurepersondirectorygetpersonface with: personId: rest.personId recognitionModel: rest.recognitionModel persistedFaceId: rest.persistedFaceId outputParameters: - type: object mapping: $. - method: PATCH name: microsoftazurepersondirectoryupdatepersonface description: Microsoft Azure Update The Data Of A Person Face call: face-client-persondirectory.microsoftazurepersondirectoryupdatepersonface with: personId: rest.personId recognitionModel: rest.recognitionModel persistedFaceId: rest.persistedFaceId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: face-client-persondirectory-mcp port: 9090 transport: http description: MCP adapter for Microsoft Azure Face Client — PersonDirectory. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: microsoft-azure-retrieve-list-dynamic description: Microsoft Azure Retrieve List Of Dynamic Person Groups In Person Directory hints: readOnly: true destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorylistdynamicpersongroups with: start: tools.start top: tools.top outputParameters: - type: object mapping: $. - name: microsoft-azure-creates-new-dynamic description: "Microsoft Azure Creates A New Dynamic Person Group With Specified Dynamicpersongroupid, Name, And User\ \ Provided Userdata \r" hints: readOnly: false destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorycreatedynamicpersongroup with: dynamicPersonGroupId: tools.dynamicPersonGroupId body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-updates-existing-dynamic description: Microsoft Azure Updates An Existing Dynamic Person Group With Specified Dynamicpersongroupid, Name, And User Provided Userdata hints: readOnly: false destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectoryupdatedynamicpersongroup with: dynamicPersonGroupId: tools.dynamicPersonGroupId body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-get-metadata-dynamic description: Microsoft Azure Get Metadata On A Dynamic Person Group hints: readOnly: true destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorygetdynamicpersongroup with: dynamicPersonGroupId: tools.dynamicPersonGroupId outputParameters: - type: object mapping: $. - name: microsoft-azure-delete-existing-dynamic description: "Microsoft Azure Delete An Existing Dynamic Person Group \r" hints: readOnly: false destructive: true idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorydeletedynamicpersongroup with: dynamicPersonGroupId: tools.dynamicPersonGroupId outputParameters: - type: object mapping: $. - name: microsoft-azure-retrieve-list-persons description: Microsoft Azure Retrieve List Of Persons Referenced In A Given Dynamicpersongroup Person Directory hints: readOnly: true destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorylistdynamicpersongrouppersons with: dynamicPersonGroupId: tools.dynamicPersonGroupId start: tools.start top: tools.top outputParameters: - type: object mapping: $. - name: microsoft-azure-retrieve-list-person description: Microsoft Azure Retrieve List Of Person Information In Person Directory hints: readOnly: true destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorygetpersons with: start: tools.start top: tools.top outputParameters: - type: object mapping: $. - name: microsoft-azure-creates-new-person description: Microsoft Azure Creates A New Person In Person Directory hints: readOnly: false destructive: false idempotent: false call: face-client-persondirectory.microsoftazurepersondirectorycreateperson with: body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-update-name-userdata description: Microsoft Azure Update Name Or Userdata Of A Person hints: readOnly: false destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectoryupdateperson with: personId: tools.personId body: tools.body outputParameters: - type: object mapping: $. - name: microsoft-azure-delete-existing-person description: "Microsoft Azure Delete An Existing Person From Person Directory \r" hints: readOnly: false destructive: true idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorydeleteperson with: personId: tools.personId outputParameters: - type: object mapping: $. - name: microsoft-azure-retrieve-person-s description: Microsoft Azure Retrieve A Person S Name And Userdata, And The Persisted Faceids Representing The Registered Person Face Feature S hints: readOnly: true destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorygetperson with: personId: tools.personId outputParameters: - type: object mapping: $. - name: microsoft-azure-list-dynamic-person description: Microsoft Azure List The Dynamic Person Groups That A Person Has Been Referenced In hints: readOnly: true destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorylistdynamicpersongrouppersonreferences with: personId: tools.personId start: tools.start top: tools.top outputParameters: - type: object mapping: $. - name: microsoft-azure-add-new-face description: Microsoft Azure Add A New Face To Person hints: readOnly: false destructive: false idempotent: false call: face-client-persondirectory.microsoftazurepersondirectoryaddpersonfacefromurl with: personId: tools.personId recognitionModel: tools.recognitionModel detectionModel: tools.detectionModel userData: tools.userData targetFace: tools.targetFace outputParameters: - type: object mapping: $. - name: microsoft-azure-retrieve-person-face description: Microsoft Azure Retrieve Person Face Information The Persisted Person Face Is Specified By Its Personid And Persistedfaceid hints: readOnly: true destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorygetpersonfaces with: personId: tools.personId recognitionModel: tools.recognitionModel outputParameters: - type: object mapping: $. - name: microsoft-azure-delete-existing-person-2 description: "Microsoft Azure Delete An Existing Person Face From Person Directory \r" hints: readOnly: false destructive: true idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorydeletepersonface with: personId: tools.personId recognitionModel: tools.recognitionModel persistedFaceId: tools.persistedFaceId outputParameters: - type: object mapping: $. - name: microsoft-azure-retrieve-person-face-2 description: Microsoft Azure Retrieve Person Face Information The Persisted Person Face Is Specified By Its Personid And Persistedfaceid hints: readOnly: true destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectorygetpersonface with: personId: tools.personId recognitionModel: tools.recognitionModel persistedFaceId: tools.persistedFaceId outputParameters: - type: object mapping: $. - name: microsoft-azure-update-data-person description: Microsoft Azure Update The Data Of A Person Face hints: readOnly: false destructive: false idempotent: true call: face-client-persondirectory.microsoftazurepersondirectoryupdatepersonface with: personId: tools.personId recognitionModel: tools.recognitionModel persistedFaceId: tools.persistedFaceId body: tools.body outputParameters: - type: object mapping: $.