Loading doc/diagrams/interconnection/CAPIF_Interconnection_Establishment.txt 0 → 100644 +40 −0 Changes for doc/diagrams/interconnection/CAPIF_Interconnection_Establishment.txt: 40 added lines, 0 removed lines. Original line number Diff line number Diff line title CAPIF Interconnection Establishment participant Administrator participant "CCF-A" as A participant "CCF-B" as B Administrator->A: POST /helper/interconnection/request\n{dstProvDom: CCF-B} alt CCF-B already interconnected A-->Administrator: 409 already interconnected else new interconnection A->B: POST /helper/interconnection/establish\nCCF-A identity (ccfId, domain, CA, publicKey) B->B: store CCF-A as interconnected B-->A: CCF-B identity (ccfId, domain, CA, publicKey) A->A: store CCF-B as interconnected == Initial sync of already published APIs == A->B: POST /helper/interconnection/sync alt CCF-A is not interconnected B-->A: 404 else interconnected B->B: find local APIs shareable with CCF-A\n(isShareable=true, CCF-A in capifProvDoms) loop each matching API B->A: POST /published-apis/v1/{CCF-B}/service-apis\ncopy with isShareable=false A->A: store copy, record CCF-B in pubApiPath A-->B: 201 end B-->A: 201 end A->A: find local APIs shareable with CCF-B loop each matching API A->B: POST /published-apis/v1/{CCF-A}/service-apis\ncopy with isShareable=false B->B: store copy, record CCF-A in pubApiPath B-->A: 201 end A-->Administrator: 201 CCF-B details end No newline at end of file doc/diagrams/interconnection/CAPIF_Publish_after_interconnection.txt 0 → 100644 +32 −0 Changes for doc/diagrams/interconnection/CAPIF_Publish_after_interconnection.txt: 32 added lines, 0 removed lines. Original line number Diff line number Diff line title CAPIF Publish after interconnection participant APF participant "CCF-A" as A participant "CCF-B" as B APF->A: POST /published-apis/v1/{apfId}/service-apis\nshareableInfo.isShareable, capifProvDoms A->A: duplicate / feature checks alt isShareable=false or no target domains A->A: store locally only A-->APF: 201 Service API else isShareable=true loop each domain in capifProvDoms alt domain is not interconnected A->A: skip that domain else domain is CCF-B A->B: POST /published-apis/v1/{CCF-A}/service-apis\ncopy with isShareable=false alt CCF-B accepts B->B: store copy (publisher = CCF-A) B-->A: 201 else CCF-B unreachable or rejects A->B: delete copies already accepted A-->APF: 500 (nothing stored on CCF-A) end end end A->A: store locally\nrecord reached CCFs in pubApiPath A-->APF: 201 Service API end No newline at end of file doc/diagrams/interconnection/CAPIF_Publish_update_and_delete_across_CCFs.txt 0 → 100644 +34 −0 Changes for doc/diagrams/interconnection/CAPIF_Publish_update_and_delete_across_CCFs.txt: 34 added lines, 0 removed lines. Original line number Diff line number Diff line title CAPIF Publish update and delete across CCFs participant APF participant "CCF-A" as A participant "CCF-B" as B == PUT / PATCH == APF->A: PUT or PATCH the service API note over A: align CCF-B before writing locally\nmatch the copy by the old API name alt domain removed or sharing turned off A->B: DELETE the shared copy else domain kept A->B: PUT the updated definition else domain added A->B: POST a new copy end alt CCF-B cannot be aligned A-->APF: 500 (CCF-A left unchanged) else CCF-B aligned A->A: store the update A-->APF: 200 end == DELETE == APF->A: DELETE the service API A->B: unpublish the shared copy first alt CCF-B unreachable A-->APF: 500 (local copy kept) else copy removed on CCF-B A->A: delete locally A-->APF: 204 end No newline at end of file doc/images/interconnection/CAPIF_Interconnection_Establishment.png +20.4 KiB (104 KiB) Loading image diff... doc/images/interconnection/CAPIF_Publish_after_interconnection.png +16.6 KiB (79.6 KiB) Loading image diff... Loading
doc/diagrams/interconnection/CAPIF_Interconnection_Establishment.txt 0 → 100644 +40 −0 Changes for doc/diagrams/interconnection/CAPIF_Interconnection_Establishment.txt: 40 added lines, 0 removed lines. Original line number Diff line number Diff line title CAPIF Interconnection Establishment participant Administrator participant "CCF-A" as A participant "CCF-B" as B Administrator->A: POST /helper/interconnection/request\n{dstProvDom: CCF-B} alt CCF-B already interconnected A-->Administrator: 409 already interconnected else new interconnection A->B: POST /helper/interconnection/establish\nCCF-A identity (ccfId, domain, CA, publicKey) B->B: store CCF-A as interconnected B-->A: CCF-B identity (ccfId, domain, CA, publicKey) A->A: store CCF-B as interconnected == Initial sync of already published APIs == A->B: POST /helper/interconnection/sync alt CCF-A is not interconnected B-->A: 404 else interconnected B->B: find local APIs shareable with CCF-A\n(isShareable=true, CCF-A in capifProvDoms) loop each matching API B->A: POST /published-apis/v1/{CCF-B}/service-apis\ncopy with isShareable=false A->A: store copy, record CCF-B in pubApiPath A-->B: 201 end B-->A: 201 end A->A: find local APIs shareable with CCF-B loop each matching API A->B: POST /published-apis/v1/{CCF-A}/service-apis\ncopy with isShareable=false B->B: store copy, record CCF-A in pubApiPath B-->A: 201 end A-->Administrator: 201 CCF-B details end No newline at end of file
doc/diagrams/interconnection/CAPIF_Publish_after_interconnection.txt 0 → 100644 +32 −0 Changes for doc/diagrams/interconnection/CAPIF_Publish_after_interconnection.txt: 32 added lines, 0 removed lines. Original line number Diff line number Diff line title CAPIF Publish after interconnection participant APF participant "CCF-A" as A participant "CCF-B" as B APF->A: POST /published-apis/v1/{apfId}/service-apis\nshareableInfo.isShareable, capifProvDoms A->A: duplicate / feature checks alt isShareable=false or no target domains A->A: store locally only A-->APF: 201 Service API else isShareable=true loop each domain in capifProvDoms alt domain is not interconnected A->A: skip that domain else domain is CCF-B A->B: POST /published-apis/v1/{CCF-A}/service-apis\ncopy with isShareable=false alt CCF-B accepts B->B: store copy (publisher = CCF-A) B-->A: 201 else CCF-B unreachable or rejects A->B: delete copies already accepted A-->APF: 500 (nothing stored on CCF-A) end end end A->A: store locally\nrecord reached CCFs in pubApiPath A-->APF: 201 Service API end No newline at end of file
doc/diagrams/interconnection/CAPIF_Publish_update_and_delete_across_CCFs.txt 0 → 100644 +34 −0 Changes for doc/diagrams/interconnection/CAPIF_Publish_update_and_delete_across_CCFs.txt: 34 added lines, 0 removed lines. Original line number Diff line number Diff line title CAPIF Publish update and delete across CCFs participant APF participant "CCF-A" as A participant "CCF-B" as B == PUT / PATCH == APF->A: PUT or PATCH the service API note over A: align CCF-B before writing locally\nmatch the copy by the old API name alt domain removed or sharing turned off A->B: DELETE the shared copy else domain kept A->B: PUT the updated definition else domain added A->B: POST a new copy end alt CCF-B cannot be aligned A-->APF: 500 (CCF-A left unchanged) else CCF-B aligned A->A: store the update A-->APF: 200 end == DELETE == APF->A: DELETE the service API A->B: unpublish the shared copy first alt CCF-B unreachable A-->APF: 500 (local copy kept) else copy removed on CCF-B A->A: delete locally A-->APF: 204 end No newline at end of file
doc/images/interconnection/CAPIF_Interconnection_Establishment.png +20.4 KiB (104 KiB) Loading image diff...
doc/images/interconnection/CAPIF_Publish_after_interconnection.png +16.6 KiB (79.6 KiB) Loading image diff...