From 2965b885abf72160b8814efea7476dc07b44f219 Mon Sep 17 00:00:00 2001 From: Minhyeok LEE <130422754+raccoon-mh@users.noreply.github.com> Date: Wed, 14 Aug 2024 17:34:27 +0900 Subject: [PATCH] Update swagger.json --- swagger/swagger.json | 4005 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 4004 insertions(+), 1 deletion(-) diff --git a/swagger/swagger.json b/swagger/swagger.json index ba5d002..7865404 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -1 +1,4004 @@ -{"swagger":"2.0","info":{"contact":{},"description":"권한 및 접근제어와 워크스페이스 관리 프레임워크\n\n---\n\nThe Multi-Cloud Authorization and Access Control Framework provides platform account/role management, integrated management of cloud account/access control information, and workspace management functionalities. It offers features compatible with security policy determination, establishment, and enforcement for existing multi-cloud services. Additionally, it provides the capability to establish and manage independent security policies within the framework.\n\nIt defines an access control reference model for multi-cloud, distinguishing between user access control and service provider access control. This model adopts a prominent Role-Based Access Control (RBAC) approach and integrates it with existing policy management solutions for application and utilization.","title":"mc-iam-manager","version":"1.0.0"},"host":"localhost:5000","basePath":"/","schemes":["https"],"paths":{"/alive":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"success","headers":{"Connection":{"type":"string"},"Content-Length":{"type":"string"},"Date":{"type":"string"},"Server":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"ststus":{"example":"ok","type":"string"}},"type":"object"}}},"tags":["Alive"],"description":"mc-iam-manager가 정상적으로 작동중인지 단순 확인합니다.","operationId":"alive","summary":"Alive"}},"/api/auth/certs":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetCerts Succsess","headers":{"Date":{"type":"string"},"Transfer-Encoding":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"keys":{"example":[{"alg":"RSA-OAEP","e":"AQAB","kid":"xxxxxxx","kty":"RSA","n":"xxxxxxx","use":"enc","x5c":["xxxxxxx"],"x5t":"xxxxxxx","x5t#S256":"xxxxxxx"},{"alg":"RS256","e":"AQAB","kid":"xxxxxxx","kty":"RSA","n":"xxxxxxx","use":"sig","x5c":["xxxxxxx"],"x5t":"xxxxxxx","x5t#S256":"xxxxxxx"}],"items":{"properties":{"alg":{"example":"RSA-OAEP","type":"string"},"e":{"example":"AQAB","type":"string"},"kid":{"example":"xxxxxxx","type":"string"},"kty":{"example":"RSA","type":"string"},"n":{"example":"xxxxxxx","type":"string"},"use":{"example":"enc","type":"string"},"x5c":{"example":["xxxxxxx"],"items":{"example":"xxxxxxx","type":"string"},"type":"array"},"x5t":{"example":"xxxxxxx","type":"string"},"x5t#S256":{"example":"xxxxxxx","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}}},"tags":["Auth"],"description":"유저 토큰의 사용가능 유무","operationId":"getcerts","summary":"GetCerts"}},"/api/auth/login":{"post":{"consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"id":{"example":"userid","type":"string"},"password":{"example":"userpw","type":"string"}},"type":"object"}}],"responses":{"200":{"description":"Login Success","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"access_token":{"example":"xxxxx","type":"string"},"expires_in":{"example":300,"type":"number"},"not-before-policy":{"example":9999999999,"type":"number"},"refresh_expires_in":{"example":1800,"type":"number"},"refresh_token":{"example":"xxxxx","type":"string"},"scope":{"example":"xxxxx","type":"string"},"session_state":{"example":"xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","type":"string"},"token_type":{"example":"Bearer","type":"string"}},"type":"object"}},"503":{"description":"Login Fail","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"code":{"example":"401 Unauthorized","type":"string"}},"type":"object"}}},"tags":["Auth"],"description":"ID/Password를 받아 JWT 세션 토큰을 반환","operationId":"login","summary":"Login"}},"/api/auth/login/refresh":{"post":{"consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"refresh_token":{"example":"****************************","type":"string"}},"type":"object"}}],"responses":{"200":{"description":"Login Success","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"access_token":{"example":"xxxxx","type":"string"},"expires_in":{"example":300,"type":"number"},"not-before-policy":{"example":9999999999,"type":"number"},"refresh_expires_in":{"example":1800,"type":"number"},"refresh_token":{"example":"xxxxx","type":"string"},"scope":{"example":"xxxxx","type":"string"},"session_state":{"example":"xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","type":"string"},"token_type":{"example":"Bearer","type":"string"}},"type":"object"}},"503":{"description":"Login Fail","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"code":{"example":"401 Unauthorized","type":"string"}},"type":"object"}}},"tags":["Auth"],"description":"refresh_token과 기존 JWT를 받아, 새로운 JWT 토큰 발급","operationId":"loginrefresh","summary":"LoginRefresh"}},"/api/auth/logout":{"post":{"consumes":["application/json"],"produces":["text/plain","application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"refresh_token":{"example":"****************************","type":"string"}},"type":"object"}}],"responses":{"204":{"description":"Logout Success","headers":{"Date":{"type":"string"},"Vary":{"type":"string"}}},"503":{"description":"Logout Fail","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"code":{"example":"400 Bad Request","type":"string"}},"type":"object"}}},"tags":["Auth"],"description":"AccessToken및 RefreshToken을 받아 해당 토큰 파기","operationId":"logout","summary":"Logout"}},"/api/auth/userinfo":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetUserinfo Success","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"sub":{"example":"xxxx-xxxx-xxxx-xxxx-xxxx","type":"string"}},"type":"object"}},"401":{"description":"GetUserinfo Fail","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"code":{"example":"401 Unauthorized","type":"string"}},"type":"object"}}},"tags":["Auth"],"description":"유저 정보 조회","operationId":"getuserinfo","summary":"GetUserinfo"}},"/api/auth/validate":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetUserinfo Success","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"sub":{"example":"xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","type":"string"}},"type":"object"}},"503":{"description":"GetUserinfo Fail","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"code":{"example":"401 Unauthorized","type":"string"}},"type":"object"}}},"tags":["Auth"],"description":"유저 토큰의 사용가능 유무","operationId":"getusevalidate","summary":"GetUseValidate"}},"/api/permission":{"get":{"parameters":[{"in":"query","name":"name","type":"string"},{"in":"query","name":"resource","type":"string"}],"responses":{"200":{"description":""}},"tags":["Permission"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"getpermissions","summary":"GetPermissions"},"post":{"consumes":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"desc":{"example":"myPermissionTest","type":"string"},"name":{"example":"myPermissionTest","type":"string"},"policies":{"example":["adminPolicy"],"items":{"example":"adminPolicy","type":"string"},"type":"array"},"resources":{"example":["testres2:/test/res2"],"items":{"example":"testres2:/test/res2","type":"string"},"type":"array"}},"type":"object"}}],"responses":{"200":{"description":""}},"tags":["Permission"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"createpermission","summary":"CreatePermission"}},"/api/permission/id/{permissionId}":{"parameters":[{"in":"path","name":"permissionId","required":true,"type":"string"}],"delete":{"parameters":[{"in":"query","name":"uri","type":"string"},{"in":"query","name":"operationId","type":"string"}],"responses":{"200":{"description":""}},"tags":["Permission"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"deletepermission","summary":"DeletePermission"},"get":{"parameters":[{"in":"query","name":"name","type":"string"},{"in":"query","name":"resource","type":"string"}],"responses":{"200":{"description":""}},"tags":["Permission"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"getpermission","summary":"GetPermission"},"put":{"consumes":["application/json"],"parameters":[{"in":"query","name":"uri","type":"string"},{"in":"query","name":"operationId","type":"string"},{"in":"body","name":"body","schema":{"properties":{"desc":{"example":"myPermissionTest new desc","type":"string"},"name":{"example":"myPermissionTest","type":"string"},"policies":{"example":["adminPolicy"],"items":{"example":"adminPolicy","type":"string"},"type":"array"},"resources":{"example":["testres2:/test/res2"],"items":{"example":"testres2:/test/res2","type":"string"},"type":"array"}},"type":"object"}}],"responses":{"200":{"description":""}},"tags":["Permission"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"updatepermission","summary":"UpdatePermission"}},"/api/poc/sts/securitykey":{"get":{"produces":["application/json"],"parameters":[{"description":"eg) aws,alibaba / aws / alibaba ","in":"query","name":"providers","type":"string"}],"responses":{"200":{"description":"Securitykey Success","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"AccessKeyId":{"example":"xxxx","type":"string"},"Expiration":{"example":"2024-04-09T00:51:43Z","type":"string"},"SecretAccessKey":{"example":"xxxx","type":"string"},"SessionToken":{"example":"xxxx","type":"string"}},"type":"object"}},"503":{"description":"Securitykey CSP err","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"err":{"example":"provided CSP is not supported","type":"string"}},"type":"object"}}},"tags":["[PoC] STS"],"description":"임시보안자격증명 발급요청\n\nPOC 단계.\n\nAWS / Alibaba OIDC 기반 Keyclaok IDP 사용으로 연결 설정 필요","operationId":"securitykey","summary":"Securitykey"}},"/api/prj":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetProjectList","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"created_at":"2024-06-18T00:28:57.094105Z","description":"project1 desc","id":"1e88f4ea-d052-4314-80a4-9ac3f6691feb","name":"project1","ns_id":"project1","updated_at":"2024-06-18T00:28:57.094105Z"},{"created_at":"2024-06-18T00:29:06.670758Z","description":"project2 desc","id":"e997faba-3421-458e-b269-f8a26a5caa25","name":"project2","ns_id":"project2","updated_at":"2024-06-18T00:29:06.670758Z"},{"created_at":"2024-06-18T00:29:13.823792Z","description":"project3 desc","id":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","name":"project3","ns_id":"project3","updated_at":"2024-06-18T00:29:13.823792Z"},{"created_at":"2024-06-18T00:29:21.723148Z","description":"project4 desc","id":"545be97b-b3bb-4f67-a7de-f18943bd69d5","name":"project4","ns_id":"project4","updated_at":"2024-06-18T00:29:21.723148Z"},{"created_at":"2024-06-18T00:29:27.134889Z","description":"project5 desc","id":"34d1d14f-4032-42bd-ae80-ef71e0dfbbb7","name":"project5","ns_id":"project5","updated_at":"2024-06-18T00:29:27.134889Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:28:57.094105Z","type":"string"},"description":{"example":"project1 desc","type":"string"},"id":{"example":"1e88f4ea-d052-4314-80a4-9ac3f6691feb","type":"string"},"name":{"example":"project1","type":"string"},"ns_id":{"example":"project1","type":"string"},"updated_at":{"example":"2024-06-18T00:28:57.094105Z","type":"string"}},"type":"object"},"type":"array"}}},"tags":["Project"],"description":"project 목록 조회","operationId":"getprojectlist","summary":"GetProjectList"},"post":{"consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"description":{"example":"coffeeshop desc","type":"string"},"name":{"example":"coffeeshop","type":"string"}},"type":"object"}}],"responses":{"200":{"description":"CreateProject - project3","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:29:13.823792Z","type":"string"},"description":{"example":"project3 desc","type":"string"},"id":{"example":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","type":"string"},"name":{"example":"project3","type":"string"},"ns_id":{"example":"project3","type":"string"},"updated_at":{"example":"2024-06-18T00:29:13.823792Z","type":"string"}},"type":"object"}}},"tags":["Project"],"description":"project 생성","operationId":"createproject","summary":"CreateProject"}},"/api/prj/project/id/{projectId}":{"parameters":[{"in":"path","name":"projectId","required":true,"type":"string"}],"delete":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"DeleteProjectById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"message":{"example":"ID(34d1d14f-4032-42bd-ae80-ef71e0dfbbb7) / Name(project5) is delected..","type":"string"}},"type":"object"}}},"tags":["Project"],"description":"project 삭제","operationId":"deleteprojectbyid","summary":"DeleteProjectById"},"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetProjectById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:28:57.094105Z","type":"string"},"description":{"example":"project1 desc","type":"string"},"id":{"example":"1e88f4ea-d052-4314-80a4-9ac3f6691feb","type":"string"},"name":{"example":"project1","type":"string"},"ns_id":{"example":"project1","type":"string"},"updated_at":{"example":"2024-06-18T00:28:57.094105Z","type":"string"}},"type":"object"}}},"tags":["Project"],"description":"project 단건 조회","operationId":"getprojectbyid","summary":"GetProjectById"},"put":{"consumes":["text/plain"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"format":"binary","type":"string"}}],"responses":{"200":{"description":"UpdateProjectById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:28:57.094105Z","type":"string"},"description":{"example":"New desc","type":"string"},"id":{"example":"1e88f4ea-d052-4314-80a4-9ac3f6691feb","type":"string"},"name":{"example":"project1","type":"string"},"ns_id":{"example":"project1","type":"string"},"updated_at":{"example":"2024-06-18T00:32:12.410947Z","type":"string"}},"type":"object"}}},"tags":["Project"],"description":"project 수정","operationId":"updateprojectbyid","summary":"UpdateProjectById"}},"/api/prj/project/{projectName}":{"parameters":[{"in":"path","name":"projectName","required":true,"type":"string"}],"get":{"produces":["application/json"],"parameters":[{"description":"contain or emty","in":"query","name":"option","type":"string"}],"responses":{"200":{"description":"SearchProjectsByName - withOption","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"created_at":"2024-06-18T00:28:57.094105Z","description":"project1 desc","id":"1e88f4ea-d052-4314-80a4-9ac3f6691feb","name":"project1","ns_id":"project1","updated_at":"2024-06-18T00:28:57.094105Z"},{"created_at":"2024-06-18T00:29:06.670758Z","description":"project2 desc","id":"e997faba-3421-458e-b269-f8a26a5caa25","name":"project2","ns_id":"project2","updated_at":"2024-06-18T00:29:06.670758Z"},{"created_at":"2024-06-18T00:29:13.823792Z","description":"project3 desc","id":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","name":"project3","ns_id":"project3","updated_at":"2024-06-18T00:29:13.823792Z"},{"created_at":"2024-06-18T00:29:21.723148Z","description":"project4 desc","id":"545be97b-b3bb-4f67-a7de-f18943bd69d5","name":"project4","ns_id":"project4","updated_at":"2024-06-18T00:29:21.723148Z"},{"created_at":"2024-06-18T00:29:27.134889Z","description":"project5 desc","id":"34d1d14f-4032-42bd-ae80-ef71e0dfbbb7","name":"project5","ns_id":"project5","updated_at":"2024-06-18T00:29:27.134889Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:28:57.094105Z","type":"string"},"description":{"example":"project1 desc","type":"string"},"id":{"example":"1e88f4ea-d052-4314-80a4-9ac3f6691feb","type":"string"},"name":{"example":"project1","type":"string"},"ns_id":{"example":"project1","type":"string"},"updated_at":{"example":"2024-06-18T00:28:57.094105Z","type":"string"}},"type":"object"},"type":"array"}}},"tags":["Project"],"description":"project 목록 검색","operationId":"searchprojectsbyname","summary":"SearchProjectsByName"}},"/api/resource":{"get":{"parameters":[{"in":"query","name":"uri","type":"string"},{"in":"query","name":"operationId","type":"string"}],"responses":{"200":{"description":""}},"tags":["Resource"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"getresources","summary":"GetResources"},"post":{"consumes":["application/json"],"parameters":[{"in":"query","name":"uri","type":"string"},{"in":"query","name":"operationId","type":"string"},{"in":"body","name":"body","schema":{"example":[{"framework":"testFw","method":"GET","operationId":"testOperation","uri":"/test/operation"}],"items":{"properties":{"framework":{"example":"testFw","type":"string"},"method":{"example":"GET","type":"string"},"operationId":{"example":"testOperation","type":"string"},"uri":{"example":"/test/operation","type":"string"}},"type":"object"},"type":"array"}}],"responses":{"200":{"description":""}},"tags":["Resource"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"createresource","summary":"CreateResource"}},"/api/resource/file/framework/{framework}":{"parameters":[{"in":"path","name":"framework","required":true,"type":"string"}],"post":{"consumes":["multipart/form-data"],"parameters":[{"format":"binary","in":"formData","name":"swagger","type":"string"}],"responses":{"200":{"description":""}},"tags":["Resource"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"createresourcesbyswagger","summary":"CreateResourcesBySwagger"}},"/api/resource/id/{id}":{"parameters":[{"in":"path","name":"id","required":true,"type":"string"}],"delete":{"parameters":[],"responses":{"200":{"description":""}},"tags":["Resource"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"deleteresource","summary":"DeleteResource"},"put":{"consumes":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"name":{"example":"testres3:/test/res3","type":"string"},"uris":{"example":["/test/res3"],"items":{"example":"/test/res3","type":"string"},"type":"array"}},"type":"object"}}],"responses":{"200":{"description":""}},"tags":["Resource"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"updateresource","summary":"UpdateResource"}},"/api/role":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetRoleList","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"created_at":"2024-06-18T00:34:26.173037Z","description":"admin Role","id":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","name":"admin","updated_at":"2024-06-18T00:34:26.173037Z"},{"created_at":"2024-06-18T00:34:37.089727Z","description":"operator Role","id":"fb570691-1b07-4d05-90fb-492bdbbfdd52","name":"operator","updated_at":"2024-06-18T00:34:37.089727Z"},{"created_at":"2024-06-18T00:34:45.290009Z","description":"viewer Role","id":"6c4fa775-927c-40e7-b1e5-e3716eccecd0","name":"viewer","updated_at":"2024-06-18T00:34:45.290009Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"},"description":{"example":"admin Role","type":"string"},"id":{"example":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","type":"string"},"name":{"example":"admin","type":"string"},"updated_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"}},"type":"object"},"type":"array"}}},"tags":["Role"],"description":"role 전체 목록 조회","operationId":"getrolelist","summary":"GetRoleList"},"post":{"consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"description":{"example":"admin Role","type":"string"},"name":{"example":"admin","type":"string"}},"type":"object"}}],"responses":{"200":{"description":"CreateRole - viewer","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:34:45.290009Z","type":"string"},"description":{"example":"viewer Role","type":"string"},"id":{"example":"6c4fa775-927c-40e7-b1e5-e3716eccecd0","type":"string"},"name":{"example":"viewer","type":"string"},"updated_at":{"example":"2024-06-18T00:34:45.290009Z","type":"string"}},"type":"object"}}},"tags":["Role"],"description":"role 생성","operationId":"createrole","summary":"CreateRole"}},"/api/role/id/{roleId}":{"parameters":[{"in":"path","name":"roleId","required":true,"type":"string"}],"delete":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"DeleteRoleById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"message":{"example":"ID(fb570691-1b07-4d05-90fb-492bdbbfdd52) / Name(operator) is delected..","type":"string"}},"type":"object"}}},"tags":["Role"],"description":"role 수정","operationId":"deleterolebyid","summary":"DeleteRoleById"},"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetRoleById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:34:37.089727Z","type":"string"},"description":{"example":"operator Role","type":"string"},"id":{"example":"fb570691-1b07-4d05-90fb-492bdbbfdd52","type":"string"},"name":{"example":"operator","type":"string"},"updated_at":{"example":"2024-06-18T00:34:37.089727Z","type":"string"}},"type":"object"}}},"tags":["Role"],"description":"role 단건 조회","operationId":"getrolebyid","summary":"GetRoleById"},"put":{"consumes":["text/plain"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"format":"binary","type":"string"}}],"responses":{"200":{"description":"UpdateRoleById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:34:37.089727Z","type":"string"},"description":{"example":"New Role desc","type":"string"},"id":{"example":"fb570691-1b07-4d05-90fb-492bdbbfdd52","type":"string"},"name":{"example":"operator","type":"string"},"updated_at":{"example":"2024-06-18T00:37:58.00628Z","type":"string"}},"type":"object"}}},"tags":["Role"],"description":"role 수정","operationId":"updaterolebyid","summary":"UpdateRoleById"}},"/api/role/name/{roleName}":{"parameters":[{"in":"path","name":"roleName","required":true,"type":"string"}],"get":{"produces":["application/json"],"parameters":[{"description":"contain or emty","in":"query","name":"option","type":"string"}],"responses":{"200":{"description":"SearchProjectsByName - withOption","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"created_at":"2024-06-18T00:34:37.089727Z","description":"operator Role","id":"fb570691-1b07-4d05-90fb-492bdbbfdd52","name":"operator","updated_at":"2024-06-18T00:34:37.089727Z"},{"created_at":"2024-06-18T00:34:45.290009Z","description":"viewer Role","id":"6c4fa775-927c-40e7-b1e5-e3716eccecd0","name":"viewer","updated_at":"2024-06-18T00:34:45.290009Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:34:37.089727Z","type":"string"},"description":{"example":"operator Role","type":"string"},"id":{"example":"fb570691-1b07-4d05-90fb-492bdbbfdd52","type":"string"},"name":{"example":"operator","type":"string"},"updated_at":{"example":"2024-06-18T00:34:37.089727Z","type":"string"}},"type":"object"},"type":"array"}}},"tags":["Role"],"description":"role 검색","operationId":"searchrolesbyname","summary":"SearchRolesByName"}},"/api/role/policyid/{policyid}":{"parameters":[{"in":"path","name":"policyid","required":true,"type":"string"}],"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetRoleById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:34:37.089727Z","type":"string"},"description":{"example":"operator Role","type":"string"},"id":{"example":"fb570691-1b07-4d05-90fb-492bdbbfdd52","type":"string"},"name":{"example":"operator","type":"string"},"updated_at":{"example":"2024-06-18T00:34:37.089727Z","type":"string"}},"type":"object"}}},"tags":["Role"],"description":"role 단건 조회","operationId":"getrolebypolicyidNotuse","summary":"GetRoleByPolicyId#notuse"}},"/api/tokentest":{"get":{"parameters":[],"responses":{"200":{"description":""}},"tags":["Tool"],"description":"토큰의 유효성을 확인합니다.","operationId":"tokentest","summary":"tokenTest"}},"/api/tokentest/admin":{"get":{"parameters":[],"responses":{"200":{"description":""}},"tags":["Tool"],"description":"토큰의 유효성과 역할에 Admin이 존재하는지 확인합니다.","operationId":"tokentestadmin","summary":"tokenTestAdmin"}},"/api/tokentest/operator":{"get":{"parameters":[],"responses":{"200":{"description":""}},"tags":["Tool"],"description":"토큰의 유효성과 역할에 Admin, Operator가 존재하는지 확인합니다.","operationId":"tokentestoperator","summary":"tokenTestOperator"}},"/api/tokentest/viewer":{"get":{"parameters":[],"responses":{"200":{"description":""}},"tags":["Tool"],"description":"토큰의 유효성과 역할에 Admin, Operator, Viewer가 존재하는지 확인합니다.","operationId":"tokentestviewer","summary":"tokenTestViewer"}},"/api/tool/mcinfra/sync":{"get":{"parameters":[],"responses":{"200":{"description":""}},"tags":["Tool"],"description":"연결된 TB(mcinframanager)의 NS 리스트를 Project List 로 등록. \n \n기존 등록된 project 와 중복이 발생하면 오류 발생. 새로운 환경에서 첫 회 실행하는 것을 추천.","operationId":"syncprojectlistwithmcinfra","summary":"SyncProjectListWithMcInfra"}},"/api/user":{"get":{"parameters":[{"in":"query","name":"userid","type":"string"}],"responses":{"200":{"description":""}},"tags":["User"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"getusers","summary":"GetUsers"},"post":{"consumes":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"email":{"example":"email@mcmpemail.com","type":"string"},"firstName":{"example":"firstName","type":"string"},"lastName":{"example":"lastName","type":"string"},"name":{"example":"testuser","type":"string"},"password":{"example":"testPassword","type":"string"}},"type":"object"}}],"responses":{"200":{"description":""}},"tags":["User"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"createuser","summary":"Createuser"},"put":{"consumes":["application/json"],"parameters":[{"in":"query","name":"userid","type":"string"},{"in":"body","name":"body","schema":{"properties":{"email":{"example":"email@mcmpemail.com","type":"string"},"firstName":{"example":"firstName","type":"string"},"lastName":{"example":"lastName","type":"string"}},"type":"object"}}],"responses":{"200":{"description":""}},"tags":["User"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"updateuser","summary":"UpdateUser"}},"/api/user/id/{userid}":{"parameters":[{"description":"user uuid","in":"path","name":"userid","required":true,"type":"string"}],"delete":{"parameters":[],"responses":{"200":{"description":""}},"tags":["User"],"description":"사용자는 uma_protection Role 을 가져야 한다.","operationId":"deleteuser","summary":"DeleteUser"}},"/api/ws":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetWorkspaceList","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"created_at":"2024-06-18T00:10:01.805874Z","description":"workspace1 desc","id":"3155f763-d30d-457b-9f75-85aff4b59aa0","name":"workspace1","updated_at":"2024-06-18T00:10:01.805874Z"},{"created_at":"2024-06-18T00:10:16.192337Z","description":"workspace2 desc","id":"8b2df1f9-b937-4861-b5ce-855a41c346bc","name":"workspace2","updated_at":"2024-06-18T00:10:16.192337Z"},{"created_at":"2024-06-18T00:10:25.546809Z","description":"workspace3 desc","id":"0df98936-dda3-4df9-8ac4-09a047ec97e0","name":"workspace3","updated_at":"2024-06-18T00:10:25.546809Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:10:01.805874Z","type":"string"},"description":{"example":"workspace1 desc","type":"string"},"id":{"example":"3155f763-d30d-457b-9f75-85aff4b59aa0","type":"string"},"name":{"example":"workspace1","type":"string"},"updated_at":{"example":"2024-06-18T00:10:01.805874Z","type":"string"}},"type":"object"},"type":"array"}}},"tags":["Workspace"],"description":"workspace 목록 조회","operationId":"getworkspacelist","summary":"GetWorkspaceList"},"post":{"consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"description":{"example":"workspace1 desc","type":"string"},"name":{"example":"workspace1","type":"string"}},"type":"object"}}],"responses":{"200":{"description":"CreateWorkspace - workspace4","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:23:17.0373Z","type":"string"},"description":{"example":"workspace4 desc","type":"string"},"id":{"example":"fd19e7dc-6f6c-4af2-b157-9bf32dfc66dd","type":"string"},"name":{"example":"workspace4","type":"string"},"updated_at":{"example":"2024-06-18T00:23:17.0373Z","type":"string"}},"type":"object"}}},"tags":["Workspace"],"description":"workspace 생성","operationId":"createworkspace","summary":"CreateWorkspace"}},"/api/ws/workspace/id/{workspaceId}":{"parameters":[{"in":"path","name":"workspaceId","required":true,"type":"string"}],"delete":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"DeleteWorkspaceById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"message":{"example":"ID(fd19e7dc-6f6c-4af2-b157-9bf32dfc66dd) / Name(workspace4) is delected..","type":"string"}},"type":"object"}}},"tags":["Workspace"],"description":"workspace 삭제","operationId":"deleteworkspacebyid","summary":"DeleteWorkspaceById"},"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetWorkspaceById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:10:01.805874Z","type":"string"},"description":{"example":"New desc","type":"string"},"id":{"example":"3155f763-d30d-457b-9f75-85aff4b59aa0","type":"string"},"name":{"example":"workspace1","type":"string"},"updated_at":{"example":"2024-06-18T00:14:09.856068Z","type":"string"}},"type":"object"}}},"tags":["Workspace"],"description":"workspace 단건 조회","operationId":"getworkspacebyid","summary":"GetWorkspaceById"},"put":{"consumes":["text/plain"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"format":"binary","type":"string"}}],"responses":{"200":{"description":"GetWorkspaceById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:10:01.805874Z","type":"string"},"description":{"example":"New desc","type":"string"},"id":{"example":"3155f763-d30d-457b-9f75-85aff4b59aa0","type":"string"},"name":{"example":"workspace1","type":"string"},"updated_at":{"example":"2024-06-18T00:22:59.487352Z","type":"string"}},"type":"object"}}},"tags":["Workspace"],"description":"workspace 수정","operationId":"updateworkspacebyid","summary":"UpdateWorkspaceById"}},"/api/ws/workspace/{workspaceName}":{"parameters":[{"in":"path","name":"workspaceName","required":true,"type":"string"}],"get":{"produces":["application/json"],"parameters":[{"description":"contain or emty","in":"query","name":"option","type":"string"}],"responses":{"200":{"description":"SearchWorkspacesByName - withOption","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"created_at":"2024-06-18T00:10:01.805874Z","description":"workspace1 desc","id":"3155f763-d30d-457b-9f75-85aff4b59aa0","name":"workspace1","updated_at":"2024-06-18T00:10:01.805874Z"},{"created_at":"2024-06-18T00:10:16.192337Z","description":"workspace2 desc","id":"8b2df1f9-b937-4861-b5ce-855a41c346bc","name":"workspace2","updated_at":"2024-06-18T00:10:16.192337Z"},{"created_at":"2024-06-18T00:10:25.546809Z","description":"workspace3 desc","id":"0df98936-dda3-4df9-8ac4-09a047ec97e0","name":"workspace3","updated_at":"2024-06-18T00:10:25.546809Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:10:01.805874Z","type":"string"},"description":{"example":"workspace1 desc","type":"string"},"id":{"example":"3155f763-d30d-457b-9f75-85aff4b59aa0","type":"string"},"name":{"example":"workspace1","type":"string"},"updated_at":{"example":"2024-06-18T00:10:01.805874Z","type":"string"}},"type":"object"},"type":"array"}}},"tags":["Workspace"],"description":"workspace 검색","operationId":"searchworkspacesbyname","summary":"SearchWorkspacesByName"}},"/api/wsprj":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetWPmappingListOrderbyWorkspace","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"projects":[{"created_at":"2024-06-18T00:29:06.670758Z","description":"project2 desc","id":"e997faba-3421-458e-b269-f8a26a5caa25","name":"project2","ns_id":"project2","updated_at":"2024-06-18T00:29:06.670758Z"},{"created_at":"2024-06-18T00:29:13.823792Z","description":"project3 desc","id":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","name":"project3","ns_id":"project3","updated_at":"2024-06-18T00:29:13.823792Z"}],"workspace":{"created_at":"2024-06-18T00:10:16.192337Z","description":"workspace2 desc","id":"8b2df1f9-b937-4861-b5ce-855a41c346bc","name":"workspace2","updated_at":"2024-06-18T00:10:16.192337Z"}},{"projects":[{"created_at":"2024-06-18T00:29:06.670758Z","description":"project2 desc","id":"e997faba-3421-458e-b269-f8a26a5caa25","name":"project2","ns_id":"project2","updated_at":"2024-06-18T00:29:06.670758Z"},{"created_at":"2024-06-18T00:28:57.094105Z","description":"New desc","id":"1e88f4ea-d052-4314-80a4-9ac3f6691feb","name":"project1","ns_id":"project1","updated_at":"2024-06-18T00:32:12.410947Z"}],"workspace":{"created_at":"2024-06-18T00:10:25.546809Z","description":"workspace3 desc","id":"0df98936-dda3-4df9-8ac4-09a047ec97e0","name":"workspace3","updated_at":"2024-06-18T00:10:25.546809Z"}}],"items":{"properties":{"projects":{"example":[{"created_at":"2024-06-18T00:29:06.670758Z","description":"project2 desc","id":"e997faba-3421-458e-b269-f8a26a5caa25","name":"project2","ns_id":"project2","updated_at":"2024-06-18T00:29:06.670758Z"},{"created_at":"2024-06-18T00:29:13.823792Z","description":"project3 desc","id":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","name":"project3","ns_id":"project3","updated_at":"2024-06-18T00:29:13.823792Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:29:06.670758Z","type":"string"},"description":{"example":"project2 desc","type":"string"},"id":{"example":"e997faba-3421-458e-b269-f8a26a5caa25","type":"string"},"name":{"example":"project2","type":"string"},"ns_id":{"example":"project2","type":"string"},"updated_at":{"example":"2024-06-18T00:29:06.670758Z","type":"string"}},"type":"object"},"type":"array"},"workspace":{"properties":{"created_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"},"description":{"example":"workspace2 desc","type":"string"},"id":{"example":"8b2df1f9-b937-4861-b5ce-855a41c346bc","type":"string"},"name":{"example":"workspace2","type":"string"},"updated_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"}},"type":"object"}},"type":"object"},"type":"array"}}},"tags":["WorkspaceProjectMapping"],"description":"workspace - projects mapping workspace 기준 모든 목록 조회","operationId":"getwpmappinglistorderbyworkspace","summary":"GetWPmappingListOrderbyWorkspace"},"post":{"consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"projectIds":{"example":["e997faba-3421-458e-b269-f8a26a5caa25","1e88f4ea-d052-4314-80a4-9ac3f6691feb"],"items":{"example":"e997faba-3421-458e-b269-f8a26a5caa25","type":"string"},"type":"array"},"workspaceId":{"example":"0df98936-dda3-4df9-8ac4-09a047ec97e0","type":"string"}},"type":"object"}}],"responses":{"200":{"description":"CreateWPmapping","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"projects":{"example":[{"created_at":"2024-06-18T00:29:06.670758Z","description":"project2 desc","id":"e997faba-3421-458e-b269-f8a26a5caa25","name":"project2","ns_id":"project2","updated_at":"2024-06-18T00:29:06.670758Z"},{"created_at":"2024-06-18T00:29:13.823792Z","description":"project3 desc","id":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","name":"project3","ns_id":"project3","updated_at":"2024-06-18T00:29:13.823792Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:29:06.670758Z","type":"string"},"description":{"example":"project2 desc","type":"string"},"id":{"example":"e997faba-3421-458e-b269-f8a26a5caa25","type":"string"},"name":{"example":"project2","type":"string"},"ns_id":{"example":"project2","type":"string"},"updated_at":{"example":"2024-06-18T00:29:06.670758Z","type":"string"}},"type":"object"},"type":"array"},"workspace":{"properties":{"created_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"},"description":{"example":"workspace2 desc","type":"string"},"id":{"example":"8b2df1f9-b937-4861-b5ce-855a41c346bc","type":"string"},"name":{"example":"workspace2","type":"string"},"updated_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"}},"type":"object"}},"type":"object"}}},"tags":["WorkspaceProjectMapping"],"description":"workspace - projects mapping 생성","operationId":"createwpmapping","summary":"CreateWPmapping"},"put":{"consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"projectIds":{"example":["e997faba-3421-458e-b269-f8a26a5caa25"],"items":{"example":"e997faba-3421-458e-b269-f8a26a5caa25","type":"string"},"type":"array"},"workspaceId":{"example":"0df98936-dda3-4df9-8ac4-09a047ec97e0","type":"string"}},"type":"object"}}],"responses":{"200":{"description":"UpdateWPmappings","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"projects":{"example":[{"created_at":"2024-06-18T00:29:06.670758Z","description":"project2 desc","id":"e997faba-3421-458e-b269-f8a26a5caa25","name":"project2","ns_id":"project2","updated_at":"2024-06-18T00:29:06.670758Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:29:06.670758Z","type":"string"},"description":{"example":"project2 desc","type":"string"},"id":{"example":"e997faba-3421-458e-b269-f8a26a5caa25","type":"string"},"name":{"example":"project2","type":"string"},"ns_id":{"example":"project2","type":"string"},"updated_at":{"example":"2024-06-18T00:29:06.670758Z","type":"string"}},"type":"object"},"type":"array"},"workspace":{"properties":{"created_at":{"example":"2024-06-18T00:10:25.546809Z","type":"string"},"description":{"example":"workspace3 desc","type":"string"},"id":{"example":"0df98936-dda3-4df9-8ac4-09a047ec97e0","type":"string"},"name":{"example":"workspace3","type":"string"},"updated_at":{"example":"2024-06-18T00:10:25.546809Z","type":"string"}},"type":"object"}},"type":"object"}}},"tags":["WorkspaceProjectMapping"],"description":"workspace - projects mapping 수정\n\n새로 입력되는 projects 와 기존 projects 를 비교하여, 없는 project 는 삭제하고, 신규 projects 는 새로 mapping 한다.","operationId":"updatewpmappings","summary":"UpdateWPmappings"}},"/api/wsprj/workspace/id/{workspaceId}":{"parameters":[{"in":"path","name":"workspaceId","required":true,"type":"string"}],"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetWPmappingListByWorkspaceId","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"projects":{"example":[{"created_at":"2024-06-18T00:29:06.670758Z","description":"project2 desc","id":"e997faba-3421-458e-b269-f8a26a5caa25","name":"project2","ns_id":"project2","updated_at":"2024-06-18T00:29:06.670758Z"},{"created_at":"2024-06-18T00:28:57.094105Z","description":"New desc","id":"1e88f4ea-d052-4314-80a4-9ac3f6691feb","name":"project1","ns_id":"project1","updated_at":"2024-06-18T00:32:12.410947Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:29:06.670758Z","type":"string"},"description":{"example":"project2 desc","type":"string"},"id":{"example":"e997faba-3421-458e-b269-f8a26a5caa25","type":"string"},"name":{"example":"project2","type":"string"},"ns_id":{"example":"project2","type":"string"},"updated_at":{"example":"2024-06-18T00:29:06.670758Z","type":"string"}},"type":"object"},"type":"array"},"workspace":{"properties":{"created_at":{"example":"2024-06-18T00:10:25.546809Z","type":"string"},"description":{"example":"workspace3 desc","type":"string"},"id":{"example":"0df98936-dda3-4df9-8ac4-09a047ec97e0","type":"string"},"name":{"example":"workspace3","type":"string"},"updated_at":{"example":"2024-06-18T00:10:25.546809Z","type":"string"}},"type":"object"}},"type":"object"}}},"tags":["WorkspaceProjectMapping"],"description":"workspace - projects mapping workspace 기준 단건 목록 조회","operationId":"getwpmappinglistbyworkspaceid","summary":"GetWPmappingListByWorkspaceId"}},"/api/wsprj/workspace/id/{workspaceId}/project/id/{projectId}":{"parameters":[{"in":"path","name":"workspaceId","required":true,"type":"string"},{"in":"path","name":"projectId","required":true,"type":"string"}],"delete":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"DeleteWorkspaceProjectMappingById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"message":{"example":"done","type":"string"}},"type":"object"}}},"tags":["WorkspaceProjectMapping"],"description":"workspace - projects mapping 단건 삭제","operationId":"deleteworkspaceprojectmappingbyid","summary":"DeleteWorkspaceProjectMappingById"}},"/api/wsuserrole":{"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetWorkspaceUserRoleMappingListOrderbyWorkspace","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"userinfo":[{"role":{"created_at":"2024-06-18T00:34:26.173037Z","description":"admin Role","id":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","name":"admin","updated_at":"2024-06-18T00:34:26.173037Z"},"userid":"mcpadmin"},{"role":{"created_at":"2024-06-18T00:34:45.290009Z","description":"viewer Role","id":"6c4fa775-927c-40e7-b1e5-e3716eccecd0","name":"viewer","updated_at":"2024-06-18T00:34:45.290009Z"},"userid":"mcpaviewer"}],"workspace":{"created_at":"2024-06-18T00:10:16.192337Z","description":"workspace2 desc","id":"8b2df1f9-b937-4861-b5ce-855a41c346bc","name":"workspace2","updated_at":"2024-06-18T00:10:16.192337Z"}},{"userinfo":[{"role":{"created_at":"2024-06-18T00:34:45.290009Z","description":"viewer Role","id":"6c4fa775-927c-40e7-b1e5-e3716eccecd0","name":"viewer","updated_at":"2024-06-18T00:34:45.290009Z"},"userid":"mcpaviewer"}],"workspace":{"created_at":"2024-06-18T00:10:25.546809Z","description":"workspace3 desc","id":"0df98936-dda3-4df9-8ac4-09a047ec97e0","name":"workspace3","updated_at":"2024-06-18T00:10:25.546809Z"}}],"items":{"properties":{"userinfo":{"example":[{"role":{"created_at":"2024-06-18T00:34:26.173037Z","description":"admin Role","id":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","name":"admin","updated_at":"2024-06-18T00:34:26.173037Z"},"userid":"mcpadmin"},{"role":{"created_at":"2024-06-18T00:34:45.290009Z","description":"viewer Role","id":"6c4fa775-927c-40e7-b1e5-e3716eccecd0","name":"viewer","updated_at":"2024-06-18T00:34:45.290009Z"},"userid":"mcpaviewer"}],"items":{"properties":{"role":{"properties":{"created_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"},"description":{"example":"admin Role","type":"string"},"id":{"example":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","type":"string"},"name":{"example":"admin","type":"string"},"updated_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"}},"type":"object"},"userid":{"example":"mcpadmin","type":"string"}},"type":"object"},"type":"array"},"workspace":{"properties":{"created_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"},"description":{"example":"workspace2 desc","type":"string"},"id":{"example":"8b2df1f9-b937-4861-b5ce-855a41c346bc","type":"string"},"name":{"example":"workspace2","type":"string"},"updated_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"}},"type":"object"}},"type":"object"},"type":"array"}}},"tags":["WorkspaceUserRoleMapping"],"description":"workspace - user - role mapping 목록 workspace 기준 전체 조회","operationId":"getworkspaceuserrolemappinglistorderbyworkspace","summary":"GetWorkspaceUserRoleMappingListOrderbyWorkspace"},"post":{"consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"body","schema":{"properties":{"roleId":{"example":"79638320-6949-45f1-9273-aec9919f33f4","type":"string"},"userId":{"example":"testuser","type":"string"},"workspaceId":{"example":"ea56aaff-ccfa-4fe2-b5cd-7a4ad21ef3e1","type":"string"}},"type":"object"}}],"responses":{"200":{"description":"CreateWorkspaceUserRoleMappingByName","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T01:18:49.141123Z","type":"string"},"id":{"example":"357ddd0e-8d00-4225-9b9b-626b8d3962fb","type":"string"},"role_id":{"example":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","type":"string"},"updated_at":{"example":"2024-06-18T01:18:49.141123Z","type":"string"},"user_id":{"example":"mcpadmin","type":"string"},"workspace_id":{"example":"8b2df1f9-b937-4861-b5ce-855a41c346bc","type":"string"}},"type":"object"}}},"tags":["WorkspaceUserRoleMapping"],"description":"workspace - user - role mapping 생성","operationId":"createworkspaceuserrolemappingbyname","summary":"CreateWorkspaceUserRoleMappingByName"}},"/api/wsuserrole/user/id/{userId}":{"parameters":[{"in":"path","name":"userId","required":true,"type":"string"}],"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetWorkspaceUserRoleMappingListByUserId","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"example":[{"role":{"created_at":"2024-06-18T00:34:26.173037Z","description":"admin Role","id":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","name":"admin","updated_at":"2024-06-18T00:34:26.173037Z"},"workspaceProject":{"projects":[{"created_at":"2024-06-18T00:29:13.823792Z","description":"project3 desc","id":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","name":"project3","ns_id":"project3","updated_at":"2024-06-18T00:29:13.823792Z"}],"workspace":{"created_at":"2024-06-18T00:10:16.192337Z","description":"workspace2 desc","id":"8b2df1f9-b937-4861-b5ce-855a41c346bc","name":"workspace2","updated_at":"2024-06-18T00:10:16.192337Z"}}}],"items":{"properties":{"role":{"properties":{"created_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"},"description":{"example":"admin Role","type":"string"},"id":{"example":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","type":"string"},"name":{"example":"admin","type":"string"},"updated_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"}},"type":"object"},"workspaceProject":{"properties":{"projects":{"example":[{"created_at":"2024-06-18T00:29:13.823792Z","description":"project3 desc","id":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","name":"project3","ns_id":"project3","updated_at":"2024-06-18T00:29:13.823792Z"}],"items":{"properties":{"created_at":{"example":"2024-06-18T00:29:13.823792Z","type":"string"},"description":{"example":"project3 desc","type":"string"},"id":{"example":"4c9a76c4-9f0d-491b-81f1-7a27a4141d2e","type":"string"},"name":{"example":"project3","type":"string"},"ns_id":{"example":"project3","type":"string"},"updated_at":{"example":"2024-06-18T00:29:13.823792Z","type":"string"}},"type":"object"},"type":"array"},"workspace":{"properties":{"created_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"},"description":{"example":"workspace2 desc","type":"string"},"id":{"example":"8b2df1f9-b937-4861-b5ce-855a41c346bc","type":"string"},"name":{"example":"workspace2","type":"string"},"updated_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":"array"}}},"tags":["WorkspaceUserRoleMapping"],"description":"workspace - user - role mapping 목록 user 기준 조회","operationId":"getworkspaceuserrolemappinglistbyuserid","summary":"GetWorkspaceUserRoleMappingListByUserId"}},"/api/wsuserrole/workspace/id/{workspaceId}":{"parameters":[{"in":"path","name":"workspaceId","required":true,"type":"string"}],"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetWorkspaceUserRoleMappingListByWorkspaceId","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"userinfo":{"example":[{"role":{"created_at":"2024-06-18T00:34:26.173037Z","description":"admin Role","id":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","name":"admin","updated_at":"2024-06-18T00:34:26.173037Z"},"userid":"mcpadmin"},{"role":{"created_at":"2024-06-18T00:34:45.290009Z","description":"viewer Role","id":"6c4fa775-927c-40e7-b1e5-e3716eccecd0","name":"viewer","updated_at":"2024-06-18T00:34:45.290009Z"},"userid":"mcpaviewer"}],"items":{"properties":{"role":{"properties":{"created_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"},"description":{"example":"admin Role","type":"string"},"id":{"example":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","type":"string"},"name":{"example":"admin","type":"string"},"updated_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"}},"type":"object"},"userid":{"example":"mcpadmin","type":"string"}},"type":"object"},"type":"array"},"workspace":{"properties":{"created_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"},"description":{"example":"workspace2 desc","type":"string"},"id":{"example":"8b2df1f9-b937-4861-b5ce-855a41c346bc","type":"string"},"name":{"example":"workspace2","type":"string"},"updated_at":{"example":"2024-06-18T00:10:16.192337Z","type":"string"}},"type":"object"}},"type":"object"}}},"tags":["WorkspaceUserRoleMapping"],"description":"workspace - user - role mapping 목록 workspace 기준 조회","operationId":"getworkspaceuserrolemappinglistbyworkspaceid","summary":"GetWorkspaceUserRoleMappingListByWorkspaceId"}},"/api/wsuserrole/workspace/id/{workspaceId}/user/id/{userId}":{"parameters":[{"in":"path","name":"workspaceId","required":true,"type":"string"},{"in":"path","name":"userId","required":true,"type":"string"}],"delete":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"DeleteWorkspaceUserRoleMapping","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"message":{"example":"done","type":"string"}},"type":"object"}}},"tags":["WorkspaceUserRoleMapping"],"description":"workspace - user - role mapping 목록 workspace 와 user 로 mapping 삭제","operationId":"deleteworkspaceuserrolemapping","summary":"DeleteWorkspaceUserRoleMapping"},"get":{"produces":["application/json"],"parameters":[],"responses":{"200":{"description":"GetWorkspaceUserRoleMappingById","headers":{"Content-Length":{"type":"string"},"Date":{"type":"string"},"Vary":{"type":"string"}},"schema":{"properties":{"created_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"},"description":{"example":"admin Role","type":"string"},"id":{"example":"12d22149-ca2f-4e84-9f7e-7cd540bb0c65","type":"string"},"name":{"example":"admin","type":"string"},"updated_at":{"example":"2024-06-18T00:34:26.173037Z","type":"string"}},"type":"object"}}},"tags":["WorkspaceUserRoleMapping"],"description":"workspace - user - role mapping 목록 workspace 와 user 로 role 조회","operationId":"getworkspaceuserrolemappingbyid","summary":"GetWorkspaceUserRoleMappingById"}}},"tags":[{"description":"동작상태 확인","name":"Alive"},{"description":"토큰 관리","name":"Auth"},{"name":"User"},{"name":"Role"},{"name":"Resource"},{"name":"Permission"},{"description":"\\[Platform Admin\\] 워크스페이스 관리","name":"Workspace"},{"description":"\\[Platform Admin\\] 워크스페이스 관리 - mc-infra-manage 필수","name":"Project"},{"description":"워크스페이스 프로젝트 Mapping 관리","name":"WorkspaceProjectMapping"},{"description":"워크스페이스 User Role Mapping 관리","name":"WorkspaceUserRoleMapping"},{"name":"Tool"},{"description":"CSP sts token 요청","name":"[PoC] STS"}]} +{ + "swagger": "2.0", + "info": { + "contact": {}, + "description": "권한 및 접근제어와 워크스페이스 관리 프레임워크\n\n---\n\nThe Multi-Cloud Authorization and Access Control Framework provides platform account/role management, integrated management of cloud account/access control information, and workspace management functionalities. It offers features compatible with security policy determination, establishment, and enforcement for existing multi-cloud services. Additionally, it provides the capability to establish and manage independent security policies within the framework.\n\nIt defines an access control reference model for multi-cloud, distinguishing between user access control and service provider access control. This model adopts a prominent Role-Based Access Control (RBAC) approach and integrates it with existing policy management solutions for application and utilization.", + "title": "mc-iam-manager", + "version": "1.0.0" + }, + "host": "localhost:5000", + "basePath": "/", + "schemes": [ + "https" + ], + "paths": { + "/alive": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "success", + "headers": { + "Connection": { + "type": "string" + }, + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Server": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "ststus": { + "example": "ok", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Alive" + ], + "description": "mc-iam-manager가 정상적으로 작동중인지 단순 확인합니다.", + "operationId": "alive", + "summary": "Alive" + } + }, + "/api/auth/certs": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetCerts Succsess", + "headers": { + "Date": { + "type": "string" + }, + "Transfer-Encoding": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "keys": { + "example": [ + { + "alg": "RSA-OAEP", + "e": "AQAB", + "kid": "xxxxxxx", + "kty": "RSA", + "n": "xxxxxxx", + "use": "enc", + "x5c": [ + "xxxxxxx" + ], + "x5t": "xxxxxxx", + "x5t#S256": "xxxxxxx" + }, + { + "alg": "RS256", + "e": "AQAB", + "kid": "xxxxxxx", + "kty": "RSA", + "n": "xxxxxxx", + "use": "sig", + "x5c": [ + "xxxxxxx" + ], + "x5t": "xxxxxxx", + "x5t#S256": "xxxxxxx" + } + ], + "items": { + "properties": { + "alg": { + "example": "RSA-OAEP", + "type": "string" + }, + "e": { + "example": "AQAB", + "type": "string" + }, + "kid": { + "example": "xxxxxxx", + "type": "string" + }, + "kty": { + "example": "RSA", + "type": "string" + }, + "n": { + "example": "xxxxxxx", + "type": "string" + }, + "use": { + "example": "enc", + "type": "string" + }, + "x5c": { + "example": [ + "xxxxxxx" + ], + "items": { + "example": "xxxxxxx", + "type": "string" + }, + "type": "array" + }, + "x5t": { + "example": "xxxxxxx", + "type": "string" + }, + "x5t#S256": { + "example": "xxxxxxx", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Auth" + ], + "description": "유저 토큰의 사용가능 유무", + "operationId": "getcerts", + "summary": "GetCerts" + } + }, + "/api/auth/login": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "id": { + "example": "userid", + "type": "string" + }, + "password": { + "example": "userpw", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "Login Success", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "access_token": { + "example": "xxxxx", + "type": "string" + }, + "expires_in": { + "example": 300, + "type": "number" + }, + "not-before-policy": { + "example": 9999999999, + "type": "number" + }, + "refresh_expires_in": { + "example": 1800, + "type": "number" + }, + "refresh_token": { + "example": "xxxxx", + "type": "string" + }, + "scope": { + "example": "xxxxx", + "type": "string" + }, + "session_state": { + "example": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "type": "string" + }, + "token_type": { + "example": "Bearer", + "type": "string" + } + }, + "type": "object" + } + }, + "503": { + "description": "Login Fail", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "code": { + "example": "401 Unauthorized", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Auth" + ], + "description": "ID/Password를 받아 JWT 세션 토큰을 반환", + "operationId": "login", + "summary": "Login" + } + }, + "/api/auth/login/refresh": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "refresh_token": { + "example": "****************************", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "Login Success", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "access_token": { + "example": "xxxxx", + "type": "string" + }, + "expires_in": { + "example": 300, + "type": "number" + }, + "not-before-policy": { + "example": 9999999999, + "type": "number" + }, + "refresh_expires_in": { + "example": 1800, + "type": "number" + }, + "refresh_token": { + "example": "xxxxx", + "type": "string" + }, + "scope": { + "example": "xxxxx", + "type": "string" + }, + "session_state": { + "example": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "type": "string" + }, + "token_type": { + "example": "Bearer", + "type": "string" + } + }, + "type": "object" + } + }, + "503": { + "description": "Login Fail", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "code": { + "example": "401 Unauthorized", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Auth" + ], + "description": "refresh_token과 기존 JWT를 받아, 새로운 JWT 토큰 발급", + "operationId": "loginrefresh", + "summary": "LoginRefresh" + } + }, + "/api/auth/logout": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "refresh_token": { + "example": "****************************", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "204": { + "description": "Logout Success", + "headers": { + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + } + }, + "503": { + "description": "Logout Fail", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "code": { + "example": "400 Bad Request", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Auth" + ], + "description": "AccessToken및 RefreshToken을 받아 해당 토큰 파기", + "operationId": "logout", + "summary": "Logout" + } + }, + "/api/auth/userinfo": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetUserinfo Success", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "sub": { + "example": "xxxx-xxxx-xxxx-xxxx-xxxx", + "type": "string" + } + }, + "type": "object" + } + }, + "401": { + "description": "GetUserinfo Fail", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "code": { + "example": "401 Unauthorized", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Auth" + ], + "description": "유저 정보 조회", + "operationId": "getuserinfo", + "summary": "GetUserinfo" + } + }, + "/api/auth/validate": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetUserinfo Success", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "sub": { + "example": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "type": "string" + } + }, + "type": "object" + } + }, + "503": { + "description": "GetUserinfo Fail", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "code": { + "example": "401 Unauthorized", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Auth" + ], + "description": "유저 토큰의 사용가능 유무", + "operationId": "getusevalidate", + "summary": "GetUseValidate" + } + }, + "/api/permission": { + "get": { + "parameters": [ + { + "in": "query", + "name": "name", + "type": "string" + }, + { + "in": "query", + "name": "resource", + "type": "string" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Permission" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "getpermissions", + "summary": "GetPermissions" + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "desc": { + "example": "myPermissionTest", + "type": "string" + }, + "name": { + "example": "myPermissionTest", + "type": "string" + }, + "policies": { + "example": [ + "adminPolicy" + ], + "items": { + "example": "adminPolicy", + "type": "string" + }, + "type": "array" + }, + "resources": { + "example": [ + "testres2:/test/res2" + ], + "items": { + "example": "testres2:/test/res2", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Permission" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "createpermission", + "summary": "CreatePermission" + } + }, + "/api/permission/id/{permissionId}": { + "parameters": [ + { + "in": "path", + "name": "permissionId", + "required": true, + "type": "string" + } + ], + "delete": { + "parameters": [ + { + "in": "query", + "name": "uri", + "type": "string" + }, + { + "in": "query", + "name": "operationId", + "type": "string" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Permission" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "deletepermission", + "summary": "DeletePermission" + }, + "get": { + "parameters": [ + { + "in": "query", + "name": "name", + "type": "string" + }, + { + "in": "query", + "name": "resource", + "type": "string" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Permission" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "getpermission", + "summary": "GetPermission" + }, + "put": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "query", + "name": "uri", + "type": "string" + }, + { + "in": "query", + "name": "operationId", + "type": "string" + }, + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "desc": { + "example": "myPermissionTest new desc", + "type": "string" + }, + "name": { + "example": "myPermissionTest", + "type": "string" + }, + "policies": { + "example": [ + "adminPolicy" + ], + "items": { + "example": "adminPolicy", + "type": "string" + }, + "type": "array" + }, + "resources": { + "example": [ + "testres2:/test/res2" + ], + "items": { + "example": "testres2:/test/res2", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Permission" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "updatepermission", + "summary": "UpdatePermission" + } + }, + "/api/poc/sts/securitykey": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "description": "eg) aws,alibaba / aws / alibaba ", + "in": "query", + "name": "providers", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Securitykey Success", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "AccessKeyId": { + "example": "xxxx", + "type": "string" + }, + "Expiration": { + "example": "2024-04-09T00:51:43Z", + "type": "string" + }, + "SecretAccessKey": { + "example": "xxxx", + "type": "string" + }, + "SessionToken": { + "example": "xxxx", + "type": "string" + } + }, + "type": "object" + } + }, + "503": { + "description": "Securitykey CSP err", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "err": { + "example": "provided CSP is not supported", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "[PoC] STS" + ], + "description": "임시보안자격증명 발급요청\n\nPOC 단계.\n\nAWS / Alibaba OIDC 기반 Keyclaok IDP 사용으로 연결 설정 필요", + "operationId": "securitykey", + "summary": "Securitykey" + } + }, + "/api/prj": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetProjectList", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "created_at": "2024-06-18T00:28:57.094105Z", + "description": "project1 desc", + "id": "1e88f4ea-d052-4314-80a4-9ac3f6691feb", + "name": "project1", + "ns_id": "project1", + "updated_at": "2024-06-18T00:28:57.094105Z" + }, + { + "created_at": "2024-06-18T00:29:06.670758Z", + "description": "project2 desc", + "id": "e997faba-3421-458e-b269-f8a26a5caa25", + "name": "project2", + "ns_id": "project2", + "updated_at": "2024-06-18T00:29:06.670758Z" + }, + { + "created_at": "2024-06-18T00:29:13.823792Z", + "description": "project3 desc", + "id": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "name": "project3", + "ns_id": "project3", + "updated_at": "2024-06-18T00:29:13.823792Z" + }, + { + "created_at": "2024-06-18T00:29:21.723148Z", + "description": "project4 desc", + "id": "545be97b-b3bb-4f67-a7de-f18943bd69d5", + "name": "project4", + "ns_id": "project4", + "updated_at": "2024-06-18T00:29:21.723148Z" + }, + { + "created_at": "2024-06-18T00:29:27.134889Z", + "description": "project5 desc", + "id": "34d1d14f-4032-42bd-ae80-ef71e0dfbbb7", + "name": "project5", + "ns_id": "project5", + "updated_at": "2024-06-18T00:29:27.134889Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:28:57.094105Z", + "type": "string" + }, + "description": { + "example": "project1 desc", + "type": "string" + }, + "id": { + "example": "1e88f4ea-d052-4314-80a4-9ac3f6691feb", + "type": "string" + }, + "name": { + "example": "project1", + "type": "string" + }, + "ns_id": { + "example": "project1", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:28:57.094105Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "Project" + ], + "description": "project 목록 조회", + "operationId": "getprojectlist", + "summary": "GetProjectList" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "description": { + "example": "coffeeshop desc", + "type": "string" + }, + "name": { + "example": "coffeeshop", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "CreateProject - project3", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:29:13.823792Z", + "type": "string" + }, + "description": { + "example": "project3 desc", + "type": "string" + }, + "id": { + "example": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "type": "string" + }, + "name": { + "example": "project3", + "type": "string" + }, + "ns_id": { + "example": "project3", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:29:13.823792Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Project" + ], + "description": "project 생성", + "operationId": "createproject", + "summary": "CreateProject" + } + }, + "/api/prj/project/id/{projectId}": { + "parameters": [ + { + "in": "path", + "name": "projectId", + "required": true, + "type": "string" + } + ], + "delete": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "DeleteProjectById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "message": { + "example": "ID(34d1d14f-4032-42bd-ae80-ef71e0dfbbb7) / Name(project5) is delected..", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Project" + ], + "description": "project 삭제", + "operationId": "deleteprojectbyid", + "summary": "DeleteProjectById" + }, + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetProjectById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:28:57.094105Z", + "type": "string" + }, + "description": { + "example": "project1 desc", + "type": "string" + }, + "id": { + "example": "1e88f4ea-d052-4314-80a4-9ac3f6691feb", + "type": "string" + }, + "name": { + "example": "project1", + "type": "string" + }, + "ns_id": { + "example": "project1", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:28:57.094105Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Project" + ], + "description": "project 단건 조회", + "operationId": "getprojectbyid", + "summary": "GetProjectById" + }, + "put": { + "consumes": [ + "text/plain" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "format": "binary", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "UpdateProjectById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:28:57.094105Z", + "type": "string" + }, + "description": { + "example": "New desc", + "type": "string" + }, + "id": { + "example": "1e88f4ea-d052-4314-80a4-9ac3f6691feb", + "type": "string" + }, + "name": { + "example": "project1", + "type": "string" + }, + "ns_id": { + "example": "project1", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:32:12.410947Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Project" + ], + "description": "project 수정", + "operationId": "updateprojectbyid", + "summary": "UpdateProjectById" + } + }, + "/api/prj/project/{projectName}": { + "parameters": [ + { + "in": "path", + "name": "projectName", + "required": true, + "type": "string" + } + ], + "get": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "description": "contain or emty", + "in": "query", + "name": "option", + "type": "string" + } + ], + "responses": { + "200": { + "description": "SearchProjectsByName - withOption", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "created_at": "2024-06-18T00:28:57.094105Z", + "description": "project1 desc", + "id": "1e88f4ea-d052-4314-80a4-9ac3f6691feb", + "name": "project1", + "ns_id": "project1", + "updated_at": "2024-06-18T00:28:57.094105Z" + }, + { + "created_at": "2024-06-18T00:29:06.670758Z", + "description": "project2 desc", + "id": "e997faba-3421-458e-b269-f8a26a5caa25", + "name": "project2", + "ns_id": "project2", + "updated_at": "2024-06-18T00:29:06.670758Z" + }, + { + "created_at": "2024-06-18T00:29:13.823792Z", + "description": "project3 desc", + "id": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "name": "project3", + "ns_id": "project3", + "updated_at": "2024-06-18T00:29:13.823792Z" + }, + { + "created_at": "2024-06-18T00:29:21.723148Z", + "description": "project4 desc", + "id": "545be97b-b3bb-4f67-a7de-f18943bd69d5", + "name": "project4", + "ns_id": "project4", + "updated_at": "2024-06-18T00:29:21.723148Z" + }, + { + "created_at": "2024-06-18T00:29:27.134889Z", + "description": "project5 desc", + "id": "34d1d14f-4032-42bd-ae80-ef71e0dfbbb7", + "name": "project5", + "ns_id": "project5", + "updated_at": "2024-06-18T00:29:27.134889Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:28:57.094105Z", + "type": "string" + }, + "description": { + "example": "project1 desc", + "type": "string" + }, + "id": { + "example": "1e88f4ea-d052-4314-80a4-9ac3f6691feb", + "type": "string" + }, + "name": { + "example": "project1", + "type": "string" + }, + "ns_id": { + "example": "project1", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:28:57.094105Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "Project" + ], + "description": "project 목록 검색", + "operationId": "searchprojectsbyname", + "summary": "SearchProjectsByName" + } + }, + "/api/resource": { + "get": { + "parameters": [ + { + "in": "query", + "name": "uri", + "type": "string" + }, + { + "in": "query", + "name": "operationId", + "type": "string" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Resource" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "getresources", + "summary": "GetResources" + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "query", + "name": "uri", + "type": "string" + }, + { + "in": "query", + "name": "operationId", + "type": "string" + }, + { + "in": "body", + "name": "body", + "schema": { + "example": [ + { + "framework": "testFw", + "method": "GET", + "operationId": "testOperation", + "uri": "/test/operation" + } + ], + "items": { + "properties": { + "framework": { + "example": "testFw", + "type": "string" + }, + "method": { + "example": "GET", + "type": "string" + }, + "operationId": { + "example": "testOperation", + "type": "string" + }, + "uri": { + "example": "/test/operation", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Resource" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "createresource", + "summary": "CreateResource" + } + }, + "/api/resource/file/framework/{framework}": { + "parameters": [ + { + "in": "path", + "name": "framework", + "required": true, + "type": "string" + } + ], + "post": { + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "format": "binary", + "in": "formData", + "name": "swagger", + "type": "string" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Resource" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "createresourcesbyswagger", + "summary": "CreateResourcesBySwagger" + } + }, + "/api/resource/id/{id}": { + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "delete": { + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Resource" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "deleteresource", + "summary": "DeleteResource" + }, + "put": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "name": { + "example": "testres3:/test/res3", + "type": "string" + }, + "uris": { + "example": [ + "/test/res3" + ], + "items": { + "example": "/test/res3", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Resource" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "updateresource", + "summary": "UpdateResource" + } + }, + "/api/role": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetRoleList", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "created_at": "2024-06-18T00:34:26.173037Z", + "description": "admin Role", + "id": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "name": "admin", + "updated_at": "2024-06-18T00:34:26.173037Z" + }, + { + "created_at": "2024-06-18T00:34:37.089727Z", + "description": "operator Role", + "id": "fb570691-1b07-4d05-90fb-492bdbbfdd52", + "name": "operator", + "updated_at": "2024-06-18T00:34:37.089727Z" + }, + { + "created_at": "2024-06-18T00:34:45.290009Z", + "description": "viewer Role", + "id": "6c4fa775-927c-40e7-b1e5-e3716eccecd0", + "name": "viewer", + "updated_at": "2024-06-18T00:34:45.290009Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + }, + "description": { + "example": "admin Role", + "type": "string" + }, + "id": { + "example": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "type": "string" + }, + "name": { + "example": "admin", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "Role" + ], + "description": "role 전체 목록 조회", + "operationId": "getrolelist", + "summary": "GetRoleList" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "description": { + "example": "admin Role", + "type": "string" + }, + "name": { + "example": "admin", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "CreateRole - viewer", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:45.290009Z", + "type": "string" + }, + "description": { + "example": "viewer Role", + "type": "string" + }, + "id": { + "example": "6c4fa775-927c-40e7-b1e5-e3716eccecd0", + "type": "string" + }, + "name": { + "example": "viewer", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:45.290009Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Role" + ], + "description": "role 생성", + "operationId": "createrole", + "summary": "CreateRole" + } + }, + "/api/role/id/{roleId}": { + "parameters": [ + { + "in": "path", + "name": "roleId", + "required": true, + "type": "string" + } + ], + "delete": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "DeleteRoleById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "message": { + "example": "ID(fb570691-1b07-4d05-90fb-492bdbbfdd52) / Name(operator) is delected..", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Role" + ], + "description": "role 수정", + "operationId": "deleterolebyid", + "summary": "DeleteRoleById" + }, + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetRoleById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:37.089727Z", + "type": "string" + }, + "description": { + "example": "operator Role", + "type": "string" + }, + "id": { + "example": "fb570691-1b07-4d05-90fb-492bdbbfdd52", + "type": "string" + }, + "name": { + "example": "operator", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:37.089727Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Role" + ], + "description": "role 단건 조회", + "operationId": "getrolebyid", + "summary": "GetRoleById" + }, + "put": { + "consumes": [ + "text/plain" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "format": "binary", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "UpdateRoleById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:37.089727Z", + "type": "string" + }, + "description": { + "example": "New Role desc", + "type": "string" + }, + "id": { + "example": "fb570691-1b07-4d05-90fb-492bdbbfdd52", + "type": "string" + }, + "name": { + "example": "operator", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:37:58.00628Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Role" + ], + "description": "role 수정", + "operationId": "updaterolebyid", + "summary": "UpdateRoleById" + } + }, + "/api/role/name/{roleName}": { + "parameters": [ + { + "in": "path", + "name": "roleName", + "required": true, + "type": "string" + } + ], + "get": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "description": "contain or emty", + "in": "query", + "name": "option", + "type": "string" + } + ], + "responses": { + "200": { + "description": "SearchProjectsByName - withOption", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "created_at": "2024-06-18T00:34:37.089727Z", + "description": "operator Role", + "id": "fb570691-1b07-4d05-90fb-492bdbbfdd52", + "name": "operator", + "updated_at": "2024-06-18T00:34:37.089727Z" + }, + { + "created_at": "2024-06-18T00:34:45.290009Z", + "description": "viewer Role", + "id": "6c4fa775-927c-40e7-b1e5-e3716eccecd0", + "name": "viewer", + "updated_at": "2024-06-18T00:34:45.290009Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:37.089727Z", + "type": "string" + }, + "description": { + "example": "operator Role", + "type": "string" + }, + "id": { + "example": "fb570691-1b07-4d05-90fb-492bdbbfdd52", + "type": "string" + }, + "name": { + "example": "operator", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:37.089727Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "Role" + ], + "description": "role 검색", + "operationId": "searchrolesbyname", + "summary": "SearchRolesByName" + } + }, + "/api/role/policyid/{policyid}": { + "parameters": [ + { + "in": "path", + "name": "policyid", + "required": true, + "type": "string" + } + ], + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetRoleById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:37.089727Z", + "type": "string" + }, + "description": { + "example": "operator Role", + "type": "string" + }, + "id": { + "example": "fb570691-1b07-4d05-90fb-492bdbbfdd52", + "type": "string" + }, + "name": { + "example": "operator", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:37.089727Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Role" + ], + "description": "role 단건 조회", + "operationId": "getrolebypolicyidNotuse", + "summary": "GetRoleByPolicyId#notuse" + } + }, + "/api/ticket": { + "get": { + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Ticket" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "ticketvalidate", + "summary": "TicketValidate" + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "uri": { + "example": "/test/uri", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Ticket" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "getticket", + "summary": "GetTicket" + } + }, + "/api/tokentest": { + "get": { + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Tool" + ], + "description": "토큰의 유효성을 확인합니다.", + "operationId": "tokentest", + "summary": "tokenTest" + } + }, + "/api/tokentest/admin": { + "get": { + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Tool" + ], + "description": "토큰의 유효성과 역할에 Admin이 존재하는지 확인합니다.", + "operationId": "tokentestadmin", + "summary": "tokenTestAdmin" + } + }, + "/api/tokentest/operator": { + "get": { + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Tool" + ], + "description": "토큰의 유효성과 역할에 Admin, Operator가 존재하는지 확인합니다.", + "operationId": "tokentestoperator", + "summary": "tokenTestOperator" + } + }, + "/api/tokentest/viewer": { + "get": { + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Tool" + ], + "description": "토큰의 유효성과 역할에 Admin, Operator, Viewer가 존재하는지 확인합니다.", + "operationId": "tokentestviewer", + "summary": "tokenTestViewer" + } + }, + "/api/tool/mcinfra/sync": { + "get": { + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Tool" + ], + "description": "연결된 TB(mcinframanager)의 NS 리스트를 Project List 로 등록. \n \n기존 등록된 project 와 중복이 발생하면 오류 발생. 새로운 환경에서 첫 회 실행하는 것을 추천.", + "operationId": "syncprojectlistwithmcinfra", + "summary": "SyncProjectListWithMcInfra" + } + }, + "/api/user": { + "get": { + "parameters": [ + { + "in": "query", + "name": "userid", + "type": "string" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "User" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "getusers", + "summary": "GetUsers" + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "email": { + "example": "email@mcmpemail.com", + "type": "string" + }, + "firstName": { + "example": "firstName", + "type": "string" + }, + "lastName": { + "example": "lastName", + "type": "string" + }, + "name": { + "example": "testuser", + "type": "string" + }, + "password": { + "example": "testPassword", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "User" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "createuser", + "summary": "Createuser" + }, + "put": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "query", + "name": "userid", + "type": "string" + }, + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "email": { + "example": "email@mcmpemail.com", + "type": "string" + }, + "firstName": { + "example": "firstName", + "type": "string" + }, + "lastName": { + "example": "lastName", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "User" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "updateuser", + "summary": "UpdateUser" + } + }, + "/api/user/id/{userid}": { + "parameters": [ + { + "description": "user uuid", + "in": "path", + "name": "userid", + "required": true, + "type": "string" + } + ], + "delete": { + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "User" + ], + "description": "사용자는 uma_protection Role 을 가져야 한다.", + "operationId": "deleteuser", + "summary": "DeleteUser" + } + }, + "/api/ws": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetWorkspaceList", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "created_at": "2024-06-18T00:10:01.805874Z", + "description": "workspace1 desc", + "id": "3155f763-d30d-457b-9f75-85aff4b59aa0", + "name": "workspace1", + "updated_at": "2024-06-18T00:10:01.805874Z" + }, + { + "created_at": "2024-06-18T00:10:16.192337Z", + "description": "workspace2 desc", + "id": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "name": "workspace2", + "updated_at": "2024-06-18T00:10:16.192337Z" + }, + { + "created_at": "2024-06-18T00:10:25.546809Z", + "description": "workspace3 desc", + "id": "0df98936-dda3-4df9-8ac4-09a047ec97e0", + "name": "workspace3", + "updated_at": "2024-06-18T00:10:25.546809Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:01.805874Z", + "type": "string" + }, + "description": { + "example": "workspace1 desc", + "type": "string" + }, + "id": { + "example": "3155f763-d30d-457b-9f75-85aff4b59aa0", + "type": "string" + }, + "name": { + "example": "workspace1", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:01.805874Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "Workspace" + ], + "description": "workspace 목록 조회", + "operationId": "getworkspacelist", + "summary": "GetWorkspaceList" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "description": { + "example": "workspace1 desc", + "type": "string" + }, + "name": { + "example": "workspace1", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "CreateWorkspace - workspace4", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:23:17.0373Z", + "type": "string" + }, + "description": { + "example": "workspace4 desc", + "type": "string" + }, + "id": { + "example": "fd19e7dc-6f6c-4af2-b157-9bf32dfc66dd", + "type": "string" + }, + "name": { + "example": "workspace4", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:23:17.0373Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Workspace" + ], + "description": "workspace 생성", + "operationId": "createworkspace", + "summary": "CreateWorkspace" + } + }, + "/api/ws/workspace/id/{workspaceId}": { + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "type": "string" + } + ], + "delete": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "DeleteWorkspaceById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "message": { + "example": "ID(fd19e7dc-6f6c-4af2-b157-9bf32dfc66dd) / Name(workspace4) is delected..", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Workspace" + ], + "description": "workspace 삭제", + "operationId": "deleteworkspacebyid", + "summary": "DeleteWorkspaceById" + }, + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetWorkspaceById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:01.805874Z", + "type": "string" + }, + "description": { + "example": "New desc", + "type": "string" + }, + "id": { + "example": "3155f763-d30d-457b-9f75-85aff4b59aa0", + "type": "string" + }, + "name": { + "example": "workspace1", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:14:09.856068Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Workspace" + ], + "description": "workspace 단건 조회", + "operationId": "getworkspacebyid", + "summary": "GetWorkspaceById" + }, + "put": { + "consumes": [ + "text/plain" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "format": "binary", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "GetWorkspaceById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:01.805874Z", + "type": "string" + }, + "description": { + "example": "New desc", + "type": "string" + }, + "id": { + "example": "3155f763-d30d-457b-9f75-85aff4b59aa0", + "type": "string" + }, + "name": { + "example": "workspace1", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:22:59.487352Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Workspace" + ], + "description": "workspace 수정", + "operationId": "updateworkspacebyid", + "summary": "UpdateWorkspaceById" + } + }, + "/api/ws/workspace/{workspaceName}": { + "parameters": [ + { + "in": "path", + "name": "workspaceName", + "required": true, + "type": "string" + } + ], + "get": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "description": "contain or emty", + "in": "query", + "name": "option", + "type": "string" + } + ], + "responses": { + "200": { + "description": "SearchWorkspacesByName - withOption", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "created_at": "2024-06-18T00:10:01.805874Z", + "description": "workspace1 desc", + "id": "3155f763-d30d-457b-9f75-85aff4b59aa0", + "name": "workspace1", + "updated_at": "2024-06-18T00:10:01.805874Z" + }, + { + "created_at": "2024-06-18T00:10:16.192337Z", + "description": "workspace2 desc", + "id": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "name": "workspace2", + "updated_at": "2024-06-18T00:10:16.192337Z" + }, + { + "created_at": "2024-06-18T00:10:25.546809Z", + "description": "workspace3 desc", + "id": "0df98936-dda3-4df9-8ac4-09a047ec97e0", + "name": "workspace3", + "updated_at": "2024-06-18T00:10:25.546809Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:01.805874Z", + "type": "string" + }, + "description": { + "example": "workspace1 desc", + "type": "string" + }, + "id": { + "example": "3155f763-d30d-457b-9f75-85aff4b59aa0", + "type": "string" + }, + "name": { + "example": "workspace1", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:01.805874Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "Workspace" + ], + "description": "workspace 검색", + "operationId": "searchworkspacesbyname", + "summary": "SearchWorkspacesByName" + } + }, + "/api/wsprj": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetWPmappingListOrderbyWorkspace", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "projects": [ + { + "created_at": "2024-06-18T00:29:06.670758Z", + "description": "project2 desc", + "id": "e997faba-3421-458e-b269-f8a26a5caa25", + "name": "project2", + "ns_id": "project2", + "updated_at": "2024-06-18T00:29:06.670758Z" + }, + { + "created_at": "2024-06-18T00:29:13.823792Z", + "description": "project3 desc", + "id": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "name": "project3", + "ns_id": "project3", + "updated_at": "2024-06-18T00:29:13.823792Z" + } + ], + "workspace": { + "created_at": "2024-06-18T00:10:16.192337Z", + "description": "workspace2 desc", + "id": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "name": "workspace2", + "updated_at": "2024-06-18T00:10:16.192337Z" + } + }, + { + "projects": [ + { + "created_at": "2024-06-18T00:29:06.670758Z", + "description": "project2 desc", + "id": "e997faba-3421-458e-b269-f8a26a5caa25", + "name": "project2", + "ns_id": "project2", + "updated_at": "2024-06-18T00:29:06.670758Z" + }, + { + "created_at": "2024-06-18T00:28:57.094105Z", + "description": "New desc", + "id": "1e88f4ea-d052-4314-80a4-9ac3f6691feb", + "name": "project1", + "ns_id": "project1", + "updated_at": "2024-06-18T00:32:12.410947Z" + } + ], + "workspace": { + "created_at": "2024-06-18T00:10:25.546809Z", + "description": "workspace3 desc", + "id": "0df98936-dda3-4df9-8ac4-09a047ec97e0", + "name": "workspace3", + "updated_at": "2024-06-18T00:10:25.546809Z" + } + } + ], + "items": { + "properties": { + "projects": { + "example": [ + { + "created_at": "2024-06-18T00:29:06.670758Z", + "description": "project2 desc", + "id": "e997faba-3421-458e-b269-f8a26a5caa25", + "name": "project2", + "ns_id": "project2", + "updated_at": "2024-06-18T00:29:06.670758Z" + }, + { + "created_at": "2024-06-18T00:29:13.823792Z", + "description": "project3 desc", + "id": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "name": "project3", + "ns_id": "project3", + "updated_at": "2024-06-18T00:29:13.823792Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:29:06.670758Z", + "type": "string" + }, + "description": { + "example": "project2 desc", + "type": "string" + }, + "id": { + "example": "e997faba-3421-458e-b269-f8a26a5caa25", + "type": "string" + }, + "name": { + "example": "project2", + "type": "string" + }, + "ns_id": { + "example": "project2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:29:06.670758Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "workspace": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + }, + "description": { + "example": "workspace2 desc", + "type": "string" + }, + "id": { + "example": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "type": "string" + }, + "name": { + "example": "workspace2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "WorkspaceProjectMapping" + ], + "description": "workspace - projects mapping workspace 기준 모든 목록 조회", + "operationId": "getwpmappinglistorderbyworkspace", + "summary": "GetWPmappingListOrderbyWorkspace" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "projectIds": { + "example": [ + "e997faba-3421-458e-b269-f8a26a5caa25", + "1e88f4ea-d052-4314-80a4-9ac3f6691feb" + ], + "items": { + "example": "e997faba-3421-458e-b269-f8a26a5caa25", + "type": "string" + }, + "type": "array" + }, + "workspaceId": { + "example": "0df98936-dda3-4df9-8ac4-09a047ec97e0", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "CreateWPmapping", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "projects": { + "example": [ + { + "created_at": "2024-06-18T00:29:06.670758Z", + "description": "project2 desc", + "id": "e997faba-3421-458e-b269-f8a26a5caa25", + "name": "project2", + "ns_id": "project2", + "updated_at": "2024-06-18T00:29:06.670758Z" + }, + { + "created_at": "2024-06-18T00:29:13.823792Z", + "description": "project3 desc", + "id": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "name": "project3", + "ns_id": "project3", + "updated_at": "2024-06-18T00:29:13.823792Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:29:06.670758Z", + "type": "string" + }, + "description": { + "example": "project2 desc", + "type": "string" + }, + "id": { + "example": "e997faba-3421-458e-b269-f8a26a5caa25", + "type": "string" + }, + "name": { + "example": "project2", + "type": "string" + }, + "ns_id": { + "example": "project2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:29:06.670758Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "workspace": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + }, + "description": { + "example": "workspace2 desc", + "type": "string" + }, + "id": { + "example": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "type": "string" + }, + "name": { + "example": "workspace2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + } + }, + "tags": [ + "WorkspaceProjectMapping" + ], + "description": "workspace - projects mapping 생성", + "operationId": "createwpmapping", + "summary": "CreateWPmapping" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "projectIds": { + "example": [ + "e997faba-3421-458e-b269-f8a26a5caa25" + ], + "items": { + "example": "e997faba-3421-458e-b269-f8a26a5caa25", + "type": "string" + }, + "type": "array" + }, + "workspaceId": { + "example": "0df98936-dda3-4df9-8ac4-09a047ec97e0", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "UpdateWPmappings", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "projects": { + "example": [ + { + "created_at": "2024-06-18T00:29:06.670758Z", + "description": "project2 desc", + "id": "e997faba-3421-458e-b269-f8a26a5caa25", + "name": "project2", + "ns_id": "project2", + "updated_at": "2024-06-18T00:29:06.670758Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:29:06.670758Z", + "type": "string" + }, + "description": { + "example": "project2 desc", + "type": "string" + }, + "id": { + "example": "e997faba-3421-458e-b269-f8a26a5caa25", + "type": "string" + }, + "name": { + "example": "project2", + "type": "string" + }, + "ns_id": { + "example": "project2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:29:06.670758Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "workspace": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:25.546809Z", + "type": "string" + }, + "description": { + "example": "workspace3 desc", + "type": "string" + }, + "id": { + "example": "0df98936-dda3-4df9-8ac4-09a047ec97e0", + "type": "string" + }, + "name": { + "example": "workspace3", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:25.546809Z", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + } + }, + "tags": [ + "WorkspaceProjectMapping" + ], + "description": "workspace - projects mapping 수정\n\n새로 입력되는 projects 와 기존 projects 를 비교하여, 없는 project 는 삭제하고, 신규 projects 는 새로 mapping 한다.", + "operationId": "updatewpmappings", + "summary": "UpdateWPmappings" + } + }, + "/api/wsprj/workspace/id/{workspaceId}": { + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "type": "string" + } + ], + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetWPmappingListByWorkspaceId", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "projects": { + "example": [ + { + "created_at": "2024-06-18T00:29:06.670758Z", + "description": "project2 desc", + "id": "e997faba-3421-458e-b269-f8a26a5caa25", + "name": "project2", + "ns_id": "project2", + "updated_at": "2024-06-18T00:29:06.670758Z" + }, + { + "created_at": "2024-06-18T00:28:57.094105Z", + "description": "New desc", + "id": "1e88f4ea-d052-4314-80a4-9ac3f6691feb", + "name": "project1", + "ns_id": "project1", + "updated_at": "2024-06-18T00:32:12.410947Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:29:06.670758Z", + "type": "string" + }, + "description": { + "example": "project2 desc", + "type": "string" + }, + "id": { + "example": "e997faba-3421-458e-b269-f8a26a5caa25", + "type": "string" + }, + "name": { + "example": "project2", + "type": "string" + }, + "ns_id": { + "example": "project2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:29:06.670758Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "workspace": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:25.546809Z", + "type": "string" + }, + "description": { + "example": "workspace3 desc", + "type": "string" + }, + "id": { + "example": "0df98936-dda3-4df9-8ac4-09a047ec97e0", + "type": "string" + }, + "name": { + "example": "workspace3", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:25.546809Z", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + } + }, + "tags": [ + "WorkspaceProjectMapping" + ], + "description": "workspace - projects mapping workspace 기준 단건 목록 조회", + "operationId": "getwpmappinglistbyworkspaceid", + "summary": "GetWPmappingListByWorkspaceId" + } + }, + "/api/wsprj/workspace/id/{workspaceId}/project/id/{projectId}": { + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "projectId", + "required": true, + "type": "string" + } + ], + "delete": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "DeleteWorkspaceProjectMappingById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "message": { + "example": "done", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "WorkspaceProjectMapping" + ], + "description": "workspace - projects mapping 단건 삭제", + "operationId": "deleteworkspaceprojectmappingbyid", + "summary": "DeleteWorkspaceProjectMappingById" + } + }, + "/api/wsuserrole": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetWorkspaceUserRoleMappingListOrderbyWorkspace", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "userinfo": [ + { + "role": { + "created_at": "2024-06-18T00:34:26.173037Z", + "description": "admin Role", + "id": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "name": "admin", + "updated_at": "2024-06-18T00:34:26.173037Z" + }, + "userid": "mcpadmin" + }, + { + "role": { + "created_at": "2024-06-18T00:34:45.290009Z", + "description": "viewer Role", + "id": "6c4fa775-927c-40e7-b1e5-e3716eccecd0", + "name": "viewer", + "updated_at": "2024-06-18T00:34:45.290009Z" + }, + "userid": "mcpaviewer" + } + ], + "workspace": { + "created_at": "2024-06-18T00:10:16.192337Z", + "description": "workspace2 desc", + "id": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "name": "workspace2", + "updated_at": "2024-06-18T00:10:16.192337Z" + } + }, + { + "userinfo": [ + { + "role": { + "created_at": "2024-06-18T00:34:45.290009Z", + "description": "viewer Role", + "id": "6c4fa775-927c-40e7-b1e5-e3716eccecd0", + "name": "viewer", + "updated_at": "2024-06-18T00:34:45.290009Z" + }, + "userid": "mcpaviewer" + } + ], + "workspace": { + "created_at": "2024-06-18T00:10:25.546809Z", + "description": "workspace3 desc", + "id": "0df98936-dda3-4df9-8ac4-09a047ec97e0", + "name": "workspace3", + "updated_at": "2024-06-18T00:10:25.546809Z" + } + } + ], + "items": { + "properties": { + "userinfo": { + "example": [ + { + "role": { + "created_at": "2024-06-18T00:34:26.173037Z", + "description": "admin Role", + "id": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "name": "admin", + "updated_at": "2024-06-18T00:34:26.173037Z" + }, + "userid": "mcpadmin" + }, + { + "role": { + "created_at": "2024-06-18T00:34:45.290009Z", + "description": "viewer Role", + "id": "6c4fa775-927c-40e7-b1e5-e3716eccecd0", + "name": "viewer", + "updated_at": "2024-06-18T00:34:45.290009Z" + }, + "userid": "mcpaviewer" + } + ], + "items": { + "properties": { + "role": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + }, + "description": { + "example": "admin Role", + "type": "string" + }, + "id": { + "example": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "type": "string" + }, + "name": { + "example": "admin", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + } + }, + "type": "object" + }, + "userid": { + "example": "mcpadmin", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "workspace": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + }, + "description": { + "example": "workspace2 desc", + "type": "string" + }, + "id": { + "example": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "type": "string" + }, + "name": { + "example": "workspace2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "WorkspaceUserRoleMapping" + ], + "description": "workspace - user - role mapping 목록 workspace 기준 전체 조회", + "operationId": "getworkspaceuserrolemappinglistorderbyworkspace", + "summary": "GetWorkspaceUserRoleMappingListOrderbyWorkspace" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "roleId": { + "example": "79638320-6949-45f1-9273-aec9919f33f4", + "type": "string" + }, + "userId": { + "example": "testuser", + "type": "string" + }, + "workspaceId": { + "example": "ea56aaff-ccfa-4fe2-b5cd-7a4ad21ef3e1", + "type": "string" + } + }, + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "CreateWorkspaceUserRoleMappingByName", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T01:18:49.141123Z", + "type": "string" + }, + "id": { + "example": "357ddd0e-8d00-4225-9b9b-626b8d3962fb", + "type": "string" + }, + "role_id": { + "example": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T01:18:49.141123Z", + "type": "string" + }, + "user_id": { + "example": "mcpadmin", + "type": "string" + }, + "workspace_id": { + "example": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "WorkspaceUserRoleMapping" + ], + "description": "workspace - user - role mapping 생성", + "operationId": "createworkspaceuserrolemappingbyname", + "summary": "CreateWorkspaceUserRoleMappingByName" + } + }, + "/api/wsuserrole/user/id/{userId}": { + "parameters": [ + { + "in": "path", + "name": "userId", + "required": true, + "type": "string" + } + ], + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetWorkspaceUserRoleMappingListByUserId", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "example": [ + { + "role": { + "created_at": "2024-06-18T00:34:26.173037Z", + "description": "admin Role", + "id": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "name": "admin", + "updated_at": "2024-06-18T00:34:26.173037Z" + }, + "workspaceProject": { + "projects": [ + { + "created_at": "2024-06-18T00:29:13.823792Z", + "description": "project3 desc", + "id": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "name": "project3", + "ns_id": "project3", + "updated_at": "2024-06-18T00:29:13.823792Z" + } + ], + "workspace": { + "created_at": "2024-06-18T00:10:16.192337Z", + "description": "workspace2 desc", + "id": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "name": "workspace2", + "updated_at": "2024-06-18T00:10:16.192337Z" + } + } + } + ], + "items": { + "properties": { + "role": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + }, + "description": { + "example": "admin Role", + "type": "string" + }, + "id": { + "example": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "type": "string" + }, + "name": { + "example": "admin", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + } + }, + "type": "object" + }, + "workspaceProject": { + "properties": { + "projects": { + "example": [ + { + "created_at": "2024-06-18T00:29:13.823792Z", + "description": "project3 desc", + "id": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "name": "project3", + "ns_id": "project3", + "updated_at": "2024-06-18T00:29:13.823792Z" + } + ], + "items": { + "properties": { + "created_at": { + "example": "2024-06-18T00:29:13.823792Z", + "type": "string" + }, + "description": { + "example": "project3 desc", + "type": "string" + }, + "id": { + "example": "4c9a76c4-9f0d-491b-81f1-7a27a4141d2e", + "type": "string" + }, + "name": { + "example": "project3", + "type": "string" + }, + "ns_id": { + "example": "project3", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:29:13.823792Z", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "workspace": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + }, + "description": { + "example": "workspace2 desc", + "type": "string" + }, + "id": { + "example": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "type": "string" + }, + "name": { + "example": "workspace2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "tags": [ + "WorkspaceUserRoleMapping" + ], + "description": "workspace - user - role mapping 목록 user 기준 조회", + "operationId": "getworkspaceuserrolemappinglistbyuserid", + "summary": "GetWorkspaceUserRoleMappingListByUserId" + } + }, + "/api/wsuserrole/workspace/id/{workspaceId}": { + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "type": "string" + } + ], + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetWorkspaceUserRoleMappingListByWorkspaceId", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "userinfo": { + "example": [ + { + "role": { + "created_at": "2024-06-18T00:34:26.173037Z", + "description": "admin Role", + "id": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "name": "admin", + "updated_at": "2024-06-18T00:34:26.173037Z" + }, + "userid": "mcpadmin" + }, + { + "role": { + "created_at": "2024-06-18T00:34:45.290009Z", + "description": "viewer Role", + "id": "6c4fa775-927c-40e7-b1e5-e3716eccecd0", + "name": "viewer", + "updated_at": "2024-06-18T00:34:45.290009Z" + }, + "userid": "mcpaviewer" + } + ], + "items": { + "properties": { + "role": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + }, + "description": { + "example": "admin Role", + "type": "string" + }, + "id": { + "example": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "type": "string" + }, + "name": { + "example": "admin", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + } + }, + "type": "object" + }, + "userid": { + "example": "mcpadmin", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "workspace": { + "properties": { + "created_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + }, + "description": { + "example": "workspace2 desc", + "type": "string" + }, + "id": { + "example": "8b2df1f9-b937-4861-b5ce-855a41c346bc", + "type": "string" + }, + "name": { + "example": "workspace2", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:10:16.192337Z", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + } + }, + "tags": [ + "WorkspaceUserRoleMapping" + ], + "description": "workspace - user - role mapping 목록 workspace 기준 조회", + "operationId": "getworkspaceuserrolemappinglistbyworkspaceid", + "summary": "GetWorkspaceUserRoleMappingListByWorkspaceId" + } + }, + "/api/wsuserrole/workspace/id/{workspaceId}/user/id/{userId}": { + "parameters": [ + { + "in": "path", + "name": "workspaceId", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "userId", + "required": true, + "type": "string" + } + ], + "delete": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "DeleteWorkspaceUserRoleMapping", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "message": { + "example": "done", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "WorkspaceUserRoleMapping" + ], + "description": "workspace - user - role mapping 목록 workspace 와 user 로 mapping 삭제", + "operationId": "deleteworkspaceuserrolemapping", + "summary": "DeleteWorkspaceUserRoleMapping" + }, + "get": { + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "GetWorkspaceUserRoleMappingById", + "headers": { + "Content-Length": { + "type": "string" + }, + "Date": { + "type": "string" + }, + "Vary": { + "type": "string" + } + }, + "schema": { + "properties": { + "created_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + }, + "description": { + "example": "admin Role", + "type": "string" + }, + "id": { + "example": "12d22149-ca2f-4e84-9f7e-7cd540bb0c65", + "type": "string" + }, + "name": { + "example": "admin", + "type": "string" + }, + "updated_at": { + "example": "2024-06-18T00:34:26.173037Z", + "type": "string" + } + }, + "type": "object" + } + } + }, + "tags": [ + "WorkspaceUserRoleMapping" + ], + "description": "workspace - user - role mapping 목록 workspace 와 user 로 role 조회", + "operationId": "getworkspaceuserrolemappingbyid", + "summary": "GetWorkspaceUserRoleMappingById" + } + } + }, + "tags": [ + { + "description": "동작상태 확인", + "name": "Alive" + }, + { + "description": "토큰 관리", + "name": "Auth" + }, + { + "name": "Ticket" + }, + { + "name": "User" + }, + { + "name": "Role" + }, + { + "name": "Resource" + }, + { + "name": "Permission" + }, + { + "description": "\\[Platform Admin\\] 워크스페이스 관리", + "name": "Workspace" + }, + { + "description": "\\[Platform Admin\\] 워크스페이스 관리 - mc-infra-manage 필수", + "name": "Project" + }, + { + "description": "워크스페이스 프로젝트 Mapping 관리", + "name": "WorkspaceProjectMapping" + }, + { + "description": "워크스페이스 User Role Mapping 관리", + "name": "WorkspaceUserRoleMapping" + }, + { + "name": "Tool" + }, + { + "description": "CSP sts token 요청", + "name": "[PoC] STS" + } + ] +}