Skip to content

Commit 6ec0068

Browse files
committed
Implement OpenAPI specs for /Api/CloudMatrix/Audits
1 parent 237af5f commit 6ec0068

1 file changed

Lines changed: 358 additions & 0 deletions

File tree

specs/Data-Gateway.json

Lines changed: 358 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,77 @@
180180
"value": "5a2f4c89-7d68-4f2e-8d40-2dca5d5a5c11"
181181
}
182182
}
183+
},
184+
"auditActor": {
185+
"name": "actor",
186+
"in": "query",
187+
"description": "Optional actor display name filter.",
188+
"required": false,
189+
"schema": {
190+
"type": "string"
191+
}
192+
},
193+
"auditEntityType": {
194+
"name": "entityType",
195+
"in": "query",
196+
"description": "Optional logical entity type filter.",
197+
"required": false,
198+
"schema": {
199+
"type": "string"
200+
}
201+
},
202+
"auditEntityId": {
203+
"name": "entityId",
204+
"in": "query",
205+
"description": "Optional entity identifier filter. Must be a GUID when provided.",
206+
"required": false,
207+
"schema": {
208+
"type": "string",
209+
"format": "uuid"
210+
}
211+
},
212+
"auditStartDate": {
213+
"name": "startDate",
214+
"in": "query",
215+
"description": "Optional inclusive lower bound for event timestamp filtering.",
216+
"required": false,
217+
"schema": {
218+
"type": "string",
219+
"format": "date-time"
220+
}
221+
},
222+
"auditEndDate": {
223+
"name": "endDate",
224+
"in": "query",
225+
"description": "Optional inclusive upper bound for event timestamp filtering.",
226+
"required": false,
227+
"schema": {
228+
"type": "string",
229+
"format": "date-time"
230+
}
231+
},
232+
"auditOffset": {
233+
"name": "offset",
234+
"in": "query",
235+
"description": "Zero-based pagination offset.",
236+
"required": false,
237+
"schema": {
238+
"type": "integer",
239+
"minimum": 0,
240+
"default": 0
241+
}
242+
},
243+
"auditLimit": {
244+
"name": "limit",
245+
"in": "query",
246+
"description": "Page size. Must be between 1 and 1000.",
247+
"required": false,
248+
"schema": {
249+
"type": "integer",
250+
"minimum": 1,
251+
"maximum": 1000,
252+
"default": 50
253+
}
183254
}
184255
},
185256
"responses": {
@@ -4957,6 +5028,225 @@
49575028
}
49585029
}
49595030
]
5031+
},
5032+
"CloudMatrix.AuditActor": {
5033+
"type": "object",
5034+
"additionalProperties": false,
5035+
"required": [
5036+
"aadObjectId",
5037+
"displayName",
5038+
"type"
5039+
],
5040+
"properties": {
5041+
"aadObjectId": {
5042+
"type": "string",
5043+
"format": "uuid"
5044+
},
5045+
"displayName": {
5046+
"type": "string"
5047+
},
5048+
"type": {
5049+
"type": "string",
5050+
"enum": [
5051+
"User",
5052+
"ServicePrincipal",
5053+
"System"
5054+
]
5055+
}
5056+
}
5057+
},
5058+
"CloudMatrix.AuditEventOperation": {
5059+
"type": "object",
5060+
"additionalProperties": false,
5061+
"required": [
5062+
"action",
5063+
"entityType",
5064+
"entityId",
5065+
"blobPath"
5066+
],
5067+
"properties": {
5068+
"action": {
5069+
"type": "string",
5070+
"enum": [
5071+
"CREATE",
5072+
"UPDATE",
5073+
"DELETE"
5074+
]
5075+
},
5076+
"entityType": {
5077+
"type": "string"
5078+
},
5079+
"entityId": {
5080+
"type": "string",
5081+
"format": "uuid"
5082+
},
5083+
"blobPath": {
5084+
"type": [
5085+
"string",
5086+
"null"
5087+
]
5088+
}
5089+
}
5090+
},
5091+
"CloudMatrix.AuditEventChanges": {
5092+
"type": "object",
5093+
"additionalProperties": false,
5094+
"required": [
5095+
"changedFields",
5096+
"before",
5097+
"after"
5098+
],
5099+
"properties": {
5100+
"changedFields": {
5101+
"type": "array",
5102+
"items": {
5103+
"type": "string"
5104+
}
5105+
},
5106+
"before": {
5107+
"type": [
5108+
"object",
5109+
"null"
5110+
],
5111+
"additionalProperties": true
5112+
},
5113+
"after": {
5114+
"type": [
5115+
"object",
5116+
"null"
5117+
],
5118+
"additionalProperties": true
5119+
}
5120+
}
5121+
},
5122+
"CloudMatrix.AuditEventContext": {
5123+
"type": "object",
5124+
"additionalProperties": false,
5125+
"required": [
5126+
"correlationId",
5127+
"source",
5128+
"application"
5129+
],
5130+
"properties": {
5131+
"correlationId": {
5132+
"type": [
5133+
"string",
5134+
"null"
5135+
],
5136+
"format": "uuid"
5137+
},
5138+
"source": {
5139+
"type": "string"
5140+
},
5141+
"application": {
5142+
"type": "string"
5143+
}
5144+
}
5145+
},
5146+
"CloudMatrix.AuditEvent": {
5147+
"type": "object",
5148+
"additionalProperties": false,
5149+
"required": [
5150+
"auditId",
5151+
"timestampUtc",
5152+
"actor",
5153+
"operation",
5154+
"changes",
5155+
"context"
5156+
],
5157+
"properties": {
5158+
"auditId": {
5159+
"type": "string",
5160+
"format": "uuid"
5161+
},
5162+
"timestampUtc": {
5163+
"type": "string",
5164+
"format": "date-time"
5165+
},
5166+
"actor": {
5167+
"$ref": "#/components/schemas/CloudMatrix.AuditActor"
5168+
},
5169+
"operation": {
5170+
"$ref": "#/components/schemas/CloudMatrix.AuditEventOperation"
5171+
},
5172+
"changes": {
5173+
"$ref": "#/components/schemas/CloudMatrix.AuditEventChanges"
5174+
},
5175+
"context": {
5176+
"$ref": "#/components/schemas/CloudMatrix.AuditEventContext"
5177+
}
5178+
},
5179+
"example": {
5180+
"auditId": "8c9d7e36-8b71-4b46-b4da-7d1f7fd9a001",
5181+
"timestampUtc": "2026-03-09T09:30:16.000Z",
5182+
"actor": {
5183+
"aadObjectId": "3e4d5c6b-7a81-4f01-9a2b-1234567890ab",
5184+
"displayName": "Joe Bloggs",
5185+
"type": "User"
5186+
},
5187+
"operation": {
5188+
"action": "UPDATE",
5189+
"entityType": "Cloud Matrix Template",
5190+
"entityId": "a12f2907-c781-4bf1-b912-b91510853052",
5191+
"blobPath": "cloud-matrix/templates/microsoft-enterprise/6.0.1.1.json"
5192+
},
5193+
"changes": {
5194+
"changedFields": [
5195+
"name",
5196+
"email",
5197+
"lastName"
5198+
],
5199+
"before": {
5200+
"name": "Claudine Potter",
5201+
"email": "claudine.potter@acme_widgets.com",
5202+
"lastName": "Potter"
5203+
},
5204+
"after": {
5205+
"name": "Claudine Moore",
5206+
"email": "claudine.moore@acme_widgets.com",
5207+
"lastName": "Moore"
5208+
}
5209+
},
5210+
"context": {
5211+
"correlationId": "7d9b8d8f-08bb-46f7-b3cb-5d5df18b1d77",
5212+
"source": "Cloud Matrix",
5213+
"application": "CM Admin"
5214+
}
5215+
}
5216+
},
5217+
"CloudMatrix.AuditEventListResponse": {
5218+
"type": "object",
5219+
"additionalProperties": false,
5220+
"required": [
5221+
"items",
5222+
"offset",
5223+
"limit",
5224+
"nextOffset"
5225+
],
5226+
"properties": {
5227+
"items": {
5228+
"type": "array",
5229+
"items": {
5230+
"$ref": "#/components/schemas/CloudMatrix.AuditEvent"
5231+
}
5232+
},
5233+
"offset": {
5234+
"type": "integer",
5235+
"minimum": 0
5236+
},
5237+
"limit": {
5238+
"type": "integer",
5239+
"minimum": 1,
5240+
"maximum": 1000
5241+
},
5242+
"nextOffset": {
5243+
"type": [
5244+
"integer",
5245+
"null"
5246+
],
5247+
"minimum": 0
5248+
}
5249+
}
49605250
}
49615251
},
49625252
"securitySchemes": {
@@ -11742,6 +12032,74 @@
1174212032
],
1174312033
"summary": "Upload and Replace the List of Cloud Matrix Third-Party Publishers"
1174412034
}
12035+
},
12036+
"/Api/CloudMatrix/Audits": {
12037+
"get": {
12038+
"tags": [
12039+
"Cloud Matrix"
12040+
],
12041+
"summary": "Get Cloud Matrix audit events",
12042+
"description": "Returns a filtered, paginated list of Cloud Matrix audit events.",
12043+
"operationId": "getCloudMatrixAuditEvents",
12044+
"security": [
12045+
{
12046+
"EntraID": []
12047+
}
12048+
],
12049+
"parameters": [
12050+
{
12051+
"$ref": "#/components/parameters/auditActor"
12052+
},
12053+
{
12054+
"$ref": "#/components/parameters/auditEntityType"
12055+
},
12056+
{
12057+
"$ref": "#/components/parameters/auditEntityId"
12058+
},
12059+
{
12060+
"$ref": "#/components/parameters/auditStartDate"
12061+
},
12062+
{
12063+
"$ref": "#/components/parameters/auditEndDate"
12064+
},
12065+
{
12066+
"$ref": "#/components/parameters/auditOffset"
12067+
},
12068+
{
12069+
"$ref": "#/components/parameters/auditLimit"
12070+
}
12071+
],
12072+
"responses": {
12073+
"200": {
12074+
"description": "Cloud Matrix audit events retrieved successfully.",
12075+
"content": {
12076+
"application/json": {
12077+
"schema": {
12078+
"$ref": "#/components/schemas/CloudMatrix.AuditEventListResponse"
12079+
}
12080+
}
12081+
}
12082+
},
12083+
"400": {
12084+
"$ref": "#/components/responses/400"
12085+
},
12086+
"401": {
12087+
"$ref": "#/components/responses/401"
12088+
},
12089+
"403": {
12090+
"$ref": "#/components/responses/403"
12091+
},
12092+
"500": {
12093+
"$ref": "#/components/responses/500"
12094+
},
12095+
"503": {
12096+
"$ref": "#/components/responses/503"
12097+
},
12098+
"525": {
12099+
"$ref": "#/components/responses/525"
12100+
}
12101+
}
12102+
}
1174512103
}
1174612104
},
1174712105
"security": [

0 commit comments

Comments
 (0)