@x12i/memorix-service 3.2.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/README.md +61 -3
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +8 -0
  4. package/dist/app.js.map +1 -1
  5. package/dist/blob-store/config.d.ts +31 -0
  6. package/dist/blob-store/config.d.ts.map +1 -0
  7. package/dist/blob-store/config.js +68 -0
  8. package/dist/blob-store/config.js.map +1 -0
  9. package/dist/blob-store/disk.d.ts +10 -0
  10. package/dist/blob-store/disk.d.ts.map +1 -0
  11. package/dist/blob-store/disk.js +104 -0
  12. package/dist/blob-store/disk.js.map +1 -0
  13. package/dist/blob-store/index.d.ts +6 -0
  14. package/dist/blob-store/index.d.ts.map +1 -0
  15. package/dist/blob-store/index.js +6 -0
  16. package/dist/blob-store/index.js.map +1 -0
  17. package/dist/blob-store/memory.d.ts +4 -0
  18. package/dist/blob-store/memory.d.ts.map +1 -0
  19. package/dist/blob-store/memory.js +47 -0
  20. package/dist/blob-store/memory.js.map +1 -0
  21. package/dist/blob-store/s3.d.ts +52 -0
  22. package/dist/blob-store/s3.d.ts.map +1 -0
  23. package/dist/blob-store/s3.js +151 -0
  24. package/dist/blob-store/s3.js.map +1 -0
  25. package/dist/blob-store/types.d.ts +30 -0
  26. package/dist/blob-store/types.d.ts.map +1 -0
  27. package/dist/blob-store/types.js +38 -0
  28. package/dist/blob-store/types.js.map +1 -0
  29. package/dist/catalog/catalog-service.d.ts +48 -0
  30. package/dist/catalog/catalog-service.d.ts.map +1 -0
  31. package/dist/catalog/catalog-service.js +397 -0
  32. package/dist/catalog/catalog-service.js.map +1 -0
  33. package/dist/catalog/package-list-source.d.ts +35 -0
  34. package/dist/catalog/package-list-source.d.ts.map +1 -0
  35. package/dist/catalog/package-list-source.js +47 -0
  36. package/dist/catalog/package-list-source.js.map +1 -0
  37. package/dist/catalog/types.d.ts +65 -0
  38. package/dist/catalog/types.d.ts.map +1 -0
  39. package/dist/catalog/types.js +16 -0
  40. package/dist/catalog/types.js.map +1 -0
  41. package/dist/catalog-store-cli.d.ts +20 -0
  42. package/dist/catalog-store-cli.d.ts.map +1 -0
  43. package/dist/catalog-store-cli.js +237 -0
  44. package/dist/catalog-store-cli.js.map +1 -0
  45. package/dist/cli.d.ts +3 -1
  46. package/dist/cli.d.ts.map +1 -1
  47. package/dist/cli.js +48 -18
  48. package/dist/cli.js.map +1 -1
  49. package/dist/connector-ops/attempt-store.d.ts +5 -0
  50. package/dist/connector-ops/attempt-store.d.ts.map +1 -0
  51. package/dist/connector-ops/attempt-store.js +186 -0
  52. package/dist/connector-ops/attempt-store.js.map +1 -0
  53. package/dist/connector-ops/index.d.ts +5 -0
  54. package/dist/connector-ops/index.d.ts.map +1 -0
  55. package/dist/connector-ops/index.js +5 -0
  56. package/dist/connector-ops/index.js.map +1 -0
  57. package/dist/connector-ops/override-store.d.ts +7 -0
  58. package/dist/connector-ops/override-store.d.ts.map +1 -0
  59. package/dist/connector-ops/override-store.js +123 -0
  60. package/dist/connector-ops/override-store.js.map +1 -0
  61. package/dist/connector-ops/sanitize.d.ts +16 -0
  62. package/dist/connector-ops/sanitize.d.ts.map +1 -0
  63. package/dist/connector-ops/sanitize.js +48 -0
  64. package/dist/connector-ops/sanitize.js.map +1 -0
  65. package/dist/connector-ops/types.d.ts +76 -0
  66. package/dist/connector-ops/types.d.ts.map +1 -0
  67. package/dist/connector-ops/types.js +12 -0
  68. package/dist/connector-ops/types.js.map +1 -0
  69. package/dist/effective-listing.d.ts +11 -0
  70. package/dist/effective-listing.d.ts.map +1 -0
  71. package/dist/effective-listing.js +41 -0
  72. package/dist/effective-listing.js.map +1 -0
  73. package/dist/errors.d.ts +5 -1
  74. package/dist/errors.d.ts.map +1 -1
  75. package/dist/errors.js +10 -3
  76. package/dist/errors.js.map +1 -1
  77. package/dist/execution-target.d.ts +16 -0
  78. package/dist/execution-target.d.ts.map +1 -1
  79. package/dist/execution-target.js +54 -0
  80. package/dist/execution-target.js.map +1 -1
  81. package/dist/index.d.ts +6 -1
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +6 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/integrations/index.d.ts +3 -0
  86. package/dist/integrations/index.d.ts.map +1 -0
  87. package/dist/integrations/index.js +3 -0
  88. package/dist/integrations/index.js.map +1 -0
  89. package/dist/integrations/instance-store.d.ts +5 -0
  90. package/dist/integrations/instance-store.d.ts.map +1 -0
  91. package/dist/integrations/instance-store.js +327 -0
  92. package/dist/integrations/instance-store.js.map +1 -0
  93. package/dist/integrations/types.d.ts +92 -0
  94. package/dist/integrations/types.d.ts.map +1 -0
  95. package/dist/integrations/types.js +40 -0
  96. package/dist/integrations/types.js.map +1 -0
  97. package/dist/magit/magit-pack-service.d.ts +436 -70
  98. package/dist/magit/magit-pack-service.d.ts.map +1 -1
  99. package/dist/magit/magit-pack-service.js +949 -202
  100. package/dist/magit/magit-pack-service.js.map +1 -1
  101. package/dist/magit/pack-to-patchset.d.ts +21 -0
  102. package/dist/magit/pack-to-patchset.d.ts.map +1 -1
  103. package/dist/magit/pack-to-patchset.js +29 -0
  104. package/dist/magit/pack-to-patchset.js.map +1 -1
  105. package/dist/magit/package-catalog-bridge.d.ts +4 -14
  106. package/dist/magit/package-catalog-bridge.d.ts.map +1 -1
  107. package/dist/magit/package-catalog-bridge.js +2 -21
  108. package/dist/magit/package-catalog-bridge.js.map +1 -1
  109. package/dist/mgc-packages.d.ts +4 -3
  110. package/dist/mgc-packages.d.ts.map +1 -1
  111. package/dist/mgc-packages.js +4 -3
  112. package/dist/mgc-packages.js.map +1 -1
  113. package/dist/openapi/openapi.json +3060 -135
  114. package/dist/optional-companion-url.d.ts +72 -0
  115. package/dist/optional-companion-url.d.ts.map +1 -0
  116. package/dist/optional-companion-url.js +148 -0
  117. package/dist/optional-companion-url.js.map +1 -0
  118. package/dist/platform.d.ts +29 -0
  119. package/dist/platform.d.ts.map +1 -1
  120. package/dist/platform.js +138 -2
  121. package/dist/platform.js.map +1 -1
  122. package/dist/restricted-store/crypto.d.ts +10 -0
  123. package/dist/restricted-store/crypto.d.ts.map +1 -0
  124. package/dist/restricted-store/crypto.js +43 -0
  125. package/dist/restricted-store/crypto.js.map +1 -0
  126. package/dist/restricted-store/index.d.ts +4 -0
  127. package/dist/restricted-store/index.d.ts.map +1 -0
  128. package/dist/restricted-store/index.js +4 -0
  129. package/dist/restricted-store/index.js.map +1 -0
  130. package/dist/restricted-store/object-store.d.ts +12 -0
  131. package/dist/restricted-store/object-store.d.ts.map +1 -0
  132. package/dist/restricted-store/object-store.js +233 -0
  133. package/dist/restricted-store/object-store.js.map +1 -0
  134. package/dist/restricted-store/types.d.ts +78 -0
  135. package/dist/restricted-store/types.d.ts.map +1 -0
  136. package/dist/restricted-store/types.js +12 -0
  137. package/dist/restricted-store/types.js.map +1 -0
  138. package/dist/routes/catalog.d.ts +4 -0
  139. package/dist/routes/catalog.d.ts.map +1 -0
  140. package/dist/routes/catalog.js +103 -0
  141. package/dist/routes/catalog.js.map +1 -0
  142. package/dist/routes/connector-ops.d.ts +12 -0
  143. package/dist/routes/connector-ops.d.ts.map +1 -0
  144. package/dist/routes/connector-ops.js +160 -0
  145. package/dist/routes/connector-ops.js.map +1 -0
  146. package/dist/routes/integrations.d.ts +5 -0
  147. package/dist/routes/integrations.d.ts.map +1 -0
  148. package/dist/routes/integrations.js +126 -0
  149. package/dist/routes/integrations.js.map +1 -0
  150. package/dist/routes/memory.d.ts.map +1 -1
  151. package/dist/routes/memory.js +9 -2
  152. package/dist/routes/memory.js.map +1 -1
  153. package/dist/routes/metadata.d.ts.map +1 -1
  154. package/dist/routes/metadata.js +459 -186
  155. package/dist/routes/metadata.js.map +1 -1
  156. package/dist/routes/pipelines.d.ts.map +1 -1
  157. package/dist/routes/pipelines.js +3 -2
  158. package/dist/routes/pipelines.js.map +1 -1
  159. package/dist/routes/restricted-store.d.ts +5 -0
  160. package/dist/routes/restricted-store.d.ts.map +1 -0
  161. package/dist/routes/restricted-store.js +117 -0
  162. package/dist/routes/restricted-store.js.map +1 -0
  163. package/openapi/openapi.json +3060 -135
  164. package/package.json +31 -7
@@ -2,8 +2,8 @@
2
2
  "openapi": "3.0.3",
3
3
  "info": {
4
4
  "title": "Memorix Service API",
5
- "version": "1.0.0",
6
- "description": "One versioned product API over accepted Memorix packages. Scope: orgId + agentIds[]. Headers x-memorix-org-id and x-memorix-agent-ids (comma-separated). Intelligence never auto-installs. Relationships /links is forbidden."
5
+ "version": "3.4.0",
6
+ "description": "One versioned product API over accepted Memorix packages. Scope: orgId + agentIds[]. Headers x-memorix-org-id and x-memorix-agent-ids (comma-separated). Intelligence never auto-installs. Relationships /links is forbidden. IntegrationsRegistry (Stage −1) and RestrictedStore (FG-A3 dual-mode blob)."
7
7
  },
8
8
  "servers": [
9
9
  {
@@ -44,7 +44,27 @@
44
44
  },
45
45
  {
46
46
  "name": "Jobs",
47
- "description": "Jobs Manager repeated-work API. P3 reads and P4 writes live. See .operational/jobs-v1-api-FR.md"
47
+ "description": "Jobs Manager repeated-work API. P3 reads and P4 writes live."
48
+ },
49
+ {
50
+ "name": "Connectors",
51
+ "description": "Unified connector catalog (registry + builtins + MGC remote hosts)"
52
+ },
53
+ {
54
+ "name": "Catalog",
55
+ "description": "Global product package catalog (Memorix typed store)"
56
+ },
57
+ {
58
+ "name": "ConnectorOps",
59
+ "description": "MCO-01/MCO-02 org-scoped connector-op overrides and attempt stats ledger. Path orgId must match x-memorix-org-id."
60
+ },
61
+ {
62
+ "name": "Integrations",
63
+ "description": "Stage −1 organization integration instance registry. Path orgId must match x-memorix-org-id. credentialRef only."
64
+ },
65
+ {
66
+ "name": "RestrictedStore",
67
+ "description": "FG-A3 restricted/encrypted object store. Bodies on dual-mode blob (s3|disk). Content GET requires break-glass headers."
48
68
  }
49
69
  ],
50
70
  "paths": {
@@ -9581,157 +9601,2867 @@
9581
9601
  },
9582
9602
  "description": "Catalog for Jobs Manager execution-target picker."
9583
9603
  }
9584
- }
9585
- },
9586
- "components": {
9587
- "parameters": {
9588
- "XMemorixOrgId": {
9589
- "name": "x-memorix-org-id",
9590
- "in": "header",
9591
- "required": true,
9592
- "schema": {
9593
- "type": "string",
9594
- "minLength": 1
9595
- },
9596
- "description": "Organization / data-universe id"
9597
- },
9598
- "XMemorixAgentIds": {
9599
- "name": "x-memorix-agent-ids",
9600
- "in": "header",
9601
- "required": true,
9602
- "schema": {
9603
- "type": "string",
9604
- "minLength": 1
9605
- },
9606
- "description": "Comma-separated agentIds for effective metadata",
9607
- "example": "ops,fieldstone"
9608
- }
9609
9604
  },
9610
- "schemas": {
9611
- "MemorixScope": {
9612
- "type": "object",
9613
- "required": [
9614
- "orgId",
9615
- "agentIds"
9605
+ "/api/connectors": {
9606
+ "get": {
9607
+ "operationId": "listConnectors",
9608
+ "summary": "List unified connectors (registry + builtins + MGC live catalogs)",
9609
+ "tags": [
9610
+ "Connectors"
9616
9611
  ],
9617
- "additionalProperties": false,
9618
- "properties": {
9619
- "orgId": {
9620
- "type": "string",
9621
- "minLength": 1,
9622
- "description": "Data universe / org isolation key"
9612
+ "parameters": [
9613
+ {
9614
+ "$ref": "#/components/parameters/XMemorixOrgId"
9623
9615
  },
9624
- "agentIds": {
9625
- "type": "array",
9626
- "items": {
9627
- "type": "string",
9628
- "minLength": 1
9629
- },
9630
- "minItems": 1,
9631
- "uniqueItems": true,
9632
- "description": "Effective metadata agent chain (canonicalized/sorted)"
9616
+ {
9617
+ "$ref": "#/components/parameters/XMemorixAgentIds"
9633
9618
  }
9634
- },
9635
- "example": {
9636
- "orgId": "acme",
9637
- "agentIds": [
9638
- "opx",
9639
- "fieldstone"
9640
- ]
9641
- }
9642
- },
9643
- "MemorixIdentifier": {
9644
- "type": "object",
9645
- "required": [
9646
- "kind",
9647
- "value"
9648
9619
  ],
9649
- "properties": {
9650
- "kind": {
9651
- "type": "string"
9652
- },
9653
- "value": {
9654
- "type": "string"
9655
- },
9656
- "issuer": {
9657
- "type": "string"
9620
+ "responses": {
9621
+ "200": {
9622
+ "description": "Merged connector catalog. Live MGC rows only appear when the host is reachable and has them installed (partial pack seed is normal).",
9623
+ "content": {
9624
+ "application/json": {
9625
+ "schema": {
9626
+ "type": "object",
9627
+ "required": [
9628
+ "scope",
9629
+ "sourceConnectors",
9630
+ "targetConnectors",
9631
+ "connectors",
9632
+ "genericConnectors"
9633
+ ],
9634
+ "properties": {
9635
+ "scope": {
9636
+ "$ref": "#/components/schemas/MemorixScope"
9637
+ },
9638
+ "sourceConnectors": {
9639
+ "type": "array",
9640
+ "description": "Pull-capable rows (isSource)",
9641
+ "items": {
9642
+ "$ref": "#/components/schemas/ConnectorCatalogEntry"
9643
+ }
9644
+ },
9645
+ "targetConnectors": {
9646
+ "type": "array",
9647
+ "description": "Deliver-capable rows (isTarget)",
9648
+ "items": {
9649
+ "$ref": "#/components/schemas/ConnectorCatalogEntry"
9650
+ }
9651
+ },
9652
+ "connectors": {
9653
+ "type": "array",
9654
+ "description": "Compat alias of sourceConnectors",
9655
+ "items": {
9656
+ "$ref": "#/components/schemas/ConnectorCatalogEntry"
9657
+ }
9658
+ },
9659
+ "genericConnectors": {
9660
+ "type": "object",
9661
+ "properties": {
9662
+ "sourceServiceUrl": {
9663
+ "type": "string",
9664
+ "nullable": true,
9665
+ "description": "Configured MGC_SOURCE_SERVICE_URL (null when unset)"
9666
+ },
9667
+ "targetServiceUrl": {
9668
+ "type": "string",
9669
+ "nullable": true,
9670
+ "description": "Configured MGC_TARGET_SERVICE_URL (null when unset)"
9671
+ }
9672
+ }
9673
+ }
9674
+ }
9675
+ }
9676
+ }
9677
+ }
9658
9678
  },
9659
- "normalizedValue": {
9660
- "type": "string"
9679
+ "400": {
9680
+ "description": "Bad request / validation",
9681
+ "content": {
9682
+ "application/json": {
9683
+ "schema": {
9684
+ "$ref": "#/components/schemas/ErrorEnvelope"
9685
+ }
9686
+ }
9687
+ }
9661
9688
  }
9662
- }
9663
- },
9664
- "MemorixRecordV2": {
9665
- "type": "object",
9666
- "required": [
9667
- "format",
9668
- "recordId",
9669
- "revision",
9670
- "objectType",
9671
- "contentType",
9672
- "dataCategory",
9673
- "concept",
9674
- "data",
9675
- "_system"
9689
+ },
9690
+ "description": "Merges connector registry, platform builtins (opx/knowx), and live generic-connector host catalogs. Prefers explicit role from the host; forwards usageModel (stream|service), classification, tags, purpose, and definitionHash when present. Never invents MGC package ids when a host is down or seed sets omit them."
9691
+ }
9692
+ },
9693
+ "/api/catalog": {
9694
+ "get": {
9695
+ "operationId": "catalogListComponents",
9696
+ "summary": "List global catalog components (Magit store or flat + local kinds)",
9697
+ "tags": [
9698
+ "Catalog"
9676
9699
  ],
9677
- "properties": {
9678
- "format": {
9679
- "type": "string",
9680
- "enum": [
9681
- "memorix-record/2"
9682
- ]
9683
- },
9684
- "recordId": {
9685
- "type": "string"
9700
+ "parameters": [
9701
+ {
9702
+ "$ref": "#/components/parameters/XMemorixOrgId"
9686
9703
  },
9687
- "revision": {
9688
- "type": "integer",
9689
- "minimum": 1
9704
+ {
9705
+ "$ref": "#/components/parameters/XMemorixAgentIds"
9690
9706
  },
9691
- "objectType": {
9692
- "type": "string"
9707
+ {
9708
+ "name": "kind",
9709
+ "in": "query",
9710
+ "schema": {
9711
+ "type": "string",
9712
+ "enum": [
9713
+ "agent",
9714
+ "connector",
9715
+ "service",
9716
+ "pipeline",
9717
+ "runtime-service",
9718
+ "all"
9719
+ ]
9720
+ }
9693
9721
  },
9694
- "contentType": {
9695
- "type": "string"
9722
+ {
9723
+ "name": "publisher",
9724
+ "in": "query",
9725
+ "schema": {
9726
+ "type": "string"
9727
+ }
9696
9728
  },
9697
- "dataCategory": {
9698
- "type": "string",
9699
- "enum": [
9700
- "entity",
9701
- "event",
9702
- "knowledge"
9703
- ]
9729
+ {
9730
+ "name": "q",
9731
+ "in": "query",
9732
+ "schema": {
9733
+ "type": "string"
9734
+ }
9704
9735
  },
9705
- "concept": {
9706
- "type": "object",
9707
- "required": [
9708
- "title",
9709
- "identifiers"
9710
- ],
9711
- "properties": {
9712
- "title": {
9713
- "type": "string"
9714
- },
9715
- "identifiers": {
9716
- "type": "object",
9717
- "required": [
9718
- "primary"
9719
- ],
9720
- "properties": {
9721
- "primary": {
9722
- "$ref": "#/components/schemas/MemorixIdentifier"
9723
- },
9724
- "alternates": {
9725
- "type": "array",
9726
- "items": {
9727
- "$ref": "#/components/schemas/MemorixIdentifier"
9736
+ {
9737
+ "name": "include",
9738
+ "in": "query",
9739
+ "description": "Comma-separated: releases,deployments",
9740
+ "schema": {
9741
+ "type": "string"
9742
+ }
9743
+ }
9744
+ ],
9745
+ "responses": {
9746
+ "200": {
9747
+ "description": "Catalog component list",
9748
+ "content": {
9749
+ "application/json": {
9750
+ "schema": {
9751
+ "type": "object",
9752
+ "properties": {
9753
+ "packageTypeId": {
9754
+ "type": [
9755
+ "string",
9756
+ "null"
9757
+ ]
9758
+ },
9759
+ "typedStoreConfigured": {
9760
+ "type": "boolean"
9761
+ },
9762
+ "components": {
9763
+ "type": "array",
9764
+ "items": {
9765
+ "type": "object"
9766
+ }
9767
+ },
9768
+ "note": {
9769
+ "type": "string"
9728
9770
  }
9729
9771
  }
9730
9772
  }
9731
9773
  }
9732
9774
  }
9733
9775
  },
9734
- "data": {
9776
+ "503": {
9777
+ "description": "Magit unavailable"
9778
+ }
9779
+ }
9780
+ }
9781
+ },
9782
+ "/api/catalog/{kind}/{id}": {
9783
+ "get": {
9784
+ "operationId": "catalogGetComponent",
9785
+ "summary": "Get one catalog component",
9786
+ "tags": [
9787
+ "Catalog"
9788
+ ],
9789
+ "parameters": [
9790
+ {
9791
+ "$ref": "#/components/parameters/XMemorixOrgId"
9792
+ },
9793
+ {
9794
+ "$ref": "#/components/parameters/XMemorixAgentIds"
9795
+ },
9796
+ {
9797
+ "name": "kind",
9798
+ "in": "path",
9799
+ "required": true,
9800
+ "schema": {
9801
+ "type": "string"
9802
+ }
9803
+ },
9804
+ {
9805
+ "name": "id",
9806
+ "in": "path",
9807
+ "required": true,
9808
+ "schema": {
9809
+ "type": "string"
9810
+ }
9811
+ },
9812
+ {
9813
+ "name": "include",
9814
+ "in": "query",
9815
+ "schema": {
9816
+ "type": "string"
9817
+ }
9818
+ },
9819
+ {
9820
+ "name": "publisher",
9821
+ "in": "query",
9822
+ "schema": {
9823
+ "type": "string"
9824
+ }
9825
+ }
9826
+ ],
9827
+ "responses": {
9828
+ "200": {
9829
+ "description": "Component detail"
9830
+ },
9831
+ "404": {
9832
+ "description": "Not found"
9833
+ }
9834
+ }
9835
+ }
9836
+ },
9837
+ "/api/catalog/{kind}/{id}/releases": {
9838
+ "get": {
9839
+ "operationId": "catalogListReleases",
9840
+ "summary": "List Magit package releases for a component",
9841
+ "tags": [
9842
+ "Catalog"
9843
+ ],
9844
+ "parameters": [
9845
+ {
9846
+ "name": "kind",
9847
+ "in": "path",
9848
+ "required": true,
9849
+ "schema": {
9850
+ "type": "string"
9851
+ }
9852
+ },
9853
+ {
9854
+ "name": "id",
9855
+ "in": "path",
9856
+ "required": true,
9857
+ "schema": {
9858
+ "type": "string"
9859
+ }
9860
+ },
9861
+ {
9862
+ "name": "publisher",
9863
+ "in": "query",
9864
+ "schema": {
9865
+ "type": "string"
9866
+ }
9867
+ },
9868
+ {
9869
+ "name": "maxCount",
9870
+ "in": "query",
9871
+ "schema": {
9872
+ "type": "integer"
9873
+ }
9874
+ }
9875
+ ],
9876
+ "responses": {
9877
+ "200": {
9878
+ "description": "Release list"
9879
+ }
9880
+ }
9881
+ }
9882
+ },
9883
+ "/api/metadata/packages": {
9884
+ "get": {
9885
+ "operationId": "metadataListPackages",
9886
+ "summary": "List packable identities and/or Magit catalog (source=)",
9887
+ "tags": [
9888
+ "Metadata"
9889
+ ],
9890
+ "parameters": [
9891
+ {
9892
+ "name": "kind",
9893
+ "in": "query",
9894
+ "schema": {
9895
+ "type": "string"
9896
+ }
9897
+ },
9898
+ {
9899
+ "name": "source",
9900
+ "in": "query",
9901
+ "description": "packable (default) | catalog | all",
9902
+ "schema": {
9903
+ "type": "string",
9904
+ "enum": [
9905
+ "packable",
9906
+ "catalog",
9907
+ "all"
9908
+ ]
9909
+ }
9910
+ }
9911
+ ],
9912
+ "responses": {
9913
+ "200": {
9914
+ "description": "Package identities"
9915
+ },
9916
+ "503": {
9917
+ "description": "Magit unavailable"
9918
+ }
9919
+ }
9920
+ }
9921
+ },
9922
+ "/api/metadata/packages/pack": {
9923
+ "post": {
9924
+ "operationId": "metadataPackPackage",
9925
+ "summary": "Pack installed metadata into Magit package catalog",
9926
+ "tags": [
9927
+ "Metadata"
9928
+ ],
9929
+ "requestBody": {
9930
+ "required": true,
9931
+ "content": {
9932
+ "application/json": {
9933
+ "schema": {
9934
+ "type": "object",
9935
+ "required": [
9936
+ "kind",
9937
+ "id",
9938
+ "message"
9939
+ ],
9940
+ "properties": {
9941
+ "kind": {
9942
+ "type": "string",
9943
+ "enum": [
9944
+ "agent",
9945
+ "connector",
9946
+ "service"
9947
+ ]
9948
+ },
9949
+ "id": {
9950
+ "type": "string"
9951
+ },
9952
+ "message": {
9953
+ "type": "string"
9954
+ },
9955
+ "mode": {
9956
+ "type": "string",
9957
+ "enum": [
9958
+ "narrow",
9959
+ "full"
9960
+ ]
9961
+ }
9962
+ }
9963
+ }
9964
+ }
9965
+ }
9966
+ },
9967
+ "responses": {
9968
+ "200": {
9969
+ "description": "Packed version",
9970
+ "content": {
9971
+ "application/json": {
9972
+ "schema": {
9973
+ "type": "object",
9974
+ "properties": {
9975
+ "packed": {
9976
+ "type": "boolean"
9977
+ },
9978
+ "kind": {
9979
+ "type": "string",
9980
+ "enum": [
9981
+ "agent",
9982
+ "connector",
9983
+ "service"
9984
+ ]
9985
+ },
9986
+ "id": {
9987
+ "type": "string"
9988
+ },
9989
+ "agentId": {
9990
+ "type": "string"
9991
+ },
9992
+ "version": {
9993
+ "type": "string"
9994
+ },
9995
+ "checksum": {
9996
+ "type": "string"
9997
+ },
9998
+ "reused": {
9999
+ "type": "boolean"
10000
+ },
10001
+ "published": {
10002
+ "type": "boolean",
10003
+ "description": "True when Magit typed-store pack was remotely published. Absent on flat catalog packs."
10004
+ },
10005
+ "storeId": {
10006
+ "type": "string",
10007
+ "description": "Typed-store id on Mode A packs. Sensitive recovery material — not for bulk inventory."
10008
+ },
10009
+ "packageTypeId": {
10010
+ "type": "string",
10011
+ "description": "Structure language id for the typed store (safe)."
10012
+ },
10013
+ "note": {
10014
+ "type": "string"
10015
+ },
10016
+ "mode": {
10017
+ "type": [
10018
+ "string",
10019
+ "null"
10020
+ ],
10021
+ "enum": [
10022
+ "narrow",
10023
+ "full",
10024
+ null
10025
+ ]
10026
+ },
10027
+ "bundled": {
10028
+ "type": "array",
10029
+ "items": {
10030
+ "type": "object",
10031
+ "properties": {
10032
+ "kind": {
10033
+ "type": "string"
10034
+ },
10035
+ "id": {
10036
+ "type": "string"
10037
+ },
10038
+ "version": {
10039
+ "type": "string"
10040
+ },
10041
+ "commit": {
10042
+ "type": "string"
10043
+ }
10044
+ }
10045
+ }
10046
+ }
10047
+ }
10048
+ }
10049
+ }
10050
+ }
10051
+ }
10052
+ }
10053
+ }
10054
+ },
10055
+ "/api/metadata/packages/restore": {
10056
+ "post": {
10057
+ "operationId": "metadataRestorePackage",
10058
+ "summary": "Fetch Magit package and install into org",
10059
+ "tags": [
10060
+ "Metadata"
10061
+ ],
10062
+ "parameters": [
10063
+ {
10064
+ "$ref": "#/components/parameters/XMemorixOrgId"
10065
+ }
10066
+ ],
10067
+ "responses": {
10068
+ "200": {
10069
+ "description": "Restore result"
10070
+ }
10071
+ }
10072
+ }
10073
+ },
10074
+ "/api/connector-ops/v1/orgs/{orgId}/connectors/{connectorId}/ops/{opId}/override": {
10075
+ "put": {
10076
+ "operationId": "connectorOpsPutOverride",
10077
+ "summary": "Set org-scoped connector-op override (MCO-01)",
10078
+ "tags": [
10079
+ "ConnectorOps"
10080
+ ],
10081
+ "parameters": [
10082
+ {
10083
+ "$ref": "#/components/parameters/XMemorixOrgId"
10084
+ },
10085
+ {
10086
+ "name": "orgId",
10087
+ "in": "path",
10088
+ "required": true,
10089
+ "schema": {
10090
+ "type": "string",
10091
+ "minLength": 1
10092
+ },
10093
+ "description": "Organization id (must match x-memorix-org-id header)"
10094
+ },
10095
+ {
10096
+ "name": "connectorId",
10097
+ "in": "path",
10098
+ "required": true,
10099
+ "schema": {
10100
+ "type": "string",
10101
+ "minLength": 1
10102
+ }
10103
+ },
10104
+ {
10105
+ "name": "opId",
10106
+ "in": "path",
10107
+ "required": true,
10108
+ "schema": {
10109
+ "type": "string",
10110
+ "minLength": 1
10111
+ }
10112
+ }
10113
+ ],
10114
+ "requestBody": {
10115
+ "required": true,
10116
+ "content": {
10117
+ "application/json": {
10118
+ "schema": {
10119
+ "$ref": "#/components/schemas/McoSetOpOverride"
10120
+ }
10121
+ }
10122
+ }
10123
+ },
10124
+ "responses": {
10125
+ "200": {
10126
+ "description": "Upserted override",
10127
+ "content": {
10128
+ "application/json": {
10129
+ "schema": {
10130
+ "$ref": "#/components/schemas/McoOpOverride"
10131
+ }
10132
+ }
10133
+ }
10134
+ },
10135
+ "400": {
10136
+ "description": "Validation / scope invalid / payload rejected",
10137
+ "content": {
10138
+ "application/json": {
10139
+ "schema": {
10140
+ "$ref": "#/components/schemas/ErrorEnvelope"
10141
+ }
10142
+ }
10143
+ }
10144
+ },
10145
+ "403": {
10146
+ "description": "Path orgId mismatches header scope",
10147
+ "content": {
10148
+ "application/json": {
10149
+ "schema": {
10150
+ "$ref": "#/components/schemas/ErrorEnvelope"
10151
+ }
10152
+ }
10153
+ }
10154
+ },
10155
+ "404": {
10156
+ "description": "Not found",
10157
+ "content": {
10158
+ "application/json": {
10159
+ "schema": {
10160
+ "$ref": "#/components/schemas/ErrorEnvelope"
10161
+ }
10162
+ }
10163
+ }
10164
+ },
10165
+ "503": {
10166
+ "description": "Durable store required",
10167
+ "content": {
10168
+ "application/json": {
10169
+ "schema": {
10170
+ "$ref": "#/components/schemas/ErrorEnvelope"
10171
+ }
10172
+ }
10173
+ }
10174
+ }
10175
+ }
10176
+ },
10177
+ "get": {
10178
+ "operationId": "connectorOpsGetOverride",
10179
+ "summary": "Get one override (404 when absent/expired)",
10180
+ "tags": [
10181
+ "ConnectorOps"
10182
+ ],
10183
+ "parameters": [
10184
+ {
10185
+ "$ref": "#/components/parameters/XMemorixOrgId"
10186
+ },
10187
+ {
10188
+ "name": "orgId",
10189
+ "in": "path",
10190
+ "required": true,
10191
+ "schema": {
10192
+ "type": "string",
10193
+ "minLength": 1
10194
+ },
10195
+ "description": "Organization id (must match x-memorix-org-id header)"
10196
+ },
10197
+ {
10198
+ "name": "connectorId",
10199
+ "in": "path",
10200
+ "required": true,
10201
+ "schema": {
10202
+ "type": "string",
10203
+ "minLength": 1
10204
+ }
10205
+ },
10206
+ {
10207
+ "name": "opId",
10208
+ "in": "path",
10209
+ "required": true,
10210
+ "schema": {
10211
+ "type": "string",
10212
+ "minLength": 1
10213
+ }
10214
+ }
10215
+ ],
10216
+ "responses": {
10217
+ "200": {
10218
+ "description": "Override",
10219
+ "content": {
10220
+ "application/json": {
10221
+ "schema": {
10222
+ "$ref": "#/components/schemas/McoOpOverride"
10223
+ }
10224
+ }
10225
+ }
10226
+ },
10227
+ "400": {
10228
+ "description": "Validation / scope invalid / payload rejected",
10229
+ "content": {
10230
+ "application/json": {
10231
+ "schema": {
10232
+ "$ref": "#/components/schemas/ErrorEnvelope"
10233
+ }
10234
+ }
10235
+ }
10236
+ },
10237
+ "403": {
10238
+ "description": "Path orgId mismatches header scope",
10239
+ "content": {
10240
+ "application/json": {
10241
+ "schema": {
10242
+ "$ref": "#/components/schemas/ErrorEnvelope"
10243
+ }
10244
+ }
10245
+ }
10246
+ },
10247
+ "404": {
10248
+ "description": "Not found",
10249
+ "content": {
10250
+ "application/json": {
10251
+ "schema": {
10252
+ "$ref": "#/components/schemas/ErrorEnvelope"
10253
+ }
10254
+ }
10255
+ }
10256
+ },
10257
+ "503": {
10258
+ "description": "Durable store required",
10259
+ "content": {
10260
+ "application/json": {
10261
+ "schema": {
10262
+ "$ref": "#/components/schemas/ErrorEnvelope"
10263
+ }
10264
+ }
10265
+ }
10266
+ }
10267
+ }
10268
+ },
10269
+ "delete": {
10270
+ "operationId": "connectorOpsClearOverride",
10271
+ "summary": "Clear override (re-enable op)",
10272
+ "tags": [
10273
+ "ConnectorOps"
10274
+ ],
10275
+ "parameters": [
10276
+ {
10277
+ "$ref": "#/components/parameters/XMemorixOrgId"
10278
+ },
10279
+ {
10280
+ "name": "orgId",
10281
+ "in": "path",
10282
+ "required": true,
10283
+ "schema": {
10284
+ "type": "string",
10285
+ "minLength": 1
10286
+ },
10287
+ "description": "Organization id (must match x-memorix-org-id header)"
10288
+ },
10289
+ {
10290
+ "name": "connectorId",
10291
+ "in": "path",
10292
+ "required": true,
10293
+ "schema": {
10294
+ "type": "string",
10295
+ "minLength": 1
10296
+ }
10297
+ },
10298
+ {
10299
+ "name": "opId",
10300
+ "in": "path",
10301
+ "required": true,
10302
+ "schema": {
10303
+ "type": "string",
10304
+ "minLength": 1
10305
+ }
10306
+ }
10307
+ ],
10308
+ "responses": {
10309
+ "204": {
10310
+ "description": "Cleared"
10311
+ },
10312
+ "400": {
10313
+ "description": "Validation / scope invalid / payload rejected",
10314
+ "content": {
10315
+ "application/json": {
10316
+ "schema": {
10317
+ "$ref": "#/components/schemas/ErrorEnvelope"
10318
+ }
10319
+ }
10320
+ }
10321
+ },
10322
+ "403": {
10323
+ "description": "Path orgId mismatches header scope",
10324
+ "content": {
10325
+ "application/json": {
10326
+ "schema": {
10327
+ "$ref": "#/components/schemas/ErrorEnvelope"
10328
+ }
10329
+ }
10330
+ }
10331
+ },
10332
+ "404": {
10333
+ "description": "Not found",
10334
+ "content": {
10335
+ "application/json": {
10336
+ "schema": {
10337
+ "$ref": "#/components/schemas/ErrorEnvelope"
10338
+ }
10339
+ }
10340
+ }
10341
+ },
10342
+ "503": {
10343
+ "description": "Durable store required",
10344
+ "content": {
10345
+ "application/json": {
10346
+ "schema": {
10347
+ "$ref": "#/components/schemas/ErrorEnvelope"
10348
+ }
10349
+ }
10350
+ }
10351
+ }
10352
+ }
10353
+ }
10354
+ },
10355
+ "/api/connector-ops/v1/orgs/{orgId}/connectors/{connectorId}/overrides": {
10356
+ "get": {
10357
+ "operationId": "connectorOpsListOverrides",
10358
+ "summary": "List active overrides for a connector",
10359
+ "tags": [
10360
+ "ConnectorOps"
10361
+ ],
10362
+ "parameters": [
10363
+ {
10364
+ "$ref": "#/components/parameters/XMemorixOrgId"
10365
+ },
10366
+ {
10367
+ "name": "orgId",
10368
+ "in": "path",
10369
+ "required": true,
10370
+ "schema": {
10371
+ "type": "string",
10372
+ "minLength": 1
10373
+ },
10374
+ "description": "Organization id (must match x-memorix-org-id header)"
10375
+ },
10376
+ {
10377
+ "name": "connectorId",
10378
+ "in": "path",
10379
+ "required": true,
10380
+ "schema": {
10381
+ "type": "string",
10382
+ "minLength": 1
10383
+ }
10384
+ }
10385
+ ],
10386
+ "responses": {
10387
+ "200": {
10388
+ "description": "Override list",
10389
+ "content": {
10390
+ "application/json": {
10391
+ "schema": {
10392
+ "type": "object",
10393
+ "properties": {
10394
+ "orgId": {
10395
+ "type": "string"
10396
+ },
10397
+ "connectorId": {
10398
+ "type": "string"
10399
+ },
10400
+ "overrides": {
10401
+ "type": "array",
10402
+ "items": {
10403
+ "$ref": "#/components/schemas/McoOpOverride"
10404
+ }
10405
+ }
10406
+ }
10407
+ }
10408
+ }
10409
+ }
10410
+ },
10411
+ "400": {
10412
+ "description": "Validation / scope invalid / payload rejected",
10413
+ "content": {
10414
+ "application/json": {
10415
+ "schema": {
10416
+ "$ref": "#/components/schemas/ErrorEnvelope"
10417
+ }
10418
+ }
10419
+ }
10420
+ },
10421
+ "403": {
10422
+ "description": "Path orgId mismatches header scope",
10423
+ "content": {
10424
+ "application/json": {
10425
+ "schema": {
10426
+ "$ref": "#/components/schemas/ErrorEnvelope"
10427
+ }
10428
+ }
10429
+ }
10430
+ },
10431
+ "404": {
10432
+ "description": "Not found",
10433
+ "content": {
10434
+ "application/json": {
10435
+ "schema": {
10436
+ "$ref": "#/components/schemas/ErrorEnvelope"
10437
+ }
10438
+ }
10439
+ }
10440
+ },
10441
+ "503": {
10442
+ "description": "Durable store required",
10443
+ "content": {
10444
+ "application/json": {
10445
+ "schema": {
10446
+ "$ref": "#/components/schemas/ErrorEnvelope"
10447
+ }
10448
+ }
10449
+ }
10450
+ }
10451
+ }
10452
+ }
10453
+ },
10454
+ "/api/connector-ops/v1/orgs/{orgId}/connectors/{connectorId}/ops/{opId}/attempts": {
10455
+ "post": {
10456
+ "operationId": "connectorOpsRecordAttempt",
10457
+ "summary": "Record one op attempt (MCO-02)",
10458
+ "tags": [
10459
+ "ConnectorOps"
10460
+ ],
10461
+ "parameters": [
10462
+ {
10463
+ "$ref": "#/components/parameters/XMemorixOrgId"
10464
+ },
10465
+ {
10466
+ "name": "orgId",
10467
+ "in": "path",
10468
+ "required": true,
10469
+ "schema": {
10470
+ "type": "string",
10471
+ "minLength": 1
10472
+ },
10473
+ "description": "Organization id (must match x-memorix-org-id header)"
10474
+ },
10475
+ {
10476
+ "name": "connectorId",
10477
+ "in": "path",
10478
+ "required": true,
10479
+ "schema": {
10480
+ "type": "string",
10481
+ "minLength": 1
10482
+ }
10483
+ },
10484
+ {
10485
+ "name": "opId",
10486
+ "in": "path",
10487
+ "required": true,
10488
+ "schema": {
10489
+ "type": "string",
10490
+ "minLength": 1
10491
+ }
10492
+ }
10493
+ ],
10494
+ "requestBody": {
10495
+ "required": true,
10496
+ "content": {
10497
+ "application/json": {
10498
+ "schema": {
10499
+ "$ref": "#/components/schemas/McoOpAttemptInput"
10500
+ }
10501
+ }
10502
+ }
10503
+ },
10504
+ "responses": {
10505
+ "201": {
10506
+ "description": "Recorded",
10507
+ "content": {
10508
+ "application/json": {
10509
+ "schema": {
10510
+ "$ref": "#/components/schemas/McoOpAttempt"
10511
+ }
10512
+ }
10513
+ }
10514
+ },
10515
+ "400": {
10516
+ "description": "Validation / scope invalid / payload rejected",
10517
+ "content": {
10518
+ "application/json": {
10519
+ "schema": {
10520
+ "$ref": "#/components/schemas/ErrorEnvelope"
10521
+ }
10522
+ }
10523
+ }
10524
+ },
10525
+ "403": {
10526
+ "description": "Path orgId mismatches header scope",
10527
+ "content": {
10528
+ "application/json": {
10529
+ "schema": {
10530
+ "$ref": "#/components/schemas/ErrorEnvelope"
10531
+ }
10532
+ }
10533
+ }
10534
+ },
10535
+ "404": {
10536
+ "description": "Not found",
10537
+ "content": {
10538
+ "application/json": {
10539
+ "schema": {
10540
+ "$ref": "#/components/schemas/ErrorEnvelope"
10541
+ }
10542
+ }
10543
+ }
10544
+ },
10545
+ "503": {
10546
+ "description": "Durable store required",
10547
+ "content": {
10548
+ "application/json": {
10549
+ "schema": {
10550
+ "$ref": "#/components/schemas/ErrorEnvelope"
10551
+ }
10552
+ }
10553
+ }
10554
+ }
10555
+ }
10556
+ },
10557
+ "get": {
10558
+ "operationId": "connectorOpsListAttempts",
10559
+ "summary": "List recent attempts for an op",
10560
+ "tags": [
10561
+ "ConnectorOps"
10562
+ ],
10563
+ "parameters": [
10564
+ {
10565
+ "$ref": "#/components/parameters/XMemorixOrgId"
10566
+ },
10567
+ {
10568
+ "name": "orgId",
10569
+ "in": "path",
10570
+ "required": true,
10571
+ "schema": {
10572
+ "type": "string",
10573
+ "minLength": 1
10574
+ },
10575
+ "description": "Organization id (must match x-memorix-org-id header)"
10576
+ },
10577
+ {
10578
+ "name": "connectorId",
10579
+ "in": "path",
10580
+ "required": true,
10581
+ "schema": {
10582
+ "type": "string",
10583
+ "minLength": 1
10584
+ }
10585
+ },
10586
+ {
10587
+ "name": "opId",
10588
+ "in": "path",
10589
+ "required": true,
10590
+ "schema": {
10591
+ "type": "string",
10592
+ "minLength": 1
10593
+ }
10594
+ },
10595
+ {
10596
+ "name": "limit",
10597
+ "in": "query",
10598
+ "schema": {
10599
+ "type": "integer",
10600
+ "minimum": 1,
10601
+ "maximum": 200,
10602
+ "default": 50
10603
+ }
10604
+ }
10605
+ ],
10606
+ "responses": {
10607
+ "200": {
10608
+ "description": "Attempts",
10609
+ "content": {
10610
+ "application/json": {
10611
+ "schema": {
10612
+ "type": "object",
10613
+ "properties": {
10614
+ "orgId": {
10615
+ "type": "string"
10616
+ },
10617
+ "connectorId": {
10618
+ "type": "string"
10619
+ },
10620
+ "opId": {
10621
+ "type": "string"
10622
+ },
10623
+ "limit": {
10624
+ "type": "integer"
10625
+ },
10626
+ "attempts": {
10627
+ "type": "array",
10628
+ "items": {
10629
+ "$ref": "#/components/schemas/McoOpAttempt"
10630
+ }
10631
+ }
10632
+ }
10633
+ }
10634
+ }
10635
+ }
10636
+ },
10637
+ "400": {
10638
+ "description": "Validation / scope invalid / payload rejected",
10639
+ "content": {
10640
+ "application/json": {
10641
+ "schema": {
10642
+ "$ref": "#/components/schemas/ErrorEnvelope"
10643
+ }
10644
+ }
10645
+ }
10646
+ },
10647
+ "403": {
10648
+ "description": "Path orgId mismatches header scope",
10649
+ "content": {
10650
+ "application/json": {
10651
+ "schema": {
10652
+ "$ref": "#/components/schemas/ErrorEnvelope"
10653
+ }
10654
+ }
10655
+ }
10656
+ },
10657
+ "404": {
10658
+ "description": "Not found",
10659
+ "content": {
10660
+ "application/json": {
10661
+ "schema": {
10662
+ "$ref": "#/components/schemas/ErrorEnvelope"
10663
+ }
10664
+ }
10665
+ }
10666
+ },
10667
+ "503": {
10668
+ "description": "Durable store required",
10669
+ "content": {
10670
+ "application/json": {
10671
+ "schema": {
10672
+ "$ref": "#/components/schemas/ErrorEnvelope"
10673
+ }
10674
+ }
10675
+ }
10676
+ }
10677
+ }
10678
+ }
10679
+ },
10680
+ "/api/connector-ops/v1/orgs/{orgId}/connectors/{connectorId}/ops/{opId}/stats": {
10681
+ "get": {
10682
+ "operationId": "connectorOpsGetStats",
10683
+ "summary": "Get aggregate stats for one op",
10684
+ "tags": [
10685
+ "ConnectorOps"
10686
+ ],
10687
+ "parameters": [
10688
+ {
10689
+ "$ref": "#/components/parameters/XMemorixOrgId"
10690
+ },
10691
+ {
10692
+ "name": "orgId",
10693
+ "in": "path",
10694
+ "required": true,
10695
+ "schema": {
10696
+ "type": "string",
10697
+ "minLength": 1
10698
+ },
10699
+ "description": "Organization id (must match x-memorix-org-id header)"
10700
+ },
10701
+ {
10702
+ "name": "connectorId",
10703
+ "in": "path",
10704
+ "required": true,
10705
+ "schema": {
10706
+ "type": "string",
10707
+ "minLength": 1
10708
+ }
10709
+ },
10710
+ {
10711
+ "name": "opId",
10712
+ "in": "path",
10713
+ "required": true,
10714
+ "schema": {
10715
+ "type": "string",
10716
+ "minLength": 1
10717
+ }
10718
+ }
10719
+ ],
10720
+ "responses": {
10721
+ "200": {
10722
+ "description": "Stats",
10723
+ "content": {
10724
+ "application/json": {
10725
+ "schema": {
10726
+ "$ref": "#/components/schemas/McoOpStats"
10727
+ }
10728
+ }
10729
+ }
10730
+ },
10731
+ "400": {
10732
+ "description": "Validation / scope invalid / payload rejected",
10733
+ "content": {
10734
+ "application/json": {
10735
+ "schema": {
10736
+ "$ref": "#/components/schemas/ErrorEnvelope"
10737
+ }
10738
+ }
10739
+ }
10740
+ },
10741
+ "403": {
10742
+ "description": "Path orgId mismatches header scope",
10743
+ "content": {
10744
+ "application/json": {
10745
+ "schema": {
10746
+ "$ref": "#/components/schemas/ErrorEnvelope"
10747
+ }
10748
+ }
10749
+ }
10750
+ },
10751
+ "404": {
10752
+ "description": "Not found",
10753
+ "content": {
10754
+ "application/json": {
10755
+ "schema": {
10756
+ "$ref": "#/components/schemas/ErrorEnvelope"
10757
+ }
10758
+ }
10759
+ }
10760
+ },
10761
+ "503": {
10762
+ "description": "Durable store required",
10763
+ "content": {
10764
+ "application/json": {
10765
+ "schema": {
10766
+ "$ref": "#/components/schemas/ErrorEnvelope"
10767
+ }
10768
+ }
10769
+ }
10770
+ }
10771
+ }
10772
+ }
10773
+ },
10774
+ "/api/connector-ops/v1/orgs/{orgId}/connectors/{connectorId}/stats": {
10775
+ "get": {
10776
+ "operationId": "connectorOpsListStats",
10777
+ "summary": "List stats for all ops of a connector",
10778
+ "tags": [
10779
+ "ConnectorOps"
10780
+ ],
10781
+ "parameters": [
10782
+ {
10783
+ "$ref": "#/components/parameters/XMemorixOrgId"
10784
+ },
10785
+ {
10786
+ "name": "orgId",
10787
+ "in": "path",
10788
+ "required": true,
10789
+ "schema": {
10790
+ "type": "string",
10791
+ "minLength": 1
10792
+ },
10793
+ "description": "Organization id (must match x-memorix-org-id header)"
10794
+ },
10795
+ {
10796
+ "name": "connectorId",
10797
+ "in": "path",
10798
+ "required": true,
10799
+ "schema": {
10800
+ "type": "string",
10801
+ "minLength": 1
10802
+ }
10803
+ }
10804
+ ],
10805
+ "responses": {
10806
+ "200": {
10807
+ "description": "Stats list",
10808
+ "content": {
10809
+ "application/json": {
10810
+ "schema": {
10811
+ "type": "object",
10812
+ "properties": {
10813
+ "orgId": {
10814
+ "type": "string"
10815
+ },
10816
+ "connectorId": {
10817
+ "type": "string"
10818
+ },
10819
+ "stats": {
10820
+ "type": "array",
10821
+ "items": {
10822
+ "$ref": "#/components/schemas/McoOpStats"
10823
+ }
10824
+ }
10825
+ }
10826
+ }
10827
+ }
10828
+ }
10829
+ },
10830
+ "400": {
10831
+ "description": "Validation / scope invalid / payload rejected",
10832
+ "content": {
10833
+ "application/json": {
10834
+ "schema": {
10835
+ "$ref": "#/components/schemas/ErrorEnvelope"
10836
+ }
10837
+ }
10838
+ }
10839
+ },
10840
+ "403": {
10841
+ "description": "Path orgId mismatches header scope",
10842
+ "content": {
10843
+ "application/json": {
10844
+ "schema": {
10845
+ "$ref": "#/components/schemas/ErrorEnvelope"
10846
+ }
10847
+ }
10848
+ }
10849
+ },
10850
+ "404": {
10851
+ "description": "Not found",
10852
+ "content": {
10853
+ "application/json": {
10854
+ "schema": {
10855
+ "$ref": "#/components/schemas/ErrorEnvelope"
10856
+ }
10857
+ }
10858
+ }
10859
+ },
10860
+ "503": {
10861
+ "description": "Durable store required",
10862
+ "content": {
10863
+ "application/json": {
10864
+ "schema": {
10865
+ "$ref": "#/components/schemas/ErrorEnvelope"
10866
+ }
10867
+ }
10868
+ }
10869
+ }
10870
+ }
10871
+ }
10872
+ },
10873
+ "/api/metadata/packages/channels/promote": {
10874
+ "post": {
10875
+ "operationId": "metadataPromotePackageChannel",
10876
+ "summary": "Promote a package channel pointer (Mode A)",
10877
+ "tags": [
10878
+ "Metadata"
10879
+ ],
10880
+ "requestBody": {
10881
+ "required": true,
10882
+ "content": {
10883
+ "application/json": {
10884
+ "schema": {
10885
+ "type": "object",
10886
+ "required": [
10887
+ "kind",
10888
+ "id",
10889
+ "channel",
10890
+ "version"
10891
+ ],
10892
+ "properties": {
10893
+ "kind": {
10894
+ "type": "string",
10895
+ "enum": [
10896
+ "agent",
10897
+ "connector",
10898
+ "service"
10899
+ ]
10900
+ },
10901
+ "id": {
10902
+ "type": "string"
10903
+ },
10904
+ "channel": {
10905
+ "type": "string"
10906
+ },
10907
+ "version": {
10908
+ "type": "string"
10909
+ },
10910
+ "message": {
10911
+ "type": "string"
10912
+ },
10913
+ "expectedVersion": {
10914
+ "type": [
10915
+ "string",
10916
+ "null"
10917
+ ]
10918
+ }
10919
+ }
10920
+ }
10921
+ }
10922
+ }
10923
+ },
10924
+ "responses": {
10925
+ "200": {
10926
+ "description": "Channel pointer result"
10927
+ }
10928
+ }
10929
+ }
10930
+ },
10931
+ "/api/metadata/packages/{kind}/{id}/channels/{channel}": {
10932
+ "get": {
10933
+ "operationId": "metadataResolvePackageChannel",
10934
+ "summary": "Resolve package channel (Mode A; Magit syncs first)",
10935
+ "tags": [
10936
+ "Metadata"
10937
+ ],
10938
+ "parameters": [
10939
+ {
10940
+ "name": "kind",
10941
+ "in": "path",
10942
+ "required": true,
10943
+ "schema": {
10944
+ "type": "string"
10945
+ }
10946
+ },
10947
+ {
10948
+ "name": "id",
10949
+ "in": "path",
10950
+ "required": true,
10951
+ "schema": {
10952
+ "type": "string"
10953
+ }
10954
+ },
10955
+ {
10956
+ "name": "channel",
10957
+ "in": "path",
10958
+ "required": true,
10959
+ "schema": {
10960
+ "type": "string"
10961
+ }
10962
+ }
10963
+ ],
10964
+ "responses": {
10965
+ "200": {
10966
+ "description": "Channel head"
10967
+ }
10968
+ }
10969
+ }
10970
+ },
10971
+ "/api/metadata/packages/releases/pack": {
10972
+ "post": {
10973
+ "operationId": "metadataPackReleaseSet",
10974
+ "summary": "Cut an immutable release set (Mode A)",
10975
+ "tags": [
10976
+ "Metadata"
10977
+ ],
10978
+ "requestBody": {
10979
+ "required": true,
10980
+ "content": {
10981
+ "application/json": {
10982
+ "schema": {
10983
+ "type": "object",
10984
+ "required": [
10985
+ "members"
10986
+ ],
10987
+ "properties": {
10988
+ "members": {
10989
+ "type": "array",
10990
+ "items": {
10991
+ "type": "object",
10992
+ "required": [
10993
+ "kind",
10994
+ "id",
10995
+ "version"
10996
+ ],
10997
+ "properties": {
10998
+ "kind": {
10999
+ "type": "string"
11000
+ },
11001
+ "id": {
11002
+ "type": "string"
11003
+ },
11004
+ "version": {
11005
+ "type": "string"
11006
+ }
11007
+ }
11008
+ }
11009
+ },
11010
+ "message": {
11011
+ "type": "string"
11012
+ }
11013
+ }
11014
+ }
11015
+ }
11016
+ }
11017
+ },
11018
+ "responses": {
11019
+ "200": {
11020
+ "description": "Release set"
11021
+ }
11022
+ }
11023
+ }
11024
+ },
11025
+ "/api/metadata/packages/releases/channels/promote": {
11026
+ "post": {
11027
+ "operationId": "metadataPromoteReleaseChannel",
11028
+ "summary": "Promote release channel atomically (Mode A)",
11029
+ "tags": [
11030
+ "Metadata"
11031
+ ],
11032
+ "requestBody": {
11033
+ "required": true,
11034
+ "content": {
11035
+ "application/json": {
11036
+ "schema": {
11037
+ "type": "object",
11038
+ "required": [
11039
+ "channel",
11040
+ "releaseId"
11041
+ ],
11042
+ "properties": {
11043
+ "channel": {
11044
+ "type": "string"
11045
+ },
11046
+ "releaseId": {
11047
+ "type": "string"
11048
+ },
11049
+ "message": {
11050
+ "type": "string"
11051
+ },
11052
+ "expectedReleaseId": {
11053
+ "type": [
11054
+ "string",
11055
+ "null"
11056
+ ]
11057
+ }
11058
+ }
11059
+ }
11060
+ }
11061
+ }
11062
+ },
11063
+ "responses": {
11064
+ "200": {
11065
+ "description": "Release channel result"
11066
+ }
11067
+ }
11068
+ }
11069
+ },
11070
+ "/api/metadata/packages/releases/channels/{channel}": {
11071
+ "get": {
11072
+ "operationId": "metadataResolveReleaseChannel",
11073
+ "summary": "Resolve release channel with members (Mode A)",
11074
+ "tags": [
11075
+ "Metadata"
11076
+ ],
11077
+ "parameters": [
11078
+ {
11079
+ "name": "channel",
11080
+ "in": "path",
11081
+ "required": true,
11082
+ "schema": {
11083
+ "type": "string"
11084
+ }
11085
+ }
11086
+ ],
11087
+ "responses": {
11088
+ "200": {
11089
+ "description": "Release channel with members"
11090
+ }
11091
+ }
11092
+ }
11093
+ },
11094
+ "/api/metadata/packages/releases/channels/{channel}/history": {
11095
+ "get": {
11096
+ "operationId": "metadataReleaseChannelHistory",
11097
+ "summary": "Release channel history (rollback list)",
11098
+ "tags": [
11099
+ "Metadata"
11100
+ ],
11101
+ "parameters": [
11102
+ {
11103
+ "name": "channel",
11104
+ "in": "path",
11105
+ "required": true,
11106
+ "schema": {
11107
+ "type": "string"
11108
+ }
11109
+ }
11110
+ ],
11111
+ "responses": {
11112
+ "200": {
11113
+ "description": "History moves"
11114
+ }
11115
+ }
11116
+ }
11117
+ },
11118
+ "/api/integrations/v1/orgs/{orgId}/instances": {
11119
+ "get": {
11120
+ "operationId": "integrationsListInstances",
11121
+ "summary": "List integration instances + registrySnapshotToken",
11122
+ "tags": [
11123
+ "Integrations"
11124
+ ],
11125
+ "parameters": [
11126
+ {
11127
+ "name": "orgId",
11128
+ "in": "path",
11129
+ "required": true,
11130
+ "schema": {
11131
+ "type": "string"
11132
+ }
11133
+ },
11134
+ {
11135
+ "name": "x-memorix-org-id",
11136
+ "in": "header",
11137
+ "required": true,
11138
+ "schema": {
11139
+ "type": "string"
11140
+ }
11141
+ },
11142
+ {
11143
+ "name": "connectorId",
11144
+ "in": "query",
11145
+ "schema": {
11146
+ "type": "string"
11147
+ }
11148
+ },
11149
+ {
11150
+ "name": "enabled",
11151
+ "in": "query",
11152
+ "schema": {
11153
+ "type": "boolean"
11154
+ }
11155
+ }
11156
+ ],
11157
+ "responses": {
11158
+ "200": {
11159
+ "description": "List page with snapshot token",
11160
+ "content": {
11161
+ "application/json": {
11162
+ "schema": {
11163
+ "type": "object",
11164
+ "required": [
11165
+ "orgId",
11166
+ "items",
11167
+ "registrySnapshotToken",
11168
+ "etag",
11169
+ "count"
11170
+ ],
11171
+ "properties": {
11172
+ "orgId": {
11173
+ "type": "string"
11174
+ },
11175
+ "items": {
11176
+ "type": "array",
11177
+ "items": {
11178
+ "type": "object"
11179
+ }
11180
+ },
11181
+ "registrySnapshotToken": {
11182
+ "type": "string"
11183
+ },
11184
+ "etag": {
11185
+ "type": "string"
11186
+ },
11187
+ "count": {
11188
+ "type": "integer"
11189
+ }
11190
+ }
11191
+ }
11192
+ }
11193
+ }
11194
+ },
11195
+ "403": {
11196
+ "description": "Error",
11197
+ "content": {
11198
+ "application/json": {
11199
+ "schema": {
11200
+ "type": "object",
11201
+ "properties": {
11202
+ "error": {
11203
+ "type": "object",
11204
+ "properties": {
11205
+ "code": {
11206
+ "type": "string"
11207
+ },
11208
+ "message": {
11209
+ "type": "string"
11210
+ },
11211
+ "correlationId": {
11212
+ "type": "string"
11213
+ }
11214
+ }
11215
+ }
11216
+ }
11217
+ }
11218
+ }
11219
+ }
11220
+ }
11221
+ }
11222
+ },
11223
+ "post": {
11224
+ "operationId": "integrationsCreateInstance",
11225
+ "summary": "Create integration instance (credentialRef only)",
11226
+ "tags": [
11227
+ "Integrations"
11228
+ ],
11229
+ "parameters": [
11230
+ {
11231
+ "name": "orgId",
11232
+ "in": "path",
11233
+ "required": true,
11234
+ "schema": {
11235
+ "type": "string"
11236
+ }
11237
+ },
11238
+ {
11239
+ "name": "x-memorix-org-id",
11240
+ "in": "header",
11241
+ "required": true,
11242
+ "schema": {
11243
+ "type": "string"
11244
+ }
11245
+ }
11246
+ ],
11247
+ "requestBody": {
11248
+ "required": true,
11249
+ "content": {
11250
+ "application/json": {
11251
+ "schema": {
11252
+ "type": "object",
11253
+ "required": [
11254
+ "connectorId",
11255
+ "credentialRef"
11256
+ ],
11257
+ "properties": {
11258
+ "connectorId": {
11259
+ "type": "string"
11260
+ },
11261
+ "instanceId": {
11262
+ "type": "string"
11263
+ },
11264
+ "credentialRef": {
11265
+ "type": "string"
11266
+ },
11267
+ "enabled": {
11268
+ "type": "boolean"
11269
+ },
11270
+ "baseUrl": {
11271
+ "type": "string"
11272
+ },
11273
+ "lifecycleState": {
11274
+ "type": "string"
11275
+ }
11276
+ }
11277
+ }
11278
+ }
11279
+ }
11280
+ },
11281
+ "responses": {
11282
+ "201": {
11283
+ "description": "Created instance"
11284
+ },
11285
+ "400": {
11286
+ "description": "Error",
11287
+ "content": {
11288
+ "application/json": {
11289
+ "schema": {
11290
+ "type": "object",
11291
+ "properties": {
11292
+ "error": {
11293
+ "type": "object",
11294
+ "properties": {
11295
+ "code": {
11296
+ "type": "string"
11297
+ },
11298
+ "message": {
11299
+ "type": "string"
11300
+ },
11301
+ "correlationId": {
11302
+ "type": "string"
11303
+ }
11304
+ }
11305
+ }
11306
+ }
11307
+ }
11308
+ }
11309
+ }
11310
+ },
11311
+ "403": {
11312
+ "description": "Error",
11313
+ "content": {
11314
+ "application/json": {
11315
+ "schema": {
11316
+ "type": "object",
11317
+ "properties": {
11318
+ "error": {
11319
+ "type": "object",
11320
+ "properties": {
11321
+ "code": {
11322
+ "type": "string"
11323
+ },
11324
+ "message": {
11325
+ "type": "string"
11326
+ },
11327
+ "correlationId": {
11328
+ "type": "string"
11329
+ }
11330
+ }
11331
+ }
11332
+ }
11333
+ }
11334
+ }
11335
+ }
11336
+ }
11337
+ }
11338
+ }
11339
+ },
11340
+ "/api/integrations/v1/orgs/{orgId}/instances/{instanceId}": {
11341
+ "get": {
11342
+ "operationId": "integrationsGetInstance",
11343
+ "summary": "Get integration instance",
11344
+ "tags": [
11345
+ "Integrations"
11346
+ ],
11347
+ "parameters": [
11348
+ {
11349
+ "name": "orgId",
11350
+ "in": "path",
11351
+ "required": true,
11352
+ "schema": {
11353
+ "type": "string"
11354
+ }
11355
+ },
11356
+ {
11357
+ "name": "instanceId",
11358
+ "in": "path",
11359
+ "required": true,
11360
+ "schema": {
11361
+ "type": "string"
11362
+ }
11363
+ },
11364
+ {
11365
+ "name": "x-memorix-org-id",
11366
+ "in": "header",
11367
+ "required": true,
11368
+ "schema": {
11369
+ "type": "string"
11370
+ }
11371
+ }
11372
+ ],
11373
+ "responses": {
11374
+ "200": {
11375
+ "description": "Instance"
11376
+ },
11377
+ "403": {
11378
+ "description": "Error",
11379
+ "content": {
11380
+ "application/json": {
11381
+ "schema": {
11382
+ "type": "object",
11383
+ "properties": {
11384
+ "error": {
11385
+ "type": "object",
11386
+ "properties": {
11387
+ "code": {
11388
+ "type": "string"
11389
+ },
11390
+ "message": {
11391
+ "type": "string"
11392
+ },
11393
+ "correlationId": {
11394
+ "type": "string"
11395
+ }
11396
+ }
11397
+ }
11398
+ }
11399
+ }
11400
+ }
11401
+ }
11402
+ },
11403
+ "404": {
11404
+ "description": "Error",
11405
+ "content": {
11406
+ "application/json": {
11407
+ "schema": {
11408
+ "type": "object",
11409
+ "properties": {
11410
+ "error": {
11411
+ "type": "object",
11412
+ "properties": {
11413
+ "code": {
11414
+ "type": "string"
11415
+ },
11416
+ "message": {
11417
+ "type": "string"
11418
+ },
11419
+ "correlationId": {
11420
+ "type": "string"
11421
+ }
11422
+ }
11423
+ }
11424
+ }
11425
+ }
11426
+ }
11427
+ }
11428
+ }
11429
+ }
11430
+ },
11431
+ "put": {
11432
+ "operationId": "integrationsPutInstance",
11433
+ "summary": "Upsert instance with optional If-Match etag",
11434
+ "tags": [
11435
+ "Integrations"
11436
+ ],
11437
+ "parameters": [
11438
+ {
11439
+ "name": "orgId",
11440
+ "in": "path",
11441
+ "required": true,
11442
+ "schema": {
11443
+ "type": "string"
11444
+ }
11445
+ },
11446
+ {
11447
+ "name": "instanceId",
11448
+ "in": "path",
11449
+ "required": true,
11450
+ "schema": {
11451
+ "type": "string"
11452
+ }
11453
+ },
11454
+ {
11455
+ "name": "x-memorix-org-id",
11456
+ "in": "header",
11457
+ "required": true,
11458
+ "schema": {
11459
+ "type": "string"
11460
+ }
11461
+ },
11462
+ {
11463
+ "name": "If-Match",
11464
+ "in": "header",
11465
+ "schema": {
11466
+ "type": "string"
11467
+ }
11468
+ }
11469
+ ],
11470
+ "requestBody": {
11471
+ "required": true,
11472
+ "content": {
11473
+ "application/json": {
11474
+ "schema": {
11475
+ "type": "object"
11476
+ }
11477
+ }
11478
+ }
11479
+ },
11480
+ "responses": {
11481
+ "200": {
11482
+ "description": "Updated"
11483
+ },
11484
+ "400": {
11485
+ "description": "Error",
11486
+ "content": {
11487
+ "application/json": {
11488
+ "schema": {
11489
+ "type": "object",
11490
+ "properties": {
11491
+ "error": {
11492
+ "type": "object",
11493
+ "properties": {
11494
+ "code": {
11495
+ "type": "string"
11496
+ },
11497
+ "message": {
11498
+ "type": "string"
11499
+ },
11500
+ "correlationId": {
11501
+ "type": "string"
11502
+ }
11503
+ }
11504
+ }
11505
+ }
11506
+ }
11507
+ }
11508
+ }
11509
+ },
11510
+ "403": {
11511
+ "description": "Error",
11512
+ "content": {
11513
+ "application/json": {
11514
+ "schema": {
11515
+ "type": "object",
11516
+ "properties": {
11517
+ "error": {
11518
+ "type": "object",
11519
+ "properties": {
11520
+ "code": {
11521
+ "type": "string"
11522
+ },
11523
+ "message": {
11524
+ "type": "string"
11525
+ },
11526
+ "correlationId": {
11527
+ "type": "string"
11528
+ }
11529
+ }
11530
+ }
11531
+ }
11532
+ }
11533
+ }
11534
+ }
11535
+ },
11536
+ "412": {
11537
+ "description": "Error",
11538
+ "content": {
11539
+ "application/json": {
11540
+ "schema": {
11541
+ "type": "object",
11542
+ "properties": {
11543
+ "error": {
11544
+ "type": "object",
11545
+ "properties": {
11546
+ "code": {
11547
+ "type": "string"
11548
+ },
11549
+ "message": {
11550
+ "type": "string"
11551
+ },
11552
+ "correlationId": {
11553
+ "type": "string"
11554
+ }
11555
+ }
11556
+ }
11557
+ }
11558
+ }
11559
+ }
11560
+ }
11561
+ }
11562
+ }
11563
+ },
11564
+ "delete": {
11565
+ "operationId": "integrationsDeleteInstance",
11566
+ "summary": "Delete instance",
11567
+ "tags": [
11568
+ "Integrations"
11569
+ ],
11570
+ "parameters": [
11571
+ {
11572
+ "name": "orgId",
11573
+ "in": "path",
11574
+ "required": true,
11575
+ "schema": {
11576
+ "type": "string"
11577
+ }
11578
+ },
11579
+ {
11580
+ "name": "instanceId",
11581
+ "in": "path",
11582
+ "required": true,
11583
+ "schema": {
11584
+ "type": "string"
11585
+ }
11586
+ },
11587
+ {
11588
+ "name": "x-memorix-org-id",
11589
+ "in": "header",
11590
+ "required": true,
11591
+ "schema": {
11592
+ "type": "string"
11593
+ }
11594
+ },
11595
+ {
11596
+ "name": "If-Match",
11597
+ "in": "header",
11598
+ "schema": {
11599
+ "type": "string"
11600
+ }
11601
+ }
11602
+ ],
11603
+ "responses": {
11604
+ "204": {
11605
+ "description": "Deleted"
11606
+ },
11607
+ "404": {
11608
+ "description": "Error",
11609
+ "content": {
11610
+ "application/json": {
11611
+ "schema": {
11612
+ "type": "object",
11613
+ "properties": {
11614
+ "error": {
11615
+ "type": "object",
11616
+ "properties": {
11617
+ "code": {
11618
+ "type": "string"
11619
+ },
11620
+ "message": {
11621
+ "type": "string"
11622
+ },
11623
+ "correlationId": {
11624
+ "type": "string"
11625
+ }
11626
+ }
11627
+ }
11628
+ }
11629
+ }
11630
+ }
11631
+ }
11632
+ },
11633
+ "412": {
11634
+ "description": "Error",
11635
+ "content": {
11636
+ "application/json": {
11637
+ "schema": {
11638
+ "type": "object",
11639
+ "properties": {
11640
+ "error": {
11641
+ "type": "object",
11642
+ "properties": {
11643
+ "code": {
11644
+ "type": "string"
11645
+ },
11646
+ "message": {
11647
+ "type": "string"
11648
+ },
11649
+ "correlationId": {
11650
+ "type": "string"
11651
+ }
11652
+ }
11653
+ }
11654
+ }
11655
+ }
11656
+ }
11657
+ }
11658
+ }
11659
+ }
11660
+ }
11661
+ },
11662
+ "/api/integrations/v1/orgs/{orgId}/mutations": {
11663
+ "get": {
11664
+ "operationId": "integrationsListMutations",
11665
+ "summary": "List registry mutation audit entries",
11666
+ "tags": [
11667
+ "Integrations"
11668
+ ],
11669
+ "parameters": [
11670
+ {
11671
+ "name": "orgId",
11672
+ "in": "path",
11673
+ "required": true,
11674
+ "schema": {
11675
+ "type": "string"
11676
+ }
11677
+ },
11678
+ {
11679
+ "name": "x-memorix-org-id",
11680
+ "in": "header",
11681
+ "required": true,
11682
+ "schema": {
11683
+ "type": "string"
11684
+ }
11685
+ },
11686
+ {
11687
+ "name": "limit",
11688
+ "in": "query",
11689
+ "schema": {
11690
+ "type": "integer"
11691
+ }
11692
+ }
11693
+ ],
11694
+ "responses": {
11695
+ "200": {
11696
+ "description": "Mutations"
11697
+ },
11698
+ "403": {
11699
+ "description": "Error",
11700
+ "content": {
11701
+ "application/json": {
11702
+ "schema": {
11703
+ "type": "object",
11704
+ "properties": {
11705
+ "error": {
11706
+ "type": "object",
11707
+ "properties": {
11708
+ "code": {
11709
+ "type": "string"
11710
+ },
11711
+ "message": {
11712
+ "type": "string"
11713
+ },
11714
+ "correlationId": {
11715
+ "type": "string"
11716
+ }
11717
+ }
11718
+ }
11719
+ }
11720
+ }
11721
+ }
11722
+ }
11723
+ }
11724
+ }
11725
+ }
11726
+ },
11727
+ "/api/restricted-store/v1/orgs/{orgId}/objects": {
11728
+ "put": {
11729
+ "operationId": "restrictedStorePutObject",
11730
+ "summary": "Put restricted body; returns redacted metadata only",
11731
+ "tags": [
11732
+ "RestrictedStore"
11733
+ ],
11734
+ "parameters": [
11735
+ {
11736
+ "name": "orgId",
11737
+ "in": "path",
11738
+ "required": true,
11739
+ "schema": {
11740
+ "type": "string"
11741
+ }
11742
+ },
11743
+ {
11744
+ "name": "x-memorix-org-id",
11745
+ "in": "header",
11746
+ "required": true,
11747
+ "schema": {
11748
+ "type": "string"
11749
+ }
11750
+ }
11751
+ ],
11752
+ "requestBody": {
11753
+ "required": true,
11754
+ "content": {
11755
+ "application/json": {
11756
+ "schema": {
11757
+ "type": "object",
11758
+ "required": [
11759
+ "classification",
11760
+ "bodyBase64"
11761
+ ],
11762
+ "properties": {
11763
+ "classification": {
11764
+ "type": "string",
11765
+ "enum": [
11766
+ "restricted",
11767
+ "config-backup"
11768
+ ]
11769
+ },
11770
+ "bodyBase64": {
11771
+ "type": "string"
11772
+ },
11773
+ "deviceId": {
11774
+ "type": "string"
11775
+ },
11776
+ "vdom": {
11777
+ "type": "string"
11778
+ },
11779
+ "sourceRunId": {
11780
+ "type": "string"
11781
+ },
11782
+ "contentType": {
11783
+ "type": "string"
11784
+ },
11785
+ "version": {
11786
+ "type": "string"
11787
+ },
11788
+ "retainUntil": {
11789
+ "type": "string",
11790
+ "nullable": true
11791
+ }
11792
+ }
11793
+ }
11794
+ }
11795
+ }
11796
+ },
11797
+ "responses": {
11798
+ "201": {
11799
+ "description": "Redacted metadata"
11800
+ },
11801
+ "400": {
11802
+ "description": "Error",
11803
+ "content": {
11804
+ "application/json": {
11805
+ "schema": {
11806
+ "type": "object",
11807
+ "properties": {
11808
+ "error": {
11809
+ "type": "object",
11810
+ "properties": {
11811
+ "code": {
11812
+ "type": "string"
11813
+ },
11814
+ "message": {
11815
+ "type": "string"
11816
+ },
11817
+ "correlationId": {
11818
+ "type": "string"
11819
+ }
11820
+ }
11821
+ }
11822
+ }
11823
+ }
11824
+ }
11825
+ }
11826
+ },
11827
+ "403": {
11828
+ "description": "Error",
11829
+ "content": {
11830
+ "application/json": {
11831
+ "schema": {
11832
+ "type": "object",
11833
+ "properties": {
11834
+ "error": {
11835
+ "type": "object",
11836
+ "properties": {
11837
+ "code": {
11838
+ "type": "string"
11839
+ },
11840
+ "message": {
11841
+ "type": "string"
11842
+ },
11843
+ "correlationId": {
11844
+ "type": "string"
11845
+ }
11846
+ }
11847
+ }
11848
+ }
11849
+ }
11850
+ }
11851
+ }
11852
+ }
11853
+ }
11854
+ }
11855
+ },
11856
+ "/api/restricted-store/v1/orgs/{orgId}/objects/{objectId}/metadata": {
11857
+ "get": {
11858
+ "operationId": "restrictedStoreGetMetadata",
11859
+ "summary": "Get redacted restricted object metadata",
11860
+ "tags": [
11861
+ "RestrictedStore"
11862
+ ],
11863
+ "parameters": [
11864
+ {
11865
+ "name": "orgId",
11866
+ "in": "path",
11867
+ "required": true,
11868
+ "schema": {
11869
+ "type": "string"
11870
+ }
11871
+ },
11872
+ {
11873
+ "name": "objectId",
11874
+ "in": "path",
11875
+ "required": true,
11876
+ "schema": {
11877
+ "type": "string"
11878
+ }
11879
+ },
11880
+ {
11881
+ "name": "x-memorix-org-id",
11882
+ "in": "header",
11883
+ "required": true,
11884
+ "schema": {
11885
+ "type": "string"
11886
+ }
11887
+ }
11888
+ ],
11889
+ "responses": {
11890
+ "200": {
11891
+ "description": "Metadata"
11892
+ },
11893
+ "404": {
11894
+ "description": "Error",
11895
+ "content": {
11896
+ "application/json": {
11897
+ "schema": {
11898
+ "type": "object",
11899
+ "properties": {
11900
+ "error": {
11901
+ "type": "object",
11902
+ "properties": {
11903
+ "code": {
11904
+ "type": "string"
11905
+ },
11906
+ "message": {
11907
+ "type": "string"
11908
+ },
11909
+ "correlationId": {
11910
+ "type": "string"
11911
+ }
11912
+ }
11913
+ }
11914
+ }
11915
+ }
11916
+ }
11917
+ }
11918
+ }
11919
+ }
11920
+ }
11921
+ },
11922
+ "/api/restricted-store/v1/orgs/{orgId}/objects/{objectId}/content": {
11923
+ "get": {
11924
+ "operationId": "restrictedStoreGetContentBreakGlass",
11925
+ "summary": "Break-glass full body (audited)",
11926
+ "tags": [
11927
+ "RestrictedStore"
11928
+ ],
11929
+ "parameters": [
11930
+ {
11931
+ "name": "orgId",
11932
+ "in": "path",
11933
+ "required": true,
11934
+ "schema": {
11935
+ "type": "string"
11936
+ }
11937
+ },
11938
+ {
11939
+ "name": "objectId",
11940
+ "in": "path",
11941
+ "required": true,
11942
+ "schema": {
11943
+ "type": "string"
11944
+ }
11945
+ },
11946
+ {
11947
+ "name": "x-memorix-org-id",
11948
+ "in": "header",
11949
+ "required": true,
11950
+ "schema": {
11951
+ "type": "string"
11952
+ }
11953
+ },
11954
+ {
11955
+ "name": "x-memorix-break-glass",
11956
+ "in": "header",
11957
+ "required": true,
11958
+ "schema": {
11959
+ "type": "string",
11960
+ "enum": [
11961
+ "true",
11962
+ "1"
11963
+ ]
11964
+ }
11965
+ },
11966
+ {
11967
+ "name": "x-memorix-break-glass-reason",
11968
+ "in": "header",
11969
+ "required": true,
11970
+ "schema": {
11971
+ "type": "string"
11972
+ }
11973
+ },
11974
+ {
11975
+ "name": "x-memorix-actor",
11976
+ "in": "header",
11977
+ "schema": {
11978
+ "type": "string"
11979
+ }
11980
+ }
11981
+ ],
11982
+ "responses": {
11983
+ "200": {
11984
+ "description": "Full body as bodyBase64"
11985
+ },
11986
+ "400": {
11987
+ "description": "Error",
11988
+ "content": {
11989
+ "application/json": {
11990
+ "schema": {
11991
+ "type": "object",
11992
+ "properties": {
11993
+ "error": {
11994
+ "type": "object",
11995
+ "properties": {
11996
+ "code": {
11997
+ "type": "string"
11998
+ },
11999
+ "message": {
12000
+ "type": "string"
12001
+ },
12002
+ "correlationId": {
12003
+ "type": "string"
12004
+ }
12005
+ }
12006
+ }
12007
+ }
12008
+ }
12009
+ }
12010
+ }
12011
+ },
12012
+ "403": {
12013
+ "description": "Error",
12014
+ "content": {
12015
+ "application/json": {
12016
+ "schema": {
12017
+ "type": "object",
12018
+ "properties": {
12019
+ "error": {
12020
+ "type": "object",
12021
+ "properties": {
12022
+ "code": {
12023
+ "type": "string"
12024
+ },
12025
+ "message": {
12026
+ "type": "string"
12027
+ },
12028
+ "correlationId": {
12029
+ "type": "string"
12030
+ }
12031
+ }
12032
+ }
12033
+ }
12034
+ }
12035
+ }
12036
+ }
12037
+ },
12038
+ "404": {
12039
+ "description": "Error",
12040
+ "content": {
12041
+ "application/json": {
12042
+ "schema": {
12043
+ "type": "object",
12044
+ "properties": {
12045
+ "error": {
12046
+ "type": "object",
12047
+ "properties": {
12048
+ "code": {
12049
+ "type": "string"
12050
+ },
12051
+ "message": {
12052
+ "type": "string"
12053
+ },
12054
+ "correlationId": {
12055
+ "type": "string"
12056
+ }
12057
+ }
12058
+ }
12059
+ }
12060
+ }
12061
+ }
12062
+ }
12063
+ }
12064
+ }
12065
+ }
12066
+ },
12067
+ "/api/restricted-store/v1/orgs/{orgId}/objects/{objectId}": {
12068
+ "delete": {
12069
+ "operationId": "restrictedStoreDeleteObject",
12070
+ "summary": "Delete restricted object metadata + blob body",
12071
+ "tags": [
12072
+ "RestrictedStore"
12073
+ ],
12074
+ "parameters": [
12075
+ {
12076
+ "name": "orgId",
12077
+ "in": "path",
12078
+ "required": true,
12079
+ "schema": {
12080
+ "type": "string"
12081
+ }
12082
+ },
12083
+ {
12084
+ "name": "objectId",
12085
+ "in": "path",
12086
+ "required": true,
12087
+ "schema": {
12088
+ "type": "string"
12089
+ }
12090
+ },
12091
+ {
12092
+ "name": "x-memorix-org-id",
12093
+ "in": "header",
12094
+ "required": true,
12095
+ "schema": {
12096
+ "type": "string"
12097
+ }
12098
+ }
12099
+ ],
12100
+ "responses": {
12101
+ "204": {
12102
+ "description": "Deleted"
12103
+ },
12104
+ "404": {
12105
+ "description": "Error",
12106
+ "content": {
12107
+ "application/json": {
12108
+ "schema": {
12109
+ "type": "object",
12110
+ "properties": {
12111
+ "error": {
12112
+ "type": "object",
12113
+ "properties": {
12114
+ "code": {
12115
+ "type": "string"
12116
+ },
12117
+ "message": {
12118
+ "type": "string"
12119
+ },
12120
+ "correlationId": {
12121
+ "type": "string"
12122
+ }
12123
+ }
12124
+ }
12125
+ }
12126
+ }
12127
+ }
12128
+ }
12129
+ }
12130
+ }
12131
+ }
12132
+ },
12133
+ "/api/restricted-store/v1/orgs/{orgId}/purge-expired": {
12134
+ "post": {
12135
+ "operationId": "restrictedStorePurgeExpired",
12136
+ "summary": "Purge objects past retainUntil",
12137
+ "tags": [
12138
+ "RestrictedStore"
12139
+ ],
12140
+ "parameters": [
12141
+ {
12142
+ "name": "orgId",
12143
+ "in": "path",
12144
+ "required": true,
12145
+ "schema": {
12146
+ "type": "string"
12147
+ }
12148
+ },
12149
+ {
12150
+ "name": "x-memorix-org-id",
12151
+ "in": "header",
12152
+ "required": true,
12153
+ "schema": {
12154
+ "type": "string"
12155
+ }
12156
+ }
12157
+ ],
12158
+ "responses": {
12159
+ "200": {
12160
+ "description": "Purge count"
12161
+ }
12162
+ }
12163
+ }
12164
+ },
12165
+ "/api/restricted-store/v1/orgs/{orgId}/access-audits": {
12166
+ "get": {
12167
+ "operationId": "restrictedStoreListAccessAudits",
12168
+ "summary": "List restricted body access audits",
12169
+ "tags": [
12170
+ "RestrictedStore"
12171
+ ],
12172
+ "parameters": [
12173
+ {
12174
+ "name": "orgId",
12175
+ "in": "path",
12176
+ "required": true,
12177
+ "schema": {
12178
+ "type": "string"
12179
+ }
12180
+ },
12181
+ {
12182
+ "name": "x-memorix-org-id",
12183
+ "in": "header",
12184
+ "required": true,
12185
+ "schema": {
12186
+ "type": "string"
12187
+ }
12188
+ },
12189
+ {
12190
+ "name": "objectId",
12191
+ "in": "query",
12192
+ "schema": {
12193
+ "type": "string"
12194
+ }
12195
+ },
12196
+ {
12197
+ "name": "limit",
12198
+ "in": "query",
12199
+ "schema": {
12200
+ "type": "integer"
12201
+ }
12202
+ }
12203
+ ],
12204
+ "responses": {
12205
+ "200": {
12206
+ "description": "Audits"
12207
+ }
12208
+ }
12209
+ }
12210
+ }
12211
+ },
12212
+ "components": {
12213
+ "parameters": {
12214
+ "XMemorixOrgId": {
12215
+ "name": "x-memorix-org-id",
12216
+ "in": "header",
12217
+ "required": true,
12218
+ "schema": {
12219
+ "type": "string",
12220
+ "minLength": 1
12221
+ },
12222
+ "description": "Organization / data-universe id"
12223
+ },
12224
+ "XMemorixAgentIds": {
12225
+ "name": "x-memorix-agent-ids",
12226
+ "in": "header",
12227
+ "required": true,
12228
+ "schema": {
12229
+ "type": "string",
12230
+ "minLength": 1
12231
+ },
12232
+ "description": "Comma-separated agentIds for effective metadata",
12233
+ "example": "ops,fieldstone"
12234
+ }
12235
+ },
12236
+ "schemas": {
12237
+ "MemorixScope": {
12238
+ "type": "object",
12239
+ "required": [
12240
+ "orgId",
12241
+ "agentIds"
12242
+ ],
12243
+ "additionalProperties": false,
12244
+ "properties": {
12245
+ "orgId": {
12246
+ "type": "string",
12247
+ "minLength": 1,
12248
+ "description": "Data universe / org isolation key"
12249
+ },
12250
+ "agentIds": {
12251
+ "type": "array",
12252
+ "items": {
12253
+ "type": "string",
12254
+ "minLength": 1
12255
+ },
12256
+ "minItems": 1,
12257
+ "uniqueItems": true,
12258
+ "description": "Effective metadata agent chain (canonicalized/sorted)"
12259
+ }
12260
+ },
12261
+ "example": {
12262
+ "orgId": "acme",
12263
+ "agentIds": [
12264
+ "opx",
12265
+ "fieldstone"
12266
+ ]
12267
+ }
12268
+ },
12269
+ "ConnectorCatalogEntry": {
12270
+ "type": "object",
12271
+ "required": [
12272
+ "id",
12273
+ "version",
12274
+ "protocol",
12275
+ "enabled",
12276
+ "framework",
12277
+ "displayName",
12278
+ "capabilities",
12279
+ "isSource",
12280
+ "isTarget",
12281
+ "origin"
12282
+ ],
12283
+ "properties": {
12284
+ "id": {
12285
+ "type": "string",
12286
+ "description": "Connector package id (connectorRef)"
12287
+ },
12288
+ "version": {
12289
+ "type": "string"
12290
+ },
12291
+ "protocol": {
12292
+ "type": "string",
12293
+ "example": "memorix-connector/1"
12294
+ },
12295
+ "enabled": {
12296
+ "type": "boolean"
12297
+ },
12298
+ "framework": {
12299
+ "type": "boolean"
12300
+ },
12301
+ "displayName": {
12302
+ "type": "string"
12303
+ },
12304
+ "capabilities": {
12305
+ "type": "object",
12306
+ "additionalProperties": true
12307
+ },
12308
+ "connectorRole": {
12309
+ "type": "string",
12310
+ "enum": [
12311
+ "source",
12312
+ "target",
12313
+ "both"
12314
+ ],
12315
+ "nullable": true,
12316
+ "description": "Authoritative direction when set (prefer over id suffix)."
12317
+ },
12318
+ "isSource": {
12319
+ "type": "boolean"
12320
+ },
12321
+ "isTarget": {
12322
+ "type": "boolean"
12323
+ },
12324
+ "origin": {
12325
+ "type": "string",
12326
+ "enum": [
12327
+ "registry",
12328
+ "builtin",
12329
+ "generic-connectors"
12330
+ ]
12331
+ },
12332
+ "hostBaseUrl": {
12333
+ "type": "string",
12334
+ "description": "MGC host base when origin is generic-connectors"
12335
+ },
12336
+ "remoteHosting": {
12337
+ "type": "boolean"
12338
+ },
12339
+ "unavailableReason": {
12340
+ "type": "string",
12341
+ "description": "Set when the row is listed but not usable (e.g. host URL unset for stubs)"
12342
+ },
12343
+ "definitionHash": {
12344
+ "type": "string",
12345
+ "description": "Pinned hash from host catalog when available"
12346
+ },
12347
+ "description": {
12348
+ "type": "string"
12349
+ },
12350
+ "purpose": {
12351
+ "type": "string"
12352
+ },
12353
+ "classification": {
12354
+ "type": "string",
12355
+ "description": "Domain classification from pack catalog (e.g. cybersecurity)"
12356
+ },
12357
+ "tags": {
12358
+ "type": "array",
12359
+ "items": {
12360
+ "type": "string"
12361
+ }
12362
+ },
12363
+ "usageModel": {
12364
+ "type": "string",
12365
+ "enum": [
12366
+ "stream",
12367
+ "service"
12368
+ ],
12369
+ "description": "stream = continuous sync; service = on-demand enrichment. Protocol role remains source|target only."
12370
+ }
12371
+ }
12372
+ },
12373
+ "MemorixIdentifier": {
12374
+ "type": "object",
12375
+ "required": [
12376
+ "kind",
12377
+ "value"
12378
+ ],
12379
+ "properties": {
12380
+ "kind": {
12381
+ "type": "string"
12382
+ },
12383
+ "value": {
12384
+ "type": "string"
12385
+ },
12386
+ "issuer": {
12387
+ "type": "string"
12388
+ },
12389
+ "normalizedValue": {
12390
+ "type": "string"
12391
+ }
12392
+ }
12393
+ },
12394
+ "MemorixRecordV2": {
12395
+ "type": "object",
12396
+ "required": [
12397
+ "format",
12398
+ "recordId",
12399
+ "revision",
12400
+ "objectType",
12401
+ "contentType",
12402
+ "dataCategory",
12403
+ "concept",
12404
+ "data",
12405
+ "_system"
12406
+ ],
12407
+ "properties": {
12408
+ "format": {
12409
+ "type": "string",
12410
+ "enum": [
12411
+ "memorix-record/2"
12412
+ ]
12413
+ },
12414
+ "recordId": {
12415
+ "type": "string"
12416
+ },
12417
+ "revision": {
12418
+ "type": "integer",
12419
+ "minimum": 1
12420
+ },
12421
+ "objectType": {
12422
+ "type": "string"
12423
+ },
12424
+ "contentType": {
12425
+ "type": "string"
12426
+ },
12427
+ "dataCategory": {
12428
+ "type": "string",
12429
+ "enum": [
12430
+ "entity",
12431
+ "event",
12432
+ "knowledge"
12433
+ ]
12434
+ },
12435
+ "concept": {
12436
+ "type": "object",
12437
+ "required": [
12438
+ "title",
12439
+ "identifiers"
12440
+ ],
12441
+ "properties": {
12442
+ "title": {
12443
+ "type": "string"
12444
+ },
12445
+ "identifiers": {
12446
+ "type": "object",
12447
+ "required": [
12448
+ "primary"
12449
+ ],
12450
+ "properties": {
12451
+ "primary": {
12452
+ "$ref": "#/components/schemas/MemorixIdentifier"
12453
+ },
12454
+ "alternates": {
12455
+ "type": "array",
12456
+ "items": {
12457
+ "$ref": "#/components/schemas/MemorixIdentifier"
12458
+ }
12459
+ }
12460
+ }
12461
+ }
12462
+ }
12463
+ },
12464
+ "data": {
9735
12465
  "type": "object",
9736
12466
  "additionalProperties": true
9737
12467
  },
@@ -11439,6 +14169,201 @@
11439
14169
  "additionalProperties": true
11440
14170
  }
11441
14171
  }
14172
+ },
14173
+ "McoSetOpOverride": {
14174
+ "type": "object",
14175
+ "required": [
14176
+ "enabled"
14177
+ ],
14178
+ "properties": {
14179
+ "enabled": {
14180
+ "type": "boolean"
14181
+ },
14182
+ "reason": {
14183
+ "type": "string",
14184
+ "description": "Required non-empty when enabled is false"
14185
+ },
14186
+ "updatedBy": {
14187
+ "type": "string"
14188
+ },
14189
+ "expiresAt": {
14190
+ "type": "string",
14191
+ "nullable": true,
14192
+ "format": "date-time"
14193
+ }
14194
+ }
14195
+ },
14196
+ "McoOpOverride": {
14197
+ "type": "object",
14198
+ "required": [
14199
+ "orgId",
14200
+ "connectorId",
14201
+ "opId",
14202
+ "enabled",
14203
+ "reason",
14204
+ "updatedAt"
14205
+ ],
14206
+ "properties": {
14207
+ "orgId": {
14208
+ "type": "string"
14209
+ },
14210
+ "connectorId": {
14211
+ "type": "string"
14212
+ },
14213
+ "opId": {
14214
+ "type": "string"
14215
+ },
14216
+ "enabled": {
14217
+ "type": "boolean"
14218
+ },
14219
+ "reason": {
14220
+ "type": "string"
14221
+ },
14222
+ "updatedAt": {
14223
+ "type": "string",
14224
+ "format": "date-time"
14225
+ },
14226
+ "updatedBy": {
14227
+ "type": "string"
14228
+ },
14229
+ "expiresAt": {
14230
+ "type": "string",
14231
+ "nullable": true,
14232
+ "format": "date-time"
14233
+ }
14234
+ }
14235
+ },
14236
+ "McoOpAttemptInput": {
14237
+ "type": "object",
14238
+ "required": [
14239
+ "at",
14240
+ "status"
14241
+ ],
14242
+ "properties": {
14243
+ "at": {
14244
+ "type": "string",
14245
+ "format": "date-time"
14246
+ },
14247
+ "status": {
14248
+ "type": "string",
14249
+ "enum": [
14250
+ "ok",
14251
+ "fail",
14252
+ "skip",
14253
+ "disabled"
14254
+ ]
14255
+ },
14256
+ "httpStatus": {
14257
+ "type": "integer"
14258
+ },
14259
+ "error": {
14260
+ "type": "string"
14261
+ },
14262
+ "durationMs": {
14263
+ "type": "number"
14264
+ },
14265
+ "runId": {
14266
+ "type": "string"
14267
+ },
14268
+ "source": {
14269
+ "type": "string"
14270
+ }
14271
+ }
14272
+ },
14273
+ "McoOpAttempt": {
14274
+ "allOf": [
14275
+ {
14276
+ "$ref": "#/components/schemas/McoOpAttemptInput"
14277
+ },
14278
+ {
14279
+ "type": "object",
14280
+ "required": [
14281
+ "orgId",
14282
+ "connectorId",
14283
+ "opId",
14284
+ "attemptId"
14285
+ ],
14286
+ "properties": {
14287
+ "orgId": {
14288
+ "type": "string"
14289
+ },
14290
+ "connectorId": {
14291
+ "type": "string"
14292
+ },
14293
+ "opId": {
14294
+ "type": "string"
14295
+ },
14296
+ "attemptId": {
14297
+ "type": "string"
14298
+ }
14299
+ }
14300
+ }
14301
+ ]
14302
+ },
14303
+ "McoOpStats": {
14304
+ "type": "object",
14305
+ "required": [
14306
+ "orgId",
14307
+ "connectorId",
14308
+ "opId",
14309
+ "attemptCount",
14310
+ "okCount",
14311
+ "failCount",
14312
+ "skipCount",
14313
+ "disabledCount"
14314
+ ],
14315
+ "properties": {
14316
+ "orgId": {
14317
+ "type": "string"
14318
+ },
14319
+ "connectorId": {
14320
+ "type": "string"
14321
+ },
14322
+ "opId": {
14323
+ "type": "string"
14324
+ },
14325
+ "attemptCount": {
14326
+ "type": "integer"
14327
+ },
14328
+ "okCount": {
14329
+ "type": "integer"
14330
+ },
14331
+ "failCount": {
14332
+ "type": "integer"
14333
+ },
14334
+ "skipCount": {
14335
+ "type": "integer"
14336
+ },
14337
+ "disabledCount": {
14338
+ "type": "integer"
14339
+ },
14340
+ "lastSuccessAt": {
14341
+ "type": "string",
14342
+ "nullable": true,
14343
+ "format": "date-time"
14344
+ },
14345
+ "lastFailAt": {
14346
+ "type": "string",
14347
+ "nullable": true,
14348
+ "format": "date-time"
14349
+ },
14350
+ "lastAttemptAt": {
14351
+ "type": "string",
14352
+ "nullable": true,
14353
+ "format": "date-time"
14354
+ },
14355
+ "lastStatus": {
14356
+ "type": "string",
14357
+ "nullable": true
14358
+ },
14359
+ "recent": {
14360
+ "type": "array",
14361
+ "items": {
14362
+ "type": "object",
14363
+ "additionalProperties": true
14364
+ }
14365
+ }
14366
+ }
11442
14367
  }
11443
14368
  }
11444
14369
  }