Skip to content

Team Stash API Reference

NOTE

외부 개발자를 위한 Team Stash 기능 API 문서

개요

Base URL: https://api.teamstash.eupthere.uk

모든 리소스 식별자는 내부 ID 대신 UUID를 사용합니다. API 요청/응답에서 노출되는 모든 ID는 UUID 형식입니다.

응답 형식

모든 API 응답은 아래 구조를 따릅니다.

성공 응답

json
{
  "success": true,
  "status": 200,
  "message": "작업 완료 메시지",
  "data": { ... }
}
필드타입설명
successboolean항상 true
statusnumberHTTP 상태 코드 (200, 201 등)
messagestring응답 메시지
dataobject실제 응답 데이터 (엔드포인트마다 다름)

에러 응답

json
{
  "success": false,
  "status": 400,
  "message": "에러 메시지"
}
필드타입설명
successboolean항상 false
statusnumberHTTP 상태 코드 (400, 401, 403, 404, 500 등)
messagestring에러 메시지

Teams API

팀 관리 관련 API입니다.


1. 새로운 팀 생성

새로운 팀을 생성합니다. 생성한 사용자가 팀의 owner가 됩니다.

📌 팀 생성 시 기본 폴더가 자동으로 함께 생성됩니다.

Endpoint

POST /teams

Request Body

필드타입필수설명
teamNamestring팀 이름 (1~50자)

Request 예시

json
{
  "teamName": "개발팀"
}

Response 201 Created

json
{
  "success": true,
  "status": 201,
  "message": "팀이 성공적으로 생성되었습니다.",
  "data": {
    "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
    "teamName": "개발팀",
    "createdAt": "2026-02-03T00:00:00.000Z",
    "role": "owner"
  }
}

Response 필드 (data)

필드타입설명
teamUuidstring팀 UUID
teamNamestring팀 이름
createdAtstring생성 일시 (ISO 8601)
rolestring사용자의 팀 내 역할 (owner, member)

2. 내 팀 목록 조회

현재 인증된 사용자가 속한 모든 팀을 조회합니다.

Endpoint

GET /teams/me

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "내 팀 정보를 성공적으로 조회했습니다.",
  "data": [
    {
      "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
      "teamName": "개발팀",
      "createdAt": "2026-02-03T00:00:00.000Z",
      "role": "owner"
    },
    {
      "teamUuid": "660e8400-e29b-41d4-a716-446655440001",
      "teamName": "디자인팀",
      "createdAt": "2026-01-15T00:00:00.000Z",
      "role": "member"
    }
  ]
}

3. 초대 링크용 팀 정보 조회

팀 UUID로 팀 기본 정보를 조회합니다. 초대 링크 미리보기 용도로 사용됩니다.

⚠️ 인증 없이 접근 가능한 Public API입니다.

Endpoint

GET /teams/:teamUuid/preview

Path Parameters

파라미터타입설명
teamUuidUUID팀 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "팀 정보를 성공적으로 조회했습니다.",
  "data": {
    "teamName": "개발팀"
  }
}

Response 필드 (data)

필드타입설명
teamNamestring팀 이름

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.

4. 팀 가입

특정 팀에 가입합니다.

Endpoint

POST /teams/:teamUuid/join

Path Parameters

파라미터타입설명
teamUuidUUID가입할 팀 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "팀에 성공적으로 가입되었습니다.",
  "data": {
    "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
    "teamName": "개발팀",
    "joinedAt": "2026-02-03T00:00:00.000Z",
    "role": "member"
  }
}

Response 필드 (data)

필드타입설명
teamUuidstring가입한 팀 UUID
teamNamestring팀 이름
joinedAtstring가입 일시 (ISO 8601)
rolestring팀 내 역할

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
409이미 해당 팀에 가입되어 있습니다.

5. 팀 탈퇴

특정 팀에서 탈퇴합니다.

⚠️ 팀 소유자(owner)는 탈퇴할 수 없습니다. 팀을 삭제하거나 소유권을 위임해야 합니다.

Endpoint

DELETE /teams/:teamUuid

Path Parameters

파라미터타입설명
teamUuidUUID탈퇴할 팀 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "팀에서 성공적으로 탈퇴되었습니다.",
  "data": {}
}

에러 응답

상태 코드메시지
404현재 가입된 팀이 없습니다. / 해당 팀에 소속되어 있지 않습니다.
403팀 소유자는 탈퇴할 수 없습니다. 팀을 삭제하거나 소유권을 위임해주세요.

6. 특정 팀 멤버 목록 조회

특정 팀의 모든 멤버를 조회합니다.

📌 해당 팀의 멤버만 조회할 수 있습니다.

Endpoint

GET /teams/:teamUuid/members

Path Parameters

파라미터타입설명
teamUuidUUID팀 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "팀 멤버 정보를 성공적으로 조회했습니다.",
  "data": [
    {
      "userUuid": "123e4567-e89b-12d3-a456-426614174000",
      "userName": "홍길동",
      "role": "owner",
      "joinedAt": "2026-02-01T00:00:00.000Z"
    },
    {
      "userUuid": "223e4567-e89b-12d3-a456-426614174001",
      "userName": "김철수",
      "role": "member",
      "joinedAt": "2026-02-02T00:00:00.000Z"
    }
  ]
}

Response 필드 (배열 내 객체)

필드타입설명
userUuidstring사용자 UUID
userNamestring사용자 닉네임
rolestring팀 내 역할 (owner, member)
joinedAtstring가입 일시 (ISO 8601)

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다. / 해당 팀에 소속되어 있지 않습니다.

Folders API

폴더 관리 관련 API입니다.

📌 각 팀에는 기본 폴더가 자동으로 생성되어 있습니다. 기본 폴더는 이름 변경 및 삭제가 불가능합니다.


7. 새로운 폴더 생성

특정 팀에 새로운 폴더를 생성합니다.

⚠️ 기본 폴더라는 이름은 사용할 수 없습니다.

Endpoint

POST /folders

Request Body

필드타입필수설명
teamUuidUUID폴더를 생성할 팀 UUID
folderNamestring폴더 이름

Request 예시

json
{
  "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
  "folderName": "중요 링크"
}

Response 201 Created

json
{
  "success": true,
  "status": 201,
  "message": "폴더가 성공적으로 생성되었습니다.",
  "data": {
    "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
    "folderName": "중요 링크",
    "createdAt": "2026-02-03T00:00:00.000Z",
    "createdBy": {
      "userUuid": "123e4567-e89b-12d3-a456-426614174000",
      "userName": "홍길동"
    }
  }
}

Response 필드 (data)

필드타입설명
folderUuidstring폴더 UUID
folderNamestring폴더 이름
createdAtstring생성 일시 (ISO 8601)
createdByobject생성자 정보
createdBy.userUuidstring생성자 UUID
createdBy.userNamestring생성자 닉네임

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.
409해당 폴더는 기본 폴더 이름으로, 사용할 수 없습니다.

8. 특정 팀의 모든 폴더 조회

특정 팀에 속한 모든 폴더를 조회합니다.

Endpoint

GET /folders?teamUuid={teamUuid}

Query Parameters

파라미터타입필수설명
teamUuidUUID팀 UUID

Request 예시

GET /folders?teamUuid=550e8400-e29b-41d4-a716-446655440000

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "폴더들을 성공적으로 조회했습니다.",
  "data": [
    {
      "folderUuid": "660e8400-e29b-41d4-a716-446655440001",
      "folderName": "기본 폴더",
      "createdAt": "2026-02-01T00:00:00.000Z",
      "createdBy": {
        "userUuid": "123e4567-e89b-12d3-a456-426614174000",
        "userName": "홍길동"
      }
    },
    {
      "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
      "folderName": "중요 링크",
      "createdAt": "2026-02-03T00:00:00.000Z",
      "createdBy": {
        "userUuid": "123e4567-e89b-12d3-a456-426614174000",
        "userName": "홍길동"
      }
    }
  ]
}

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.

9. 특정 폴더 조회

특정 폴더의 상세 정보를 조회합니다.

Endpoint

GET /folders/:folderUuid

Path Parameters

파라미터타입설명
folderUuidUUID폴더 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "폴더 정보를 성공적으로 조회했습니다.",
  "data": {
    "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
    "folderName": "중요 링크",
    "createdAt": "2026-02-03T00:00:00.000Z",
    "createdBy": {
      "userUuid": "123e4567-e89b-12d3-a456-426614174000",
      "userName": "홍길동"
    }
  }
}

에러 응답

상태 코드메시지
404해당 폴더를 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.

10. 특정 폴더 이름 수정

특정 폴더의 이름을 수정합니다.

⚠️ 기본 폴더는 이름을 변경할 수 없습니다. 또한 기본 폴더라는 이름으로 변경할 수 없습니다.

Endpoint

PATCH /folders/:folderUuid

Path Parameters

파라미터타입설명
folderUuidUUID폴더 UUID

Request Body

필드타입필수설명
folderNamestring새로운 폴더 이름

Request 예시

json
{
  "folderName": "업데이트된 폴더명"
}

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "폴더 이름이 성공적으로 수정되었습니다.",
  "data": {
    "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
    "folderName": "업데이트된 폴더명",
    "createdAt": "2026-02-03T00:00:00.000Z",
    "createdBy": {
      "userUuid": "123e4567-e89b-12d3-a456-426614174000",
      "userName": "홍길동"
    }
  }
}

에러 응답

상태 코드메시지
404해당 폴더를 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.
400해당 폴더는 기본 폴더로, 이름을 변경할 수 없습니다.
409해당 폴더는 기본 폴더 이름으로, 사용할 수 없습니다.

11. 특정 폴더 삭제

특정 폴더를 삭제합니다.

⚠️ 기본 폴더는 삭제할 수 없습니다.

Endpoint

DELETE /folders/:folderUuid

Path Parameters

파라미터타입설명
folderUuidUUID삭제할 폴더 UUID

Request Body: 없음

Response 204 No Content

응답 본문 없음

에러 응답

상태 코드메시지
404해당 폴더를 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.
409해당 폴더는 기본 폴더로, 삭제할 수 없습니다.

Links API

링크 관리 관련 API입니다.


12. 새로운 링크 추가

새로운 링크를 생성합니다.

📌 folderUuid를 지정하지 않으면 해당 팀의 기본 폴더에 자동으로 추가됩니다.

Endpoint

POST /links

Request Body

필드타입필수설명
teamUuidUUID링크가 속할 팀 UUID
folderUuidUUID링크가 속할 폴더 UUID (미지정 시 기본 폴더)
urlstring링크 URL (유효한 URL 형식)
titlestring링크 제목
tagsstring[]태그 배열 (빈 배열 가능)
summarystring링크 요약

Request 예시

json
{
  "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
  "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
  "url": "https://example.com/article",
  "title": "유용한 기사",
  "tags": ["개발", "튜토리얼", "JavaScript"],
  "summary": "이 기사는 JavaScript의 고급 패턴에 대해 설명합니다."
}

Response 201 Created

json
{
  "success": true,
  "status": 201,
  "message": "링크가 성공적으로 생성되었습니다.",
  "data": {
    "linkUuid": "880e8400-e29b-41d4-a716-446655440003",
    "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
    "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
    "url": "https://example.com/article",
    "title": "유용한 기사",
    "tags": ["개발", "튜토리얼", "JavaScript"],
    "summary": "이 기사는 JavaScript의 고급 패턴에 대해 설명합니다.",
    "createdAt": "2026-02-03T00:00:00.000Z",
    "createdBy": {
      "userUuid": "123e4567-e89b-12d3-a456-426614174000",
      "userName": "홍길동"
    }
  }
}

Response 필드 (data)

필드타입설명
linkUuidstring링크 UUID
teamUuidstring팀 UUID
folderUuidstring폴더 UUID
urlstring링크 URL
titlestring링크 제목
tagsstring[]태그 배열
summarystring요약
createdAtstring생성 일시 (ISO 8601)
createdByobject생성자 정보
createdBy.userUuidstring생성자 UUID
createdBy.userNamestring생성자 닉네임

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
404해당 폴더를 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.
400해당 팀에 속해있는 폴더가 아닙니다.

13. 링크 목록 조회 (전체 또는 조건)

조건에 따라 링크 목록을 조회합니다. 모든 Query Parameter는 선택적입니다.

📌 teamUuid를 지정하지 않으면 사용자가 속한 모든 팀의 링크를 조회합니다.

Endpoint

GET /links

Query Parameters

파라미터타입필수설명
teamUuidUUID특정 팀의 링크만 필터링
folderUuidUUID특정 폴더의 링크만 필터링
tagsstring태그로 필터링 (쉼표 구분)
createdAfterDate이 시간 이후에 생성된 링크만 (ISO 8601)

Request 예시

GET /links?teamUuid=550e8400-e29b-41d4-a716-446655440000&tags=JavaScript,개발
GET /links?folderUuid=770e8400-e29b-41d4-a716-446655440002
GET /links?createdAfter=2026-02-01T00:00:00.000Z

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "링크들을 성공적으로 조회했습니다.",
  "data": [
    {
      "linkUuid": "880e8400-e29b-41d4-a716-446655440003",
      "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
      "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
      "url": "https://example.com/article",
      "title": "유용한 기사",
      "tags": ["개발", "튜토리얼", "JavaScript"],
      "summary": "이 기사는 JavaScript의 고급 패턴에 대해 설명합니다.",
      "createdAt": "2026-02-03T00:00:00.000Z",
      "createdBy": {
        "userUuid": "123e4567-e89b-12d3-a456-426614174000",
        "userName": "홍길동"
      }
    }
  ]
}

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
404해당 폴더를 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.
400해당 팀에 속해있는 폴더가 아닙니다.

14. 특정 링크 조회

특정 링크의 상세 정보를 조회합니다.

Endpoint

GET /links/:linkUuid

Path Parameters

파라미터타입설명
linkUuidUUID링크 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "링크 정보를 성공적으로 조회했습니다.",
  "data": {
    "linkUuid": "880e8400-e29b-41d4-a716-446655440003",
    "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
    "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
    "url": "https://example.com/article",
    "title": "유용한 기사",
    "tags": ["개발", "튜토리얼", "JavaScript"],
    "summary": "이 기사는 JavaScript의 고급 패턴에 대해 설명합니다.",
    "createdAt": "2026-02-03T00:00:00.000Z",
    "createdBy": {
      "userUuid": "123e4567-e89b-12d3-a456-426614174000",
      "userName": "홍길동"
    }
  }
}

에러 응답

상태 코드메시지
404해당 링크를 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.

15. 특정 링크 삭제

특정 링크를 삭제합니다.

Endpoint

DELETE /links/:linkUuid

Path Parameters

파라미터타입설명
linkUuidUUID삭제할 링크 UUID

Request Body: 없음

Response 204 No Content

응답 본문 없음

에러 응답

상태 코드메시지
404해당 링크를 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.

Webhooks API

웹훅 관리 관련 API입니다. 웹훅은 팀 단위로 관리됩니다.

📌 웹훅 등록/삭제/수정은 팀 소유자(owner)만 가능합니다. 조회는 팀 멤버라면 가능합니다.


16. 팀에 등록된 웹훅 목록 조회

특정 팀에 등록된 모든 웹훅을 조회합니다.

Endpoint

GET /teams/:teamUuid/webhooks

Path Parameters

파라미터타입설명
teamUuidUUID팀 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "웹훅 목록을 조회했습니다.",
  "data": [
    {
      "webhookUuid": "990e8400-e29b-41d4-a716-446655440004",
      "url": "https://myservice.com/webhook",
      "isActive": true
    },
    {
      "webhookUuid": "aa0e8400-e29b-41d4-a716-446655440005",
      "url": "https://another-service.com/hook",
      "isActive": false
    }
  ]
}

Response 필드 (배열 내 객체)

필드타입설명
webhookUuidstring웹훅 UUID
urlstring웹훅 URL
isActiveboolean활성화 여부

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.

17. 특정 웹훅 삭제

특정 웹훅을 삭제합니다.

⚠️ 팀 소유자(owner)만 삭제할 수 있습니다.

Endpoint

DELETE /teams/:teamUuid/webhooks/:webhookUuid

Path Parameters

파라미터타입설명
teamUuidUUID팀 UUID
webhookUuidUUID삭제할 웹훅 UUID

Request Body: 없음

Response 204 No Content

응답 본문 없음

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
404웹훅을 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.
403팀 오너만 웹훅을 삭제할 수 있습니다.
403해당 팀에 속해있는 웹훅이 아닙니다.

18. 팀에 등록된 웹훅 활성화

특정 웹훅을 활성화합니다.

⚠️ 팀 소유자(owner)만 활성화할 수 있습니다.

Endpoint

PATCH /teams/:teamUuid/webhooks/:webhookUuid/activate

Path Parameters

파라미터타입설명
teamUuidUUID팀 UUID
webhookUuidUUID활성화할 웹훅 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "웹훅이 활성화되었습니다.",
  "data": {
    "webhookUuid": "990e8400-e29b-41d4-a716-446655440004",
    "url": "https://myservice.com/webhook",
    "isActive": true
  }
}

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
404웹훅을 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.
403팀 오너만 웹훅을 수정할 수 있습니다.
403해당 팀에 속해있는 웹훅이 아닙니다.

19. 팀에 등록된 웹훅 비활성화

특정 웹훅을 비활성화합니다.

⚠️ 팀 소유자(owner)만 비활성화할 수 있습니다.

Endpoint

PATCH /teams/:teamUuid/webhooks/:webhookUuid/deactivate

Path Parameters

파라미터타입설명
teamUuidUUID팀 UUID
webhookUuidUUID비활성화할 웹훅 UUID

Request Body: 없음

Response 200 OK

json
{
  "success": true,
  "status": 200,
  "message": "웹훅이 비활성화되었습니다.",
  "data": {
    "webhookUuid": "990e8400-e29b-41d4-a716-446655440004",
    "url": "https://myservice.com/webhook",
    "isActive": false
  }
}

에러 응답

상태 코드메시지
404해당 팀을 찾을 수 없습니다.
404웹훅을 찾을 수 없습니다.
403해당 팀에 접근 권한이 없습니다.
403팀 오너만 웹훅을 수정할 수 있습니다.
403해당 팀에 속해있는 웹훅이 아닙니다.

웹훅 이벤트 페이로드

활성화된 웹훅으로 전송되는 이벤트 페이로드입니다.

링크가 생성될 때 등록된 웹훅으로 다음과 같은 POST 요청이 전송됩니다.

json
{
  "event": "link.created",
  "timestamp": "2026-02-03T00:00:00.000Z",
  "data": {
    "linkUuid": "880e8400-e29b-41d4-a716-446655440003",
    "url": "https://example.com/article",
    "title": "유용한 기사",
    "summary": "이 기사는 JavaScript의 고급 패턴에 대해 설명합니다.",
    "tags": ["개발", "튜토리얼", "JavaScript"],
    "teamUuid": "550e8400-e29b-41d4-a716-446655440000",
    "teamName": "개발팀",
    "folderUuid": "770e8400-e29b-41d4-a716-446655440002",
    "folderName": "중요 링크",
    "createdBy": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "nickname": "홍길동"
    }
  }
}

페이로드 필드

필드타입설명
eventstring이벤트 타입 (link.created)
timestampstring이벤트 발생 시각 (ISO 8601)
data.linkUuidstring링크 UUID
data.urlstring링크 URL
data.titlestring링크 제목
data.summarystring링크 요약
data.tagsstring[]태그 배열
data.teamUuidstring팀 UUID
data.teamNamestring팀 이름
data.folderUuidstring폴더 UUID
data.folderNamestring폴더 이름
data.createdBy.uuidstring생성자 UUID
data.createdBy.nicknamestring생성자 닉네임

HTTP 상태 코드

코드의미
200 OK요청 성공
201 Created리소스 생성 성공
204 No Content요청 성공 (응답 본문 없음)
400 Bad Request잘못된 요청 (유효성 검사 실패 등)
401 Unauthorized인증 실패
403 Forbidden권한 없음
404 Not Found리소스를 찾을 수 없음
409 Conflict리소스 충돌
500 Internal Server Error서버 오류

API 목록 요약

#MethodEndpoint설명
1POST/teams새로운 팀 생성
2GET/teams/me내 팀 목록 조회
3GET/teams/:teamUuid/preview초대 링크용 팀 정보 조회
4POST/teams/:teamUuid/join팀 가입
5DELETE/teams/:teamUuid팀 탈퇴
6GET/teams/:teamUuid/members특정 팀 멤버 목록 조회
7POST/folders새로운 폴더 생성
8GET/folders?teamUuid={uuid}특정 팀의 모든 폴더 조회
9GET/folders/:folderUuid특정 폴더 조회
10PATCH/folders/:folderUuid특정 폴더 이름 수정
11DELETE/folders/:folderUuid특정 폴더 삭제
12POST/links새로운 링크 추가
13GET/links링크 목록 조회 (전체 또는 조건)
14GET/links/:linkUuid특정 링크 조회
15DELETE/links/:linkUuid특정 링크 삭제
16GET/teams/:teamUuid/webhooks팀에 등록된 웹훅 목록 조회
17DELETE/teams/:teamUuid/webhooks/:webhookUuid특정 웹훅 삭제
18PATCH/teams/:teamUuid/webhooks/:webhookUuid/activate웹훅 활성화
19PATCH/teams/:teamUuid/webhooks/:webhookUuid/deactivate웹훅 비활성화