# API로 Dedicated Deployment 관리

알림:

* 모든 엔드포인트는 다음에서 호스팅됩니다 `https://roboflow.cloud`.
* 응답 코드를 확인하세요:
  * 만약 `200`라면, 응답 본문을 JSON 객체로 디코딩하세요.
  * 그렇지 않으면, 응답 본문에는 문자열 형태의 오류 메시지가 포함됩니다.

<details>

<summary>POST /add — dedicated deployment 생성</summary>

**요청 본문 예시 (json)**

```
{
	"api_key": API_KEY,
	"deployment_name": "dev-testing",
	"machine_type": "dev-gpu",
	"creator_email": YOUR_EMAIL_ADDRESS,
	"duration": 3.0,
	"inference_version": "latest",
	"min_replicas": 1,
	"max_replicas": 1
}
```

**요청 본문 스키마 (json)**

* api\_key (string): 필수
* deployment\_name (string): 필수
* machine\_type (string): 필수
* creator\_email (string): 필수
* duration (float): 선택, 단위는 시간입니다. 기본값은 `3`
* inference\_version (string): 선택, 기본값은 `latest`
* min\_replicas (integer): 선택, 기본값은 `1`
* max\_replicas (integer): 선택, 기본값은 `1`

**응답 예시 (json)**

```
{
	"deployment_id": "IwzJ5YLQ0iDhwzqoh3Ae",
	"deployment_name": "dev-testing",
	"machine_type": "dev-gpu",
	"creator_email": YOUR_EMAIL_ADDRESS,
	"creator_id": YOUR_USER_ID,
	"subdomain": "dev-testing",
	"domain": "dev-testing.roboflow.cloud",
	"duration": 3.0,
	"inference_version": "0.45.0",
	"max_replicas": 1,
	"min_replicas": 1,
	"num_replicas": 0,
	"status": "pending",
	"workspace_id": YOUR_WORKSPACE_ID,
	"workspace_url": YOUR_WORKSPACE_URL
}
```

**응답 스키마 (json)**

* deployment\_id (string): 고유 식별자
* deployment\_name (string)
* machine\_type (string)
* creator\_email (string)
* creator\_id (string): 다음에 해당하는 사용자 ID `creator_email`
* subdomain (string): 항상 `deployment_name`과 동일하지는 않으며, subdomain이 이미 사용 중이면 접미사를 추가합니다
* domain (string)
* duration (float)
* inference\_version (string)
* min\_replicas (integer)
* max\_replicas (integer)
* num\_replicas (integer): 현재 사용 가능한 복제본 수
* status (string)
* workspace\_id (string)
* workspace\_url (string)

</details>

<details>

<summary>GET /list — workspace의 dedicated deployments 목록 조회</summary>

**쿼리 매개변수**

* api\_key (string): 필수
* show\_expired (string): 선택, 기본값은 `false`
* show\_deleted (string): 선택, 기본값은 `false`

**응답 예시 (json)**

```
[
{
	"deployment_id": "IwzJ5YLQ0iDhwzqoh3Ae",
	"deployment_name": "dev-testing",
	"machine_type": "dev-gpu",
	"creator_email": YOUR_EMAIL_ADDRESS,
	"creator_id": YOUR_USER_ID,
	"subdomain": "dev-testing",
	"domain": "dev-testing.roboflow.cloud",
	"duration": 3.0,
	"inference_version": "0.45.0",
	"max_replicas": 1,
	"min_replicas": 1,
	"num_replicas": 0,
	"status": "pending",
	"workspace_id": YOUR_WORKSPACE_ID,
	"workspace_url": YOUR_WORKSPACE_URL
}
]
```

**응답 스키마 (json)**

dedicated deployment 항목들의 목록이며, 각 항목은 다음의 스키마와 동일합니다: [/add](#post-add-create-a-dedicated-deployment) 엔드포인트.

</details>

<details>

<summary>GET /get — dedicated deployment의 세부 정보 조회</summary>

**쿼리 매개변수**

* api\_key (string): 필수
* deployment\_name (string): 필수

**응답 예시 (json)**

```
{
	"deployment_id": "IwzJ5YLQ0iDhwzqoh3Ae",
	"deployment_name": "dev-testing",
	"machine_type": "dev-gpu",
	"creator_email": YOUR_EMAIL_ADDRESS,
	"creator_id": YOUR_USER_ID,
	"subdomain": "dev-testing",
	"domain": "dev-testing.roboflow.cloud",
	"duration": 3.0,
	"inference_version": "0.45.0",
	"max_replicas": 1,
	"min_replicas": 1,
	"num_replicas": 0,
	"status": "pending",
	"workspace_id": YOUR_WORKSPACE_ID,
	"workspace_url": YOUR_WORKSPACE_URL
}
```

**응답 스키마 (json)**

다음 응답과 동일한 스키마입니다: [/add](#post-add-create-a-dedicated-deployment) 엔드포인트.

</details>

<details>

<summary>GET /get_log — dedicated deployment의 로그 조회</summary>

**쿼리 매개변수**

* api\_key (string): 필수
* deployment\_name (string): 필수
* max\_entries (integer): 선택, 기본값은 50
* from\_timestamp (string): 선택, 다음 형식으로 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 형식, 기본값은 현재 시간 1시간 전
* to\_timestamp (string): 선택, 다음 형식으로 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 형식, 기본값은 현재 시간

**응답 예시 (json)**

```
[
	{
		"insert_id": "gpwrgrw55p7b9jdq",
		"payload": "INFO:     10.18.0.38:46296 - \"GET /info HTTP/1.1\" 200 OK",
		"severity": "INFO",
		"timestamp": "2025-01-22T13:23:14.209436+00:00"
	},
	{
		"insert_id": "mbieh16zdjvqp81j",
		"payload": "INFO:     10.18.0.38:46294 - \"GET /info HTTP/1.1\" 200 OK",
		"severity": "INFO",
		"timestamp": "2025-01-22T13:23:14.208738+00:00"
	},
	{
		"insert_id": "0odfnfwh8ts6e4jt",
		"payload": "INFO:     10.18.0.38:54650 - \"GET /info HTTP/1.1\" 200 OK",
		"severity": "INFO",
		"timestamp": "2025-01-22T13:22:14.209054+00:00"
	},
	{
		"insert_id": "s3nabhyhejuke6ub",
		"payload": "INFO:     10.18.0.38:54640 - \"GET /info HTTP/1.1\" 200 OK",
		"severity": "INFO",
		"timestamp": "2025-01-22T13:22:14.208329+00:00"
	},
	{
		"insert_id": "2cz5u3jx4ma22tl8",
		"payload": "INFO:     10.18.0.38:40264 - \"GET /info HTTP/1.1\" 200 OK",
		"severity": "INFO",
		"timestamp": "2025-01-22T13:21:14.209900+00:00"
	}
]
```

**응답 스키마 (json)**

로그 항목들의 목록이며, 각 항목에는 다음 속성이 있습니다:

* insert\_id (string): 각 로그 항목의 고유 식별자
* payload (string): 로그 내용
* severity (string)
* timestamp (string)

</details>

<details>

<summary>POST /pause — dedicated deployment 일시 중지</summary>

**요청 본문 예시 (json)**

```
{
	"api_key": API_KEY,
	"deployment_name": "dev-testing"
}
```

**요청 본문 스키마 (json)**

* api\_key (string): 필수
* deployment\_name (string): 필수

**응답 예시 (json)**

```
{
	"message": "OK"
}
```

**응답 스키마**

* message (string)

</details>

<details>

<summary>POST /resume — dedicated deployment 재개</summary>

**요청 본문 예시 (json)**

```
{
	"api_key": API_KEY,
	"deployment_name": "dev-testing"
}
```

**요청 본문 스키마 (json)**

* api\_key (string): 필수
* deployment\_name (string): 필수

**응답 예시 (json)**

```
{
	"message": "OK"
}
```

**응답 스키마**

* message (string)

</details>

<details>

<summary>POST /delete — dedicated deployment 삭제</summary>

**요청 본문 예시 (json)**

```
{
	"api_key": API_KEY,
	"deployment_name": "dev-testing"
}
```

**요청 본문 스키마 (json)**

* api\_key (string): 필수
* deployment\_name (string): 필수

**응답 예시 (json)**

```
{
	"message": "OK"
}
```

**응답 스키마**

* message (string)

</details>
