curl --request POST \
--url https://api.example.com/api/models/{model}/deployments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"model": {
"model_name": "<string>",
"model_version": "<string>",
"model_alias": "<string>"
},
"source": {
"schema": "<string>",
"table": "<string>",
"catalog": "iceberg",
"filter_sql": "<string>",
"snapshot_id": 123
},
"target": {
"schema": "<string>",
"table": "<string>",
"catalog": "iceberg"
},
"entity_columns": [
"<string>"
],
"domain": "<string>",
"owner": "<string>",
"type": "batch",
"schedule": "<string>",
"rerun_behavior": "overwrite_partition",
"partition_column": "scored_at",
"trigger_now": false,
"allowed_roles": [
"<string>"
]
}
'import requests
url = "https://api.example.com/api/models/{model}/deployments"
payload = {
"name": "<string>",
"model": {
"model_name": "<string>",
"model_version": "<string>",
"model_alias": "<string>"
},
"source": {
"schema": "<string>",
"table": "<string>",
"catalog": "iceberg",
"filter_sql": "<string>",
"snapshot_id": 123
},
"target": {
"schema": "<string>",
"table": "<string>",
"catalog": "iceberg"
},
"entity_columns": ["<string>"],
"domain": "<string>",
"owner": "<string>",
"type": "batch",
"schedule": "<string>",
"rerun_behavior": "overwrite_partition",
"partition_column": "scored_at",
"trigger_now": False,
"allowed_roles": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
model: {model_name: '<string>', model_version: '<string>', model_alias: '<string>'},
source: {
schema: '<string>',
table: '<string>',
catalog: 'iceberg',
filter_sql: '<string>',
snapshot_id: 123
},
target: {schema: '<string>', table: '<string>', catalog: 'iceberg'},
entity_columns: ['<string>'],
domain: '<string>',
owner: '<string>',
type: 'batch',
schedule: '<string>',
rerun_behavior: 'overwrite_partition',
partition_column: 'scored_at',
trigger_now: false,
allowed_roles: ['<string>']
})
};
fetch('https://api.example.com/api/models/{model}/deployments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/models/{model}/deployments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'model' => [
'model_name' => '<string>',
'model_version' => '<string>',
'model_alias' => '<string>'
],
'source' => [
'schema' => '<string>',
'table' => '<string>',
'catalog' => 'iceberg',
'filter_sql' => '<string>',
'snapshot_id' => 123
],
'target' => [
'schema' => '<string>',
'table' => '<string>',
'catalog' => 'iceberg'
],
'entity_columns' => [
'<string>'
],
'domain' => '<string>',
'owner' => '<string>',
'type' => 'batch',
'schedule' => '<string>',
'rerun_behavior' => 'overwrite_partition',
'partition_column' => 'scored_at',
'trigger_now' => false,
'allowed_roles' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/models/{model}/deployments"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"model\": {\n \"model_name\": \"<string>\",\n \"model_version\": \"<string>\",\n \"model_alias\": \"<string>\"\n },\n \"source\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\",\n \"filter_sql\": \"<string>\",\n \"snapshot_id\": 123\n },\n \"target\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\"\n },\n \"entity_columns\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"type\": \"batch\",\n \"schedule\": \"<string>\",\n \"rerun_behavior\": \"overwrite_partition\",\n \"partition_column\": \"scored_at\",\n \"trigger_now\": false,\n \"allowed_roles\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/models/{model}/deployments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"model\": {\n \"model_name\": \"<string>\",\n \"model_version\": \"<string>\",\n \"model_alias\": \"<string>\"\n },\n \"source\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\",\n \"filter_sql\": \"<string>\",\n \"snapshot_id\": 123\n },\n \"target\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\"\n },\n \"entity_columns\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"type\": \"batch\",\n \"schedule\": \"<string>\",\n \"rerun_behavior\": \"overwrite_partition\",\n \"partition_column\": \"scored_at\",\n \"trigger_now\": false,\n \"allowed_roles\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/models/{model}/deployments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"model\": {\n \"model_name\": \"<string>\",\n \"model_version\": \"<string>\",\n \"model_alias\": \"<string>\"\n },\n \"source\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\",\n \"filter_sql\": \"<string>\",\n \"snapshot_id\": 123\n },\n \"target\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\"\n },\n \"entity_columns\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"type\": \"batch\",\n \"schedule\": \"<string>\",\n \"rerun_behavior\": \"overwrite_partition\",\n \"partition_column\": \"scored_at\",\n \"trigger_now\": false,\n \"allowed_roles\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"deployment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "batch",
"status": "pending",
"domain": "<string>",
"owner": "<string>",
"model": {
"model_name": "<string>",
"model_version": "<string>",
"model_alias": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"resolved_model_version": "<string>",
"dag_id": "<string>",
"dag_s3_uri": "<string>",
"schedule": "<string>",
"last_run": {
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"airflow_run_id": "<string>",
"status": "queued",
"rows_scored": 123,
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z"
},
"service_url": "<string>",
"replica_count": 123,
"ready_replicas": 123,
"allowed_roles": [
"<string>"
],
"error_message": "<string>",
"stopped_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create a deployment for a model
Creates a new deployment for the specified registered model.
If the request body includes a model_name, the API ignores it and uses the model path parameter instead.
curl --request POST \
--url https://api.example.com/api/models/{model}/deployments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"model": {
"model_name": "<string>",
"model_version": "<string>",
"model_alias": "<string>"
},
"source": {
"schema": "<string>",
"table": "<string>",
"catalog": "iceberg",
"filter_sql": "<string>",
"snapshot_id": 123
},
"target": {
"schema": "<string>",
"table": "<string>",
"catalog": "iceberg"
},
"entity_columns": [
"<string>"
],
"domain": "<string>",
"owner": "<string>",
"type": "batch",
"schedule": "<string>",
"rerun_behavior": "overwrite_partition",
"partition_column": "scored_at",
"trigger_now": false,
"allowed_roles": [
"<string>"
]
}
'import requests
url = "https://api.example.com/api/models/{model}/deployments"
payload = {
"name": "<string>",
"model": {
"model_name": "<string>",
"model_version": "<string>",
"model_alias": "<string>"
},
"source": {
"schema": "<string>",
"table": "<string>",
"catalog": "iceberg",
"filter_sql": "<string>",
"snapshot_id": 123
},
"target": {
"schema": "<string>",
"table": "<string>",
"catalog": "iceberg"
},
"entity_columns": ["<string>"],
"domain": "<string>",
"owner": "<string>",
"type": "batch",
"schedule": "<string>",
"rerun_behavior": "overwrite_partition",
"partition_column": "scored_at",
"trigger_now": False,
"allowed_roles": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
model: {model_name: '<string>', model_version: '<string>', model_alias: '<string>'},
source: {
schema: '<string>',
table: '<string>',
catalog: 'iceberg',
filter_sql: '<string>',
snapshot_id: 123
},
target: {schema: '<string>', table: '<string>', catalog: 'iceberg'},
entity_columns: ['<string>'],
domain: '<string>',
owner: '<string>',
type: 'batch',
schedule: '<string>',
rerun_behavior: 'overwrite_partition',
partition_column: 'scored_at',
trigger_now: false,
allowed_roles: ['<string>']
})
};
fetch('https://api.example.com/api/models/{model}/deployments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/models/{model}/deployments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'model' => [
'model_name' => '<string>',
'model_version' => '<string>',
'model_alias' => '<string>'
],
'source' => [
'schema' => '<string>',
'table' => '<string>',
'catalog' => 'iceberg',
'filter_sql' => '<string>',
'snapshot_id' => 123
],
'target' => [
'schema' => '<string>',
'table' => '<string>',
'catalog' => 'iceberg'
],
'entity_columns' => [
'<string>'
],
'domain' => '<string>',
'owner' => '<string>',
'type' => 'batch',
'schedule' => '<string>',
'rerun_behavior' => 'overwrite_partition',
'partition_column' => 'scored_at',
'trigger_now' => false,
'allowed_roles' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/models/{model}/deployments"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"model\": {\n \"model_name\": \"<string>\",\n \"model_version\": \"<string>\",\n \"model_alias\": \"<string>\"\n },\n \"source\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\",\n \"filter_sql\": \"<string>\",\n \"snapshot_id\": 123\n },\n \"target\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\"\n },\n \"entity_columns\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"type\": \"batch\",\n \"schedule\": \"<string>\",\n \"rerun_behavior\": \"overwrite_partition\",\n \"partition_column\": \"scored_at\",\n \"trigger_now\": false,\n \"allowed_roles\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/models/{model}/deployments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"model\": {\n \"model_name\": \"<string>\",\n \"model_version\": \"<string>\",\n \"model_alias\": \"<string>\"\n },\n \"source\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\",\n \"filter_sql\": \"<string>\",\n \"snapshot_id\": 123\n },\n \"target\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\"\n },\n \"entity_columns\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"type\": \"batch\",\n \"schedule\": \"<string>\",\n \"rerun_behavior\": \"overwrite_partition\",\n \"partition_column\": \"scored_at\",\n \"trigger_now\": false,\n \"allowed_roles\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/models/{model}/deployments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"model\": {\n \"model_name\": \"<string>\",\n \"model_version\": \"<string>\",\n \"model_alias\": \"<string>\"\n },\n \"source\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\",\n \"filter_sql\": \"<string>\",\n \"snapshot_id\": 123\n },\n \"target\": {\n \"schema\": \"<string>\",\n \"table\": \"<string>\",\n \"catalog\": \"iceberg\"\n },\n \"entity_columns\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"type\": \"batch\",\n \"schedule\": \"<string>\",\n \"rerun_behavior\": \"overwrite_partition\",\n \"partition_column\": \"scored_at\",\n \"trigger_now\": false,\n \"allowed_roles\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"deployment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "batch",
"status": "pending",
"domain": "<string>",
"owner": "<string>",
"model": {
"model_name": "<string>",
"model_version": "<string>",
"model_alias": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"resolved_model_version": "<string>",
"dag_id": "<string>",
"dag_s3_uri": "<string>",
"schedule": "<string>",
"last_run": {
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"airflow_run_id": "<string>",
"status": "queued",
"rows_scored": 123,
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z"
},
"service_url": "<string>",
"replica_count": 123,
"ready_replicas": 123,
"allowed_roles": [
"<string>"
],
"error_message": "<string>",
"stopped_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
- Authorization URL
- https://sso-rapid.rapid.nx1cloud.com/realms/rapid/protocol/openid-connect/auth
- Token URL
- https://sso-rapid.rapid.nx1cloud.com/realms/rapid/protocol/openid-connect/token
Path Parameters
MLflow registered model name.
Body
- BatchDeploymentRequest
- OnlineDeploymentRequest
Deployment name. Use lowercase letters, digits, and hyphens only. Must start and end with an alphanumeric character, with a maximum of 63 characters. Unique per registered model.
A registered MLflow model with either a version number or an alias.
Provide exactly one of model_version or model_alias. A version
number deploys a specific model release. An alias resolves to a
concrete version at deployment creation time.
Show child attributes
Show child attributes
Iceberg table the batch scorer reads from.
Show child attributes
Show child attributes
Iceberg table the batch scorer writes predictions to.
Show child attributes
Show child attributes
Columns from the source carried forward into the predictions table.
1"batch"Cron expression. None = manual-trigger only.
overwrite_partition, append_dedup Partition column for overwrite_partition mode.
Keycloak roles that can invoke or manage this deployment via a user PSK. An empty or unset list restricts access to the platform PSK only.
Response
Successful Response
batch, online pending, deploying, active, failed, stopped, archived A registered MLflow model with either a version number or an alias.
Provide exactly one of model_version or model_alias. A version
number deploys a specific model release. An alias resolves to a
concrete version at deployment creation time.
Show child attributes
Show child attributes
The model version this deployment currently uses. When the deployment references an alias, this shows the resolved version number.
Show child attributes
Show child attributes
Was this page helpful?

