트랜스코딩 & 패키징 API 가이드
본 문서는 HTTP API를 통해 도브러너 트랜스코딩 & 패키징 서비스를 사용하는 방법을 안내합니다.
동영상 튜토리얼 및 샘플 코드
다음의 동영상 튜토리얼과 API 샘플 코드를 참고해 T&P 서비스를 연동할 수 있습니다.
| 개발 언어 | GitHub 저장소 | 
|---|---|
| TypeScript | https://github.com/doverunner/tnp-request-sample-typescript | 
| Python | https://github.com/doverunner/tnp-request-sample-python | 
| Java | https://github.com/doverunner/tnp-request-sample-java | 
API 공통 규격
본 문서에 명시된 모든 API에는 아래와 같은 공통 규격이 적용됩니다.
API 인증 토큰
T&P API 호출 시 아래 과정을 통해 생성한 인증 토큰을 설정해야 합니다.
1단계: Base64 인코딩된 인증 매개변수 생성
- 웹 브라우저로 도브러너 데브콘솔의 Base64 Enc/Dec 페이지에 접속합니다.
- Encrypt옵션이 선택된 상태에서- EmailID:AccessKey형태의 값을 왼쪽 필드에 입력합니다.
- 아래 스크린샷 이미지와 같이 Base64 인코딩된 값이 화면 오른쪽에 출력됩니다.
- 다음 단계에서 사용을 위해 출력된 값을 복사해둡니다.

EmailID와AccessKey값은 각각 도브러너 서비스 가입 시 입력한 이메일 주소와 가입 후 콘솔에 표시되는 엑세스 키를 입력해야 합니다.
2단계: 인코딩된 매개변수를 이용해 인증 토큰 생성
1단계에서 생성한 Base64 인코딩 결과 값을 아래 토큰 API 요청의 Authorization 헤더에 설정해 API를 호출합니다.
- URL: https://tnp.pallycon.com/api/token/{siteId}
- Method: GET
경로 매개변수
| 매개변수 | 유형 | 설명 | 
|---|---|---|
| siteId | 네자리 영숫자 | 콘솔에 표시되는 도브러너 사이트 ID | 
요청 헤더
| 헤더 명 | 설명 | 
|---|---|
| Authorization | 기본 인증 : Basic base64encode(userId:accessKey) | 
요청 예제
GET /api/token/DEMO HTTP/1.1
Authorization: basic authInfo
Host: tnp.pallycon.com
응답 데이터 필드
| 필드 | 유형 | 값 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data.token | String | API 인증 토큰 | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 112
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "token" : "Bearer valid-token"
  }
} 
API 요청 헤더
Authorization 헤더에 토큰 API를 통해 발급된 데이터를 설정하여 T&P API를 호출할 수 있습니다.
공통 응답 규격
응답 상태
| HTTP 상태 코드 | 설명 | 
|---|---|
| 200 | 성공 | 
| 401 | JWT 토큰 규격이 잘못 되었거나 사용자 정보를 찾을 수 없습니다. | 
| 403 | API 이용 권한이 없습니다. | 
응답 데이터 필드
| 키 | 유형 | 값 | 
|---|---|---|
| error_code | String | 0000: 성공 / 실패 시 해당 에러코드 | 
| error_message | String | 에러 메시지 | 
| data | Json | API 수행 결과 | 
리전 코드
T&P API 중 일부는 다음과 같은 리전 코드를 요청 및 응답 데이터에 사용합니다.
| 리전 코드 | 리전 명 | AWS 리전 코드 | 
|---|---|---|
| RG004 | Oregon | us-west-2 | 
| RG011 | Seoul | ap-northeast-2 | 
| RG013 | Singapore | ap-southeast-1 | 
TNP 연동 정보 API
연동 정보 조회
TNP 연동과 관련된 정보를 조회하는 API 입니다.
- URL: https://tnp.pallycon.com/api/setting/{siteId}
- Method: GET
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
요청 예제
GET /api/setting/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.api.com
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 연동 관련 정보 | 
| data.site_id | String | 사이트 ID | 
| data.region | String | TNP packaging 을 진행할 리전의 리전코드 | 
| data.service_status | String | TNP 사용 여부(SE000:사용중, SE001: 미사용) | 
| data.trial_pack_cnt | Number | 트라이얼인 경우 패키징한 횟수 | 
| data.site_key | String | 서비스 사이트 연동 과정에 필요한 암호화 키 (콘솔 ‘사이트 설정’ 페이지에서 확인) | 
| data.access_key | String | 패키져, 라이선스 토큰 등 추가적 연동 보안에 사용되는 키 (콘솔 ‘사이트 설정’ 페이지에서 확인) | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 230
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "site_id" : "DEMO",
    "region" : "RG011",
    "service_status" : "SE000",
    "trial_pack_cnt" : 0,
    "site_key" : null,
    "access_key" : null
  }
}
연동 정보 수정
TNP 연동과 관련된 정보를 수정하는 API 입니다.
- URL: https://tnp.pallycon.com/api/setting/{siteId}
- Method: PUT
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
요청 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| site_id | 콘솔에 표시되는 도브러너 사이트 ID | |
| region | String | TNP packaging 을 진행할 리전의 리전코드 | 
요청 예제
PUT /api/setting/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 76
Host: tnp.api.com
{
  "site_id" : "DEMO",
  "region" : "RG004"
}
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 연동 관련 정보 | 
| data.site_id | String | 사이트 ID | 
| data.region | String | TNP packaging 을 진행할 리전의 리전코드 | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 156
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "site_id" : "DEMO",
    "region" : "RG004"
  }
}
작업 API
작업 생성
트랜스코딩 & 패키징 작업을 생성하는 API입니다.
- URL: https://tnp.pallycon.com/api/job/{siteId}
- Method: POST
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID (네 자리 영숫자) | 
요청 데이터 필드
| 필드 | 유형 | 필수 여부 | 설명 | 
|---|---|---|---|
| job_name | String | Yes | 작업명 | 
| content_id | String | Yes | 콘텐트 ID | 
| input | Object | Yes | 입력 콘텐트 정보 | 
| input.storage_id | String | Yes | 입력 스토리지 ID | 
| input.files | Array | Yes | 입력 파일 정보 | 
| input.files.[].file_type | String | Yes | 파일 유형 : multi, video, audio - multi: 입력 파일의 비디오와 오디오 트랙 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.- video: 입력파일의 비디오 트랙을 이용. 오디오 트랙 정보는 사용되지 않음.multi와video유형은 하나의 작업에 함께 사용될 수 없습니다.- audio: 입력 파일의 오디오 트랙을 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다. | 
| input.files.[].file_path | String | Yes | 입력 파일 경로 | 
| input.files.[].audios | Array | 오디오 정보(파일 타입이 multi혹은audio인 경우 작성 필요.) | |
| input.files.[].audios.[].in | Object | Yes | 입력 오디오 트랙 | 
| input.files.[].audios.[].in.track | Number | 입력 오디오 트랙 인덱스. 기본값: 0 | |
| input.files.[].audios.[].remap | Object | Yes | 오디오 트랙 매핑(Remapping) | 
| input.files.[].audios.[].remap.track | Number | 매핑된 오디오 트랙 인덱스. 기본값: 0 | |
| input.subtitles | Array | 자막 정보 | |
| input.subtitles.[].file_path | String | Yes | 자막 파일 경로 | 
| input.subtitles.[].language | String | Yes | 자막 언어 | 
| output | Object | Yes | 출력 태스크 정보 | 
| output.storage_id | String | Yes | 출력 스토리지 ID | 
| output.path | String | Yes | 출력 폴더 경로 | 
| output.default_language | String | 오디오 트랙 기본 언어 코드 | |
| output.transcodings | Array | Yes | 트랜스코딩 정보 | 
| output.transcodings.[].track_id | String | Yes | 트랙 ID | 
| output.transcodings.[].track_type | String | Yes | 트랙 유형 : video, audio | 
| output.transcodings.[].track_name | String | 트랙 명 : audio | |
| output.transcodings.[].codec | String | Yes | 비디오/오디오 코덱 이름 (video: h264, h265. audio: aac, aac_lc,ac3,eac3 & heaac_v2) 오디오 코덱의 경우, source file(input file)의 오디오 코덱 정보와 동일해야 합니다. | 
| output.transcodings.[].height | Number | Yes | 영상 높이 | 
| output.transcodings.[].width | Number | Yes | 영상 너비 | 
| output.transcodings.[].bitrate_mode | String | 비트레이트 모드 (cbr, vbr) | |
| output.transcodings.[].bitrate | Number | Yes | 비트레이트 (cbr). | 
| output.transcodings.[].min_bitrate | Number | 최소 비트레이트 (bps). VBR용. | |
| output.transcodings.[].max_bitrate | Number | 최대 비트레이트 (bps). VBR용. | |
| output.transcodings.[].crf | Number | bitrate 관련 옵션 - vbr 인 경우, bitrate 혹은 crf 값(0~63)을 정해주어야 합니다. | |
| output.transcodings.[].bandwidth | Number | 영상 대역폭 | |
| output.transcodings.[].sample_rate | Number | 오디오 샘플링 레이트 | |
| output.transcodings.[].language | String | 오디오 트랙 언어 코드(ISO 639-1, 두자리 영문 소문자) | |
| output.transcodings.[].sources | Array | 매핑된 오디오 트랙 목록 | |
| output.transcodings.[].sources.[].track | Number | 매핑된 오디오 트랙 인덱스 | |
| output.packaging | Object | Yes | 패키징 정보 | 
| output.packaging.dash | Boolean | DASH 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다. | |
| output.packaging.hls | Boolean | HLS 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다. | |
| output.packaging.cmaf | Boolean | CMAF 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 dash, hls 는 false 가 되어야 합니다. | |
| output.packaging.option | Object | 패키징 옵션 | |
| output.packaging.option.min_buffer_time | Number | MPD Representation data rate의 정의에 사용되는 공통 기간을 초 단위로 지정합니다. 최소값: 2 | |
| output.packaging.option.enable_average_bandwidth_mpd | Boolean | MPD의 각 트랙에 대해 평균 대역폭을 사용합니다. (기본값: false) | |
| Boolean | Deprecated 이 매개변수를 사용하여 출력 자막 형식을 Embedded MP4로 설정할 수 있습니다. 파라미터를 생략하면 기본적으로 Text VTT 형식의 자막이 생성됩니다. (기본값: false) | ||
| output.packaging.option.subtitle_format.dash | String | 출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 DASH 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt) | |
| output.packaging.option.subtitle_format.hls | String | 출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 HLS 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt) | |
| output.packaging.option.subtitle_format.cmaf | String | 출력 자막 형식(text_vtt, mp4_ttml)을 설정할 수 있습니다. 작업 생성시 CMAF 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt) | |
| output.drm | Object | DRM 정보 | |
| output.drm.enabled | Boolean | DRM 암호화 적용 여부. 기본값: false | |
| output.drm.option | Object | DRM 옵션 | |
| output.drm.option.multi_key | Boolean | 멀티키 패키징 적용 여부. 기본값: false | |
| output.drm.option.max_sd_height | Number | SD 트랙으로 패키징될 최대 해상도. 기본값: 480 | |
| output.drm.option.max_hd_height | Number | HD 트랙으로 패키징될 최대 해상도. 기본값: 1080 | |
| output.drm.option.max_uhd1_height | Number | UHD 트랙으로 패키징될 최대 해상도. 기본값: 2160 | |
| output.drm.option.skip_audio_encryption | Boolean | 오디오 트랙 암호화 제외 여부. 기본값: false(오디오 암호화) | |
| output.drm.option.clear_lead | Number | 영상 초반에 암호화 비활성화 구간을 적용 (초 단위). 기본값: 0 | |
| output.drm.option.generate_tracktype_manifests | Boolean | 멀티키 패키징 시 트랙별 매니페스트(플레이리스트) 파일 생성. SD부터 UHD 트랙까지 포함된 어댑티브 스트림의 경우, SD_ONLY,SD_HD,SD_UHD세 가지 매니페스트가 생성됨. 기본값: false | |
| output.forensic_watermarking | Object | 포렌식 워터마킹 정보 | |
| output.forensic_watermarking.enabled | Boolean | 포렌식 워터마킹 적용 여부. 기본값: false | |
| output.job_noti_id | String | TNP 작업 상태 업데이트를 위해 알림 ID를 사용 | |
| 요청 예제 | 
POST /api/job/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 1541
Host: tnp.pallycon.com
{
  "job_name" : "jobName",
  "content_id" : "test-cid",
  "input" : {
    "storage_id" : "input-storage-id",
    "files" : [ {
      "file_type" : "multi",
      "file_path" : "input/input-file1.mp4",
      "audios" : [ {
        "in" : {
          "track" : 0
        },
        "remap" : {
          "track" : 0
        }
      } ]
    } ],
    "subtitles" : [ {
      "file_path" : "input/subtitle/en.vtt",
      "language" : "eng"
    } ]
  },
  "output" : {
    "storage_id" : "output-storage-id",
    "path" : "output",
    "transcodings" : [ {
      "track_id" : "video1",
      "track_type" : "video",
      "codec" : "h264",
      "height" : 1080,
      "width" : 1920,
      "bitrate_mode" : "cbr",
      "bitrate" : 10000,
      "frame_rate" : 23.98
    }, {
      "track_id" : "audio1",
      "track_type" : "audio",
      "track_name" : "english",
      "codec" : "h264",
      "bitrate_mode" : "cbr",
      "bitrate" : 128000,
      "language" : "en",
      "sources" : [ {
        "track" : 0
      } ]
    } ],
    "packaging" : {
      "dash" : true,
      "hls" : false,
      "cmaf" : false,
      "option" : {
        "min_buffer_time" : 2,
        "enable_average_bandwidth_mpd" : false,
        "subtitle_format": {
          "dash": "text_vtt"
        }
      }
    },
    "drm" : {
      "enabled" : true,
      "option" : {
        "multi_key" : false,
        "max_sd_height" : 0,
        "max_hd_height" : 0,
        "max_uhd1_height" : 0,
        "skip_audio_encryption" : false,
        "clear_lead" : 0,
        "generate_tracktype_manifests" : false
      }
    },
    "forensic_watermarking" : {
      "enabled" : true
    }
    "job_noti_id":1
  }
} 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data.job_id | Number | 생성된 작업 ID | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 96
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "job_id" : 123
  }
} 
작업 목록 검색
생성된 작업의 목록을 검색할 수 있는 API입니다.
- URL: https://tnp.pallycon.com/api/job/{siteId}
- Method: GET
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
요청 매개변수
| 매개변수 | 유형 | 설명 | 
|---|---|---|
| from | String | 검색 기간 시작일 (YYYY-MM-DD) | 
| to | String | 검색 기간 종료일 (YYYY-MM-DD) | 
| job_name | String | 검색할 작업명 | 
| region | String | 검색할 리전 코드 | 
| page_unit | Number | 검색 결과 수 지정. 기본값: 25, 최대: 1000. | 
| page_index | Number | 검색 결과 페이지 번호. 기본값: 1 | 
| job_id | Number | 검색할 작업 ID | 
| job_id_operator | String | 검색할 작업 ID 조건 표현식 (eq, gt, goe, lt, loe) | 
| content_id | String | 검색할 콘텐츠 ID | 
| streaming_format | Array | 검색할 스트리밍 포맷 : dash / hls / cmaf / dash,hls | 
| job_status | Array | 검색할 작업 상태 | 
| job_type | Array | 검색할 보안 유형: drm / forensic_watermark / drm,forensic_watermark | 
| codec | Array | 검색할 트랜스코딩용 output video codec: h264 / h265 / h264,h265 | 
| time_zone | String | 검색에 사용될 시간대 설정. (+HH:mm) 기본값: +00:00 | 
요청 예제
GET /api/job/DEMO?from=2022-05-01&to=2022-05-13&job_name=test-job®ion=RG011&page_unit=20&page_index=1&job_id=123&content_id=test-content-id&security=forensic_watermark&streaming_format=dash&time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| time_zone | String | 시간대 | 
| total_count | Number | 전체 검색 결과 수 | 
| data | Array | 작업 목록 | 
| data.[].job_id | Number | 작업 ID | 
| data.[].job_name | String | 작업 명 | 
| data.[].content_id | String | 콘텐츠 ID | 
| data.[].job_status | String | 작업 상태 코드 | 
| data.[].drm | Boolean | DRM 적용 여부 | 
| data.[].forensic_watermark | Boolean | 포렌식 워터마킹 적용 여부 | 
| data.[].dash | Boolean | DASH 패키징 여부 | 
| data.[].hls | Boolean | HLS 패키징 여부 | 
| data.[].cmaf | Boolean | CMAF 패키징 여부 | 
| data.[].codec | Boolean | 트랜스코딩 비디오 코덱 | 
| data.[].region | String | 작업 생성 리전 | 
| data.[].reg_time | String | 작업 생성 시간 | 
| data.[].start_time | String | 작업 시작 시간 | 
| data.[].update_time | String | 작업 최종 업데이트 시간 | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 933
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "time_zone" : "+00:00",
  "total_count" : 3,
  "data" : [ {
    "job_id" : 1,
    "job_name" : "test job 1",
    "content_id" : "test cid 1",
    "job_status" : "TP100200",
    "drm" : true,
    "forensic_watermark" : true,
    "dash" : true,
    "hls" : true,
    "cmaf": false,
    "codec": "h264"
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  }, {
    "job_id" : 2,
    "job_name" : "test job 2",
    "content_id" : "test cid 2",
    "job_status" : "TP500",
    "drm" : true,
    "forensic_watermark" : false,
    "dash" : true,
    "hls" : false,
    "cmaf": false,
    "codec": "h265"
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  }, {
    "job_id" : 3,
    "job_name" : "test job 3",
    "content_id" : "test cid 3",
    "job_status" : "TP700200",
    "drm" : true,
    "forensic_watermark" : true,
    "dash" : true,
    "hls" : true,
    "cmaf": false,
    "codec": "h264"
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  } ]
} 
작업 상세 조회
패키징 작업의 상세 정보를 조회하는 API입니다.
- URL: https://tnp.pallycon.com/api/job/{siteId}/{jobId}
- Method: GET
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
| jobId | 작업 ID | 
요청 매개변수
| 매개변수 | 필수 여부 | 설명 | 
|---|---|---|
| time_zone | Yes | 검색할 시간대. (+HH:mm) 기본값: +00:00 | 
요청 예제
GET /api/job/DEMO/1?time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| time_zone | String | 시간대 | 
| data | Object | 작업 정보 | 
| data.job_id | Number | 작업 ID | 
| data.job_name | String | 작업 명 | 
| data.job_status | String | 작업 상태 코드 | 
| data.region | String | 리전 코드 | 
| data.content_id | String | 콘텐츠 ID | 
| data.input | Object | 입력 콘텐츠 정보 | 
| data.input.storage_id | String | 입력 스토리지 ID | 
| data.input.files | Array | 입력 파일 정보 | 
| data.input.files.[].file_type | String | 파일 유형 : multi, video, audio - multi: 입력 파일의 비디오와 오디오 트랙 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.- video: 입력파일의 비디오 트랙을 이용. 오디오 트랙 정보는 사용되지 않음.multi와video유형은 하나의 작업에 함께 사용될 수 없습니다.- audio: 입력 파일의 오디오 트랙을 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다. | 
| data.input.files.[].file_path | String | 입력 파일 경로 | 
| data.input.files.[].audios | Array | 오디오 정보 | 
| data.input.files.[].audios.[].in.track | Number | 입력 오디오 트랙 인덱스 | 
| data.input.files.[].audios.[].remap.track | Number | 매핑된 오디오 트랙 인덱스 | 
| data.input.subtitles | Array | 자막 정보 | 
| data.input.subtitles.[].file_path | String | 자막 파일 경로 | 
| data.input.subtitles.[].language | String | 자막 언어 | 
| data.output | Object | 출력 태스크 정보 | 
| data.output.storage_id | String | 출력 스토리지 ID | 
| data.output.path | String | 출력 폴더 경로 | 
| data.output.default_language | String | 오디오 트랙 기본 언어 코드 | 
| data.output.transcodings | Array | 트랜스코딩 정보 | 
| data.output.transcodings.[].track_id | String | 트랙 ID | 
| data.output.transcodings.[].track_type | String | 트랙 유형 : video, audio | 
| data.output.transcodings.[].track_name | String | 트랙 명 : audio | 
| data.output.transcodings.[].codec | String | 비디오/오디오 코덱 이름 (video: h264, h265. audio: aac, aac_lc,ac3,eac3 & heaac_v2) | 
| data.output.transcodings.[].height | Number | 영상 높이 | 
| data.output.transcodings.[].width | Number | 영상 너비 | 
| data.output.transcodings.[].bitrate_mode | String | 비트레이트 모드 (cbr, vbr) | 
| data.output.transcodings.[].bitrate | Number | 비트레이트 (bps). | 
| data.output.transcodings.[].min_bitrate | Number | 최소 비트레이트 (bps). VBR용. | 
| data.output.transcodings.[].max_bitrate | Number | 최대 비트레이트 (bps). VBR용. | 
| data.output.transcodings.[].crf | Number | 품질 기준으로 비트레이트 설정합니다. vbr 인 경우만 사용 가능합니다. 범위 : 0~69 | 
| data.output.transcodings.[].frame_rate | Number | 영상 프레임레이트 | 
| data.output.transcodings.[].bandwidth | Number | 영상 대역폭 | 
| data.output.transcodings.[].sample_rate | Number | 오디오 샘플링레이트 | 
| data.output.transcodings.[].language | String | 오디오 트랙 언어 코드 (ISO 639-1, 두자리 영문 소문자) | 
| data.output.transcodings.[].sources | Array | 오디오 트랙 리매핑 목록 | 
| data.output.transcodings.[].sources.[].track | Number | 매핑된 오디오 트랙 인덱스 | 
| data.output.packaging | Object | 패키징 정보 | 
| data.output.packaging.dash | Boolean | DASH 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다. | 
| data.output.packaging.hls | Boolean | HLS 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다. | 
| data.output.packaging.cmaf | Boolean | CMAF 패키징 출력 여부. 설정 시 dash, hls 는 false 가 되어야 합니다. | 
| data.output.packaging.option | Object | 패키징 옵션 | 
| data.output.packaging.option.min_buffer_time | Number | MPD Representation data rate의 정의에 사용되는 공통 기간을 초 단위로 지정합니다. | 
| data.output.packaging.option.enable_average_bandwidth_mpd | Boolean | MPD의 각 트랙에 대해 평균 대역폭을 사용합니다. | 
| Boolean | Deprecated 이 매개변수를 사용하여 출력 자막 형식을 Embedded MP4로 설정할 수 있습니다. 파라미터를 생략하면 기본적으로 Text VTT 형식의 자막이 생성됩니다. (기본값: false) | |
| output.packaging.option.subtitle_format.dash | String | 출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 DASH 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt) | 
| output.packaging.option.subtitle_format.hls | String | 출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 HLS 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt) | 
| output.packaging.option.subtitle_format.cmaf | String | 출력 자막 형식(text_vtt, mp4_ttml)을 설정할 수 있습니다. 작업 생성시 CMAF 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt) | 
| data.output.drm | Object | DRM 정보 | 
| data.output.drm.enabled | Boolean | DRM 암호화 적용 여부 | 
| data.output.drm.option | Object | DRM 옵션 | 
| data.output.drm.option.multi_key | Boolean | 멀티키 패키징 적용 여부 | 
| data.output.drm.option.max_sd_height | Number | SD 트랙으로 패키징될 최대 해상도 | 
| data.output.drm.option.max_hd_height | Number | HD 트랙으로 패키징될 최대 해상도 | 
| data.output.drm.option.max_uhd1_height | Number | UHD 트랙으로 패키징될 최대 해상도 | 
| data.output.drm.option.skip_audio_encryption | Boolean | 오디오 트랙 암호화 제외 여부 | 
| data.output.drm.option.clear_lead | Number | 영상 초반 암호화 비활성화 구간 (초 단위) | 
| data.output.drm.option.generate_tracktype_manifests | Boolean | 멀티키 패키징 시 트랙별 매니페스트(플레이리스트) 파일 생성. SD부터 UHD 트랙까지 포함된 어댑티브 스트림의 경우, SD_ONLY, SD_HD, SD_UHD 세 가지 매니페스트가 생성됨. | 
| data.output.forensic_watermarking | Object | 포렌식 워터마킹 정보 | 
| data.output.forensic_watermarking.enabled | Boolean | 포렌식 워터마킹 적용 여부 | 
| data.output.job_noti_id | String | 작업 알림 ID 설정 | 
| data.reg_time | String | 작업 등록 시간 | 
| data.start_time | String | 작업 시작 시간 | 
| data.update_time | String | 작업 최종 업데이트 시간 | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1542
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "time_zone" : "+00:00",
  "data" : {
    "job_name" : "jobName",
    "content_id" : "test-cid",
    "input" : {
      "storage_id" : "12312312312312312312312312312312",
      "files" : [ {
        "file_type" : "multi",
        "file_path" : "del-short-hevc.mp4",
        "audios" : [ {
          "in" : {
            "track" : 0
          },
          "remap" : {
            "track" : 0
          }
        } ]
      } ]
    },
    "output" : {
      "storage_id" : "32132132132132132132131231232132",
      "path" : "saas-pack",
      "transcodings" : [ {
        "track_id" : "video1",
        "track_type" : "video",
        "codec" : "H265",
        "height" : 1080,
        "width" : 1920,
        "bitrate" : 2500,
        "frame_rate" : 23.98
      }, {
        "track_id" : "video2",
        "track_type" : "video",
        "codec" : "H264",
        "height" : 720,
        "width" : 1080,
        "bitrate" : 1500,
        "frame_rate" : 23.98
      }, {
        "track_id" : "audio1",
        "track_type" : "audio",
        "codec" : "aac",
        "sources" : [ {
          "track" : 0
        } ]
      } ],
      "packaging" : {
        "dash" : true,
        "hls" : true,
        "cmaf" : false
      },
      "drm" : {
        "enabled" : true
      },
      "forensic_watermarking" : {
        "enabled" : true
      }
      "job_noti_id":1
    },
    "job_id" : 1,
    "region" : "RG011",
    "job_status" : "TP100100",
    "start_time" : "2022-05-20T17:03:41",
    "reg_time" : "2022-05-20T17:02:17"
  }
} 
작업 중지
패키징 작업을 중지할 때 사용하는 API입니다.
- URL: https://tnp.pallycon.com/api/job/{siteId}/{jobId}/stop
- Method: PUT
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
| jobId | 작업 ID | 
요청 예제
PUT /api/job/DEMO/1/stop HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 작업 정보 | 
| data.job_id | Number | 작업 ID | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 94
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "job_id" : 1
  }
} 
작업 재시작
중지된 작업을 재시작하는 API입니다.
- URL: https://tnp.pallycon.com/api/job/{siteId}/{jobId}/restart
- Method: PUT
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
| jobId | 작업 ID | 
요청 예제
PUT /api/job/DEMO/1/restart HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 작업 정보 | 
| data.job_id | Number | 작업 ID | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 94
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "job_id" : 1
  }
} 
스토리지 API
스토리지 ID 생성
패키징 작업에 사용할 스토리지를 등록하고 ID를 생성하는 API입니다.
- URL: https://tnp.pallycon.com/api/storage/{siteId}
- Method: POST
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
요청 데이터 필드
| 필드 | 유형 | 필수 여부 | 설명 | 
|---|---|---|---|
| storage_name | String | Yes | 스토리지 명 | 
| aws_bucket | String | Yes | S3 버킷 명 | 
| io_type | String | Yes | 입력/출력 유형 (input, output) | 
| access_key_id | String | Yes | S3 액세스 키 ID | 
| secret_key | String | Yes | S3 비밀 키 | 
| region | String | Yes | 리전 코드 | 
| description | String | 스토리지 설명 | 
요청 예제
POST /api/storage/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 295
Host: tnp.pallycon.com
{
  "storage_name" : "test-input-storage",
  "aws_bucket" : "watermark-input-seoul",
  "io_type" : "input",
  "access_key_id" : "valid-test-storage-access-key-id",
  "secret_key" : "valid-in-test-storage-secret-key",
  "region" : "RG011",
  "description" : "This storage is test input bucket."
} 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data.storage_id | String | 생성된 스토리지 ID | 
응답 예제
| HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 115
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "storage_id" : "input-storage-id"
  }
}
스토리지 목록 검색
등록된 스토리지 목록을 검색할 수 있는 API입니다.
- URL: https://tnp.pallycon.com/api/storage/{siteId}
- Method: GET
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
요청 매개변수
| 매개변수 | 설명 | 
|---|---|
| from | 검색 기간 시작일 (YYYY-MM-DD) | 
| to | 검색 기간 종료일 (YYYY-MM-DD) | 
| storage_name | 검색할 스토리지 명 | 
| region | 검색할 스토리지 리전 코드 | 
| page_unit | 검색 결과 수 지정. 기본값: 25, 최대: 1000. | 
| page_index | 검색 결과 페이지 번호. 기본값: 1 | 
| time_zone | 검색할 시간대 (+HH:mm) 기본값: +00:00 | 
요청 예제
GET /api/storage/DEMO?from=2022-05-01&to=2022-05-13&storage_name=test-storage®ion=RG011&page_unit=20&page_index=1&time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| time_zone | String | 시간대 | 
| data | Array | 스토리지 목록 | 
| data.[].storage_id | String | 스토리지 ID | 
| data.[].storage_name | String | 스토리지 명 | 
| data.[].aws_bucket | String | 버킷 명 | 
| data.[].io_type | String | 입출력 유형 (input / output) | 
| data.[].region | String | 스토리지 리전 | 
| data.[].reg_time | String | 스토리지 등록 일시 YYYY-MM-DD’T’hh-mm-ss | 
| data.[].update_time | String | 최종 업데이트 일시 YYYY-MM-DD’T’hh-mm-ss | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 775
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "time_zone" : "+00:00",
  "data" : [ {
    "storage_id" : "e42e5fc74bee455db0fc2d79038dbabb",
    "storage_name" : "test storage 1",
    "aws_bucket" : "test bucket 1",
    "io_type" : "input",
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  }, {
    "storage_id" : "50273cb8e91242f3ad6b9dd49faf8f03",
    "storage_name" : "test storage 2",
    "aws_bucket" : "test bucket 2",
    "io_type" : "input",
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  }, {
    "storage_id" : "69798b703f3c46b996a1335a54c3fa0e",
    "storage_name" : "test storage 3",
    "aws_bucket" : "test bucket 3",
    "io_type" : "input",
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  } ]
}  
스토리지 상세 조회
등록된 스토리지에 대한 상세 정보를 조회하는 API입니다.
- URL: https://tnp.pallycon.com/api/storage/{siteId}/{storageId}
- Method: GET
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
| storageId | 스토리지 ID | 
요청 매개변수
| 매개변수 | 설명 | 
|---|---|
| time_zone | 검색 시간대 (+HH:mm) 기본값: +00:00 | 
요청 예제
GET /api/storage/DEMO/12312312312312312312312312312312?time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| time_zone | String | 시간대 | 
| data | Object | 스토리지 정보 | 
| data.storage_id | String | 스토리지 ID | 
| data.storage_name | String | 스토리지 명 | 
| data.io_type | String | 스토리지 입출력 유형 (input, output) | 
| data.aws_bucket | String | 버킷 명 | 
| data.region | String | 리전 코드 | 
| data.access_key_id | String | 스토리지 액세스 키 ID | 
| data.secret_key | String | 스토리지 비밀 키 | 
| data.description | String | 스토리지 설명 | 
| data.reg_time | String | 스토리지 등록 일시 (YYYY-MM-DD’T’hh-mm-ss) | 
| data.update_time | String | 최종 업데이트 일시 | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 547
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "time_zone" : "+00:00",
  "data" : {
    "storage_id" : "12312312312312312312312312312312",
    "storage_name" : "test-input-storage",
    "io_type" : "input",
    "aws_bucket" : "watermark-input-seoul",
    "region" : "RG011",
    "access_key_id" : "valid-test-storage-access-key-id",
    "secret_key" : "valid-in-test-storage-secret-key",
    "description" : "This storage is test input bucket.",
    "update_time" : "2022-05-26T05:43:01",
    "reg_time" : "2022-05-25T05:43:01"
  }
} 
스토리지 수정
등록된 스토리지의 정보를 수정하는 API입니다.
- URL: https://tnp.pallycon.com/api/storage/{siteId}/{storageId}
- Method: PUT
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
| storageId | 스토리지 ID | 
요청 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| storage_name | String | 스토리지 명 | 
| access_key_id | String | 액세스 키 ID | 
| secret_key | String | 비밀 키 | 
| aws_bucket | String | 버킷 명 | 
| io_type | String | 입출력 유형 (input / output) | 
| description | String | 스토리지 설명 | 
요청 예제
PUT /api/storage/DEMO/12312312312312312312312312312312 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 217
Host: tnp.pallycon.com
{
  "storage_name" : "test-input-storage",
  "aws_bucket" : "watermark-input-seoul",
  "io_type" : "input",
  "access_key_id" : "valid-test-storage-access-key-id",
  "secret_key" : "valid-in-test-storage-secret-key"
} 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 스토리지 정보 | 
| data.storage_id | String | 스토리지 ID | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 131
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "storage_id" : "12312312312312312312312312312312"
  }
} 
스토리지 삭제
등록된 스토리지 정보를 삭제하는 API입니다.
- URL: https://tnp.pallycon.com/api/storage/{siteId}/{storageId}
- Method: DELETE
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
| storageId | 스토리지 ID | 
요청 예제
DELETE /api/storage/DEMO/12312312312312312312312312312312 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 스토리지 정보 | 
| data.storage_id | String | 스토리지 ID | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 131
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "storage_id" : "12312312312312312312312312312312"
  }
}  
여러 스토리지 삭제
여러 개의 등록된 스토리지 정보를 한 번에 삭제하는 API 입니다.
- URL: https://tnp.pallycon.com/api/storage/{siteId}
- Method: DELETE
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 콘솔에 표시되는 도브러너 사이트 ID | 
| storage_ids | Array | 
요청 예제
DELETE /api/storage/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 118
Host: tnp.pallycon.com
{
  "site_id" : "DEMO",
  "storage_ids" : [ "12312312312312312312312312312312", "12312312312312312312312312312313" ]
} 
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 스토리지 정보 | 
| data.site_id | String | 사이트 ID | 
| data.storage_ids | Array | 스토리지 ID 목록 | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 196
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "site_id" : "DEMO",
    "storage_ids" : [ "12312312312312312312312312312312", "12312312312312312312312312312313" ]
  }
}
작업 알림 API
작업 상태를 알림으로 설정하고 알림을 받을수 있는 API 입니다. 현재 알림으로 받을수 있는 타입은 AWS SNS(Simple Notification Service) 만 지원합니다. 작업 알림 API는 다음의 네가지 기능을 제공합니다.
- 알림 생성
- 알림 업데이트
- 알림 검색
- 알림 삭제
알림 생성
작업 알림을 생성하는 API 입니다
- URL: https://tnp.pallycon.com/api/noti/job/{SiteID}
- Method: POST
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 도브러너 사이트 ID | 
요청 데이터 필드
| 필드 | 유형 | 필수여부 | 설명 | 
|---|---|---|---|
| noti_name | String | Yes | 알림 이름 (최대 50자 영문 대/소문자, 숫자, 특수 문자(-)(_)(.)) | 
| noti_type | String | Yes | 연동하는 알림 유형 (현재 AWS SNS만 지원) | 
| url_end_point | String | Yes | 알림 받을 URL 주소 (현재 AWS ARN 타입의 주소만 가능) | 
| aws_access.access_key | String | Yes | AWS SNS에 접근하는 AWS access key | 
| aws_access.secret_key | String | Yes | AWS SNS에 접근하는 AWS secret key | 
| alarm_status | Object | Yes | 알림 받을 작업 상태값 관련 객체 | 
| alarm_status.queued | Boolean | queued 상태값 알림 여부 (기본값: false) | |
| alarm_status.progressing | Boolean | processing 상태값 알림 여부 (기본값: false) | |
| alarm_status.complete | Boolean | complted 상태값 알림 여부 (기본값: false) | |
| alarm_status.error | Boolean | error 상태값 알림 여부 (기본값: false) | |
| alarm_status.stopped | Boolean | stopped 상태값 알림 여부 (기본값: false) | 
요청 예제
POST https://tnp.pallycon.com/api/noti/job/{SiteID}
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com
{
   "noti_name" :"noti_test",
   "noti_type" : "SNS",
   "url_end_point" : "arn:aws:sns:us-west-2:73041xxxxx:PallyCon_TNP_SNS",
  "aws_access" :
   {
       "access_key" : "AK1252GDTP5xxxxx",
       "secret_key" : "WwMma1EVkcMBhlCmXxxxxxxx1"
   },
  "alarm_status" :
   {
       "queued" : false,
       "progressing" : false,
       "stopped" : true,
       "error" : true,
       "complete" : true
   }
}
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 작업 알림 정보 | 
| data.noti_id | Number | 작업 알림 ID | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
   "error_code": "0000",
   "error_message": "Success.",
   "data": {
       "noti_id": 1
   }
}
알림 업데이트
생성된 알림을 수정하거나 업데이트 하는 API 입니다.
- URL: https://tnp.pallycon.com/api/noti/job/{{SitID}}/{{notiid}}
- Method: PUT
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 도브러너 사이트 ID | 
| notiid | 업데이트 할 작업 알림 ID | 
요청 데이터 필드
| 필드 | 유형 | 필수여부 | 설명 | 
|---|---|---|---|
| noti_name | String | 알림 이름 (최대 50자 영문 대/소문자, 숫자, 특수 문자(-)(_)(.)) | |
| noti_type | String | 연동하는 알림 유형 (현재 AWS SNS만 지원) | |
| url_end_point | String | 알림 받을 URL 주소 (현재 AWS ARN 타입의 주소만 가능) | |
| aws_access.access_key | String | AWS SNS에 접근하는 AWS access key | |
| aws_access.secret_key | String | AWS SNS에 접근하는 AWS secret key | |
| alarm_status | Object | 알림 받을 작업 상태값 관련 객체 | |
| alarm_status.queued | Boolean | Yes | queued 상태값 알림 여부 (기본값: false) | 
| alarm_status.progressing | Boolean | Yes | processing 상태값 알림 여부 (기본값: false) | 
| alarm_status.complete | Boolean | Yes | complted 상태값 알림 여부 (기본값: false) | 
| alarm_status.error | Boolean | Yes | error 상태값 알림 여부 (기본값: false) | 
| alarm_status.stopped | Boolean | Yes | stopped 상태값 알림 여부 (기본값: false) | 
요청 예제
PUT https://tnp.pallycon.com/api/noti/job/{{SitID}}/{{notiid}}
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com
{
   "noti_name" :"noti_test",
   "noti_type" : "SNS",
   "url_end_point" : "arn:aws:sns:us-west-2:73041xxx:PallyCon_TNP_SNS",
  "aws_access" :
   {
       "access_key" : "AK1252GDTP5xxxxx",
       "secret_key" : "WwMma1EVkcMBhlCmXxxxxxxx1"
   },
  "alarm_status" :
   {
       "queued" : false,
       "progressing" : false,
       "stopped" : true,
       "error" : true,
       "complete" : true
   }
}
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 작업 알림 정보 | 
| data.noti_id | Number | 작업 알림 ID | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
   "error_code": "0000",
   "error_message": "Success.",
   "data": {
       "noti_id": 1
   }
}
알림 목록 조회
등록된 작업 알림 목록을 조회하는 API 입니다.
- URL: https://tnp.pallycon.com/api/noti/job/{SiteID}
- Method: GET
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 도브러너 사이트 ID | 
요청 예제
GET https://tnp.pallycon.com/api/noti/job/{SiteID}
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러 코드 | 
| error_message | String | 에러 메시지 | 
| time_zone | String | 타임존 (+/-hh:mm) | 
| total_count | Number | 등록된 알림의 총 개수 | 
| data | Array | 작업 알림 목록 | 
data Arry의 내부 배열은 다음과 같습니다
| 필드 | 유형 | 설명 | 
|---|---|---|
| noti_id | Number | 작업 알림 ID | 
| site_id | String | 도브러너 사이트 ID | 
| noti_name | String | 알림 이름 | 
| noti_type | String | AWS SNS만 지원 | 
| url_end_point | String | 알림을 받을 URL 주소 | 
| alarm_status | Object | 알림 받는 작업 상태값 관련 객체 | 
| alarm_status.queued | Boolean | queued 상태값 알림 여부 | 
| alarm_status.progressing | Boolean | progressing 상태값 알림 여부 | 
| alarm_status.complete | Boolean | complted 상태값 알림 여부 | 
| alarm_status.error | Boolean | error 상태값 알림 여부 | 
| alarm_status.stopped | Boolean | stopped 상태값 알림 여부 | 
| reg_time | String | 작업 알림이 생성된 날짜와 시간 | 
| update_time | String | 작업 알림이 업데이트된 날짜와 시간 | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "error_code": "0000",
    "error_message": "Success.",
    "time_zone": "+00:00",
    "total_count": 1,
    "data": [
        {
            "noti_id": 1,
            "site_id": "YOUR_SITE_ID",
            "noti_name": "noti_test",
            "noti_type": "SNS",
            "url_end_point": "arn:aws:sns:us-west-2:73041xxx:PallyCon_TNP_SNS",
            "access_key": "AK1252GDTP5xxxxx",
            "alarm_status": {
                "queued": true,
                "progressing": true,
                "complete": true,
                "error": true,
                "stopped": true
            },
            "update_time": "2024-08-05T11:02:05",
            "reg_time": "2024-08-05T10:18:58"
        }
    ]
}
알림 삭제
작업 알림을 삭제하는 API 입니다
- URL: https://tnp.pallycon.com/api/noti/job/{SiteID}/{notiId}
- Method: DELETE
경로 매개변수
| 매개변수 | 설명 | 
|---|---|
| siteId | 도브러너 사이트 ID | 
| notiId | 삭제할 작업 알림 ID | 
요청 예제
DELETE https://tnp.pallycon.com/api/noti/job/{SiteID}/{notiId}
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com
응답 데이터 필드
| 필드 | 유형 | 설명 | 
|---|---|---|
| error_code | String | 에러코드 | 
| error_message | String | 에러 메시지 | 
| data | Object | 작업 알림 정보 | 
| data.noti_id | Number | 작업 알림 ID | 
응답 예제
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
   "error_code": "0000",
   "error_message": "Success.",
   "data": {
       "noti_id": 1
   }
}