# System Admin

## Collect metrics

> Collects dashboard metrics. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/dashboard/collect-metrics":{"get":{"tags":["System Admin"],"summary":"Collect metrics","description":"Collects dashboard metrics. Requires authentication.","parameters":[{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Metrics collected successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Update limit

> Updates the storage limit for a specific user. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/users/{userId}/limits/update":{"put":{"tags":["System Admin"],"summary":"Update limit","description":"Updates the storage limit for a specific user. Requires authentication.","parameters":[{"name":"userId","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the user whose limit is to be updated."},{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bytes_limit":{"type":"integer","description":"The new storage limit in bytes."}},"required":["bytes_limit"]}}}},"responses":{"200":{"description":"Limit updated successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## List users

> Retrieves a list of all users. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/users/list":{"get":{"tags":["System Admin"],"summary":"List users","description":"Retrieves a list of all users. Requires authentication.","parameters":[{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true},{"name":"page","in":"query","schema":{"type":"integer"},"required":false,"description":"Maximum number of page to return."},{"name":"limit","in":"query","schema":{"type":"integer"},"required":false,"description":"Maximum number of users to return"}],"responses":{"200":{"description":"List of users retrieved successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Create user

> Creates a new user. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/users/create":{"post":{"tags":["System Admin"],"summary":"Create user","description":"Creates a new user. Requires authentication.","parameters":[{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","description":"The first name of the user."},"middle_name":{"type":"string","nullable":true,"description":"The middle name of the user (optional)."},"last_name":{"type":"string","description":"The last name of the user."},"suffix":{"type":"string","nullable":true,"description":"The suffix of the user (e.g., Jr., Sr.) (optional)."},"email":{"type":"string","description":"User email address."},"password":{"type":"string","description":"User password (must meet complexity requirements)."},"confirm_password":{"type":"string","description":"Confirmation of the user password."},"role":{"type":"string","description":"User role (system_user or system_admin).","enum":["system_user","system_admin"]},"is_verified":{"type":"boolean","description":"Indicates if the user is verified."}},"required":["first_name","last_name","email","password","confirm_password","role","is_verified"]}}}},"responses":{"201":{"description":"User created successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Read user

> Retrieves details of a specific user. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/users/{userId}/read":{"get":{"tags":["System Admin"],"summary":"Read user","description":"Retrieves details of a specific user. Requires authentication.","parameters":[{"name":"userId","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the user to retrieve."},{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"User details retrieved successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"404":{"description":"User not found."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Search users

> Searches for users by email. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/users/search":{"get":{"tags":["System Admin"],"summary":"Search users","description":"Searches for users by email. Requires authentication.","parameters":[{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true},{"name":"email","in":"query","schema":{"type":"string"},"required":true,"description":"Search term for user email."}],"responses":{"200":{"description":"Users found successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Update user

> Updates details of a specific user. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/users/{userId}/update":{"put":{"tags":["System Admin"],"summary":"Update user","description":"Updates details of a specific user. Requires authentication.","parameters":[{"name":"userId","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the user to update."},{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","description":"Updated first name of the user."},"middle_name":{"type":"string","nullable":true,"description":"Updated middle name of the user (optional)."},"last_name":{"type":"string","description":"Updated last name of the user."},"suffix":{"type":"string","nullable":true,"description":"Updated suffix of the user (e.g., Jr., Sr.) (optional)."},"email":{"type":"string","description":"Updated user email address."},"password":{"type":"string","description":"Updated user password (must meet complexity requirements)."},"role":{"type":"string","description":"Updated user role (system_user or system_admin).","enum":["system_user","system_admin"]},"is_verified":{"type":"boolean","description":"Updated verification status of the user."},"is_locked":{"type":"boolean","description":"Updated lock status of the user."},"is_deleted":{"type":"boolean","description":"Updated deleted status of the user."}}}}}},"responses":{"200":{"description":"User updated successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"404":{"description":"User not found."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Add member to organization

> Adds a member to an organization with a specified role. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/organizations/{orgID}/members/add":{"post":{"tags":["System Admin"],"summary":"Add member to organization","description":"Adds a member to an organization with a specified role. Requires authentication.","parameters":[{"name":"orgID","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the organization."},{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string","description":"The ID of the user to add as a member."},"role_id":{"type":"string","description":"The ID of the role to assign to the member."}},"required":["user_id","role_id"]}}}},"responses":{"201":{"description":"Member added successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Update member role

> Updates the role of a member in an organization. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/organizations/{orgID}/members/{userID}/update-role":{"put":{"tags":["System Admin"],"summary":"Update member role","description":"Updates the role of a member in an organization. Requires authentication.","parameters":[{"name":"orgID","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the organization."},{"name":"userID","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the member."},{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role_id":{"type":"string","description":"The new role ID to assign to the member."}},"required":["role_id"]}}}},"responses":{"200":{"description":"Member role updated successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"404":{"description":"Member or organization not found."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Remove member from organization

> Removes a member from an organization. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/organizations/{orgID}/members/{userID}/remove":{"delete":{"tags":["System Admin"],"summary":"Remove member from organization","description":"Removes a member from an organization. Requires authentication.","parameters":[{"name":"orgID","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the organization."},{"name":"userID","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the member to remove."},{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Member removed successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"404":{"description":"Member or organization not found."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## List organizations

> Retrieves a list of organizations with pagination. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/organizations/list":{"get":{"tags":["System Admin"],"summary":"List organizations","description":"Retrieves a list of organizations with pagination. Requires authentication.","parameters":[{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true},{"name":"page","in":"query","schema":{"type":"integer"},"required":false,"description":"Page number for pagination."},{"name":"limit","in":"query","schema":{"type":"integer"},"required":false,"description":"Maximum number of organizations per page."}],"responses":{"200":{"description":"List of organizations retrieved successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Create organization

> Creates a new organization. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/organizations/create":{"post":{"tags":["System Admin"],"summary":"Create organization","description":"Creates a new organization. Requires authentication.","parameters":[{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the organization."},"domain":{"type":"string","description":"Domain associated with the organization."},"contact":{"type":"string","description":"Contact email for the organization."},"policy_id":{"type":"string","description":"ID of the policy to apply to the organization."},"parent_id":{"type":"string","nullable":true,"description":"ID of the parent organization (optional)."}},"required":["name","domain","contact","policy_id"]}}}},"responses":{"201":{"description":"Organization created successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Read organization

> Retrieves details of a specific organization. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/organizations/{orgID}/read":{"get":{"tags":["System Admin"],"summary":"Read organization","description":"Retrieves details of a specific organization. Requires authentication.","parameters":[{"name":"orgID","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the organization."},{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Organization details retrieved successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"404":{"description":"Organization not found."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```

## Update organization

> Updates details of a specific organization. Requires authentication.

```json
{"openapi":"3.0.0","info":{"title":"Koneksi API Services","version":"1.0.0"},"servers":[{"url":"https://uat.koneksi.co.kr","description":"UAT"},{"url":"https://staging.koneksi.co.kr","description":"Staging"}],"paths":{"/clients/v1/admin/organizations/{orgID}/update":{"put":{"tags":["System Admin"],"summary":"Update organization","description":"Updates details of a specific organization. Requires authentication.","parameters":[{"name":"orgID","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the organization."},{"name":"Client-ID","in":"header","schema":{"type":"string"},"required":true},{"name":"Client-Secret","in":"header","schema":{"type":"string"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Updated name of the organization."},"domain":{"type":"string","description":"Updated domain associated with the organization."},"contact":{"type":"string","description":"Updated contact email for the organization."},"policy_id":{"type":"string","description":"Updated ID of the policy to apply."},"parent_id":{"type":"string","nullable":true,"description":"Updated ID of the parent organization (optional)."}}}}}},"responses":{"200":{"description":"Organization updated successfully."},"401":{"description":"Unauthorized. Valid Client-ID and Client-Secret required."},"404":{"description":"Organization not found."},"500":{"description":"Server error. An error occurred while processing the request."}}}}}}
```
