From ccfb2a7fb2a4885751976718c37e12d7c22aeb09 Mon Sep 17 00:00:00 2001 From: Ho Ngoc Hai Date: Sun, 4 Jan 2026 13:56:12 +0700 Subject: [PATCH] =?UTF-8?q?feat:=20Th=C3=AAm=20=C4=91=E1=BB=8Bnh=20ngh?= =?UTF-8?q?=C4=A9a=20schema=20cho=20y=C3=AAu=20c=E1=BA=A7u=20truy=20c?= =?UTF-8?q?=E1=BA=ADp,=20=C4=91=C3=A1nh=20gi=C3=A1=20truy=20c=E1=BA=ADp,?= =?UTF-8?q?=20ch=C3=ADnh=20s=C3=A1ch,=20b=C3=A1o=20c=C3=A1o=20tu=C3=A2n=20?= =?UTF-8?q?th=E1=BB=A7=20v=C3=A0=20phi=C3=AAn=20v=C3=A0o=20t=C3=A0i=20li?= =?UTF-8?q?=E1=BB=87u=20Swagger.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/iam-service/src/docs/swagger.ts | 87 ++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/services/iam-service/src/docs/swagger.ts b/services/iam-service/src/docs/swagger.ts index aa14f49b..5cf42bd5 100644 --- a/services/iam-service/src/docs/swagger.ts +++ b/services/iam-service/src/docs/swagger.ts @@ -254,6 +254,93 @@ const options = { organizationId: { type: 'string' }, }, }, + AccessRequest: { + type: 'object', + properties: { + id: { type: 'string' }, + resource: { type: 'string' }, + action: { type: 'string' }, + status: { type: 'string', enum: ['PENDING', 'APPROVED', 'REJECTED'] }, + reason: { type: 'string' }, + requesterId: { type: 'string' }, + createdAt: { type: 'string', format: 'date-time' }, + }, + }, + CreateAccessRequest: { + type: 'object', + properties: { + resource: { type: 'string' }, + action: { type: 'string' }, + reason: { type: 'string' }, + expiresAt: { type: 'string', format: 'date-time' }, + }, + required: ['resource', 'action'], + }, + AccessReview: { + type: 'object', + properties: { + id: { type: 'string' }, + name: { type: 'string' }, + status: { type: 'string' }, + type: { type: 'string' }, + startDate: { type: 'string', format: 'date-time' }, + endDate: { type: 'string', format: 'date-time' }, + }, + }, + CreateAccessReviewRequest: { + type: 'object', + properties: { + name: { type: 'string' }, + type: { type: 'string', enum: ['PERIODIC', 'ADHOC'] }, + startDate: { type: 'string', format: 'date-time' }, + endDate: { type: 'string', format: 'date-time' }, + }, + required: ['name', 'type'], + }, + Policy: { + type: 'object', + properties: { + id: { type: 'string' }, + name: { type: 'string' }, + type: { type: 'string' }, + content: { type: 'object' }, + isActive: { type: 'boolean' }, + }, + }, + ComplianceReport: { + type: 'object', + properties: { + id: { type: 'string' }, + type: { type: 'string' }, + status: { type: 'string' }, + generatedAt: { type: 'string', format: 'date-time' }, + url: { type: 'string' }, + }, + }, + GenerateComplianceReportRequest: { + type: 'object', + properties: { + type: { type: 'string' }, + periodStart: { type: 'string', format: 'date-time' }, + periodEnd: { type: 'string', format: 'date-time' }, + }, + required: ['type'], + }, + Session: { + type: 'object', + properties: { + id: { type: 'string' }, + userId: { type: 'string' }, + deviceId: { type: 'string' }, + deviceName: { type: 'string' }, + ipAddress: { type: 'string' }, + userAgent: { type: 'string' }, + isActive: { type: 'boolean' }, + expiresAt: { type: 'string', format: 'date-time' }, + createdAt: { type: 'string', format: 'date-time' }, + lastActivityAt: { type: 'string', format: 'date-time' }, + }, + }, Feature: { type: 'object', properties: {