curl --request PUT \
--url https://api.blaxel.ai/v0/policies/{policyName} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"labels": {}
},
"spec": {
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"locations": [
{
"name": "EU",
"type": "continent"
}
],
"maxTokens": {
"granularity": "minute",
"input": 10000,
"output": 5000,
"ratioInputOverOutput": 2,
"step": 1,
"total": 15000
},
"resourceTypes": [],
"sandbox": false,
"type": "location"
},
"usage": {
"agents": 123,
"functions": 123,
"jobs": 123,
"models": 123,
"sandboxes": 123
}
}
'import requests
url = "https://api.blaxel.ai/v0/policies/{policyName}"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"labels": {}
},
"spec": {
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"locations": [
{
"name": "EU",
"type": "continent"
}
],
"maxTokens": {
"granularity": "minute",
"input": 10000,
"output": 5000,
"ratioInputOverOutput": 2,
"step": 1,
"total": 15000
},
"resourceTypes": [],
"sandbox": False,
"type": "location"
},
"usage": {
"agents": 123,
"functions": 123,
"jobs": 123,
"models": 123,
"sandboxes": 123
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metadata: {name: 'my-resource', displayName: 'My Resource', labels: {}},
spec: {
flavors: [{name: 't4', type: 'cpu'}],
locations: [{name: 'EU', type: 'continent'}],
maxTokens: {
granularity: 'minute',
input: 10000,
output: 5000,
ratioInputOverOutput: 2,
step: 1,
total: 15000
},
resourceTypes: [],
sandbox: false,
type: 'location'
},
usage: {agents: 123, functions: 123, jobs: 123, models: 123, sandboxes: 123}
})
};
fetch('https://api.blaxel.ai/v0/policies/{policyName}', 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.blaxel.ai/v0/policies/{policyName}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'labels' => [
]
],
'spec' => [
'flavors' => [
[
'name' => 't4',
'type' => 'cpu'
]
],
'locations' => [
[
'name' => 'EU',
'type' => 'continent'
]
],
'maxTokens' => [
'granularity' => 'minute',
'input' => 10000,
'output' => 5000,
'ratioInputOverOutput' => 2,
'step' => 1,
'total' => 15000
],
'resourceTypes' => [
],
'sandbox' => false,
'type' => 'location'
],
'usage' => [
'agents' => 123,
'functions' => 123,
'jobs' => 123,
'models' => 123,
'sandboxes' => 123
]
]),
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.blaxel.ai/v0/policies/{policyName}"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"labels\": {}\n },\n \"spec\": {\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"locations\": [\n {\n \"name\": \"EU\",\n \"type\": \"continent\"\n }\n ],\n \"maxTokens\": {\n \"granularity\": \"minute\",\n \"input\": 10000,\n \"output\": 5000,\n \"ratioInputOverOutput\": 2,\n \"step\": 1,\n \"total\": 15000\n },\n \"resourceTypes\": [],\n \"sandbox\": false,\n \"type\": \"location\"\n },\n \"usage\": {\n \"agents\": 123,\n \"functions\": 123,\n \"jobs\": 123,\n \"models\": 123,\n \"sandboxes\": 123\n }\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.blaxel.ai/v0/policies/{policyName}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"labels\": {}\n },\n \"spec\": {\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"locations\": [\n {\n \"name\": \"EU\",\n \"type\": \"continent\"\n }\n ],\n \"maxTokens\": {\n \"granularity\": \"minute\",\n \"input\": 10000,\n \"output\": 5000,\n \"ratioInputOverOutput\": 2,\n \"step\": 1,\n \"total\": 15000\n },\n \"resourceTypes\": [],\n \"sandbox\": false,\n \"type\": \"location\"\n },\n \"usage\": {\n \"agents\": 123,\n \"functions\": 123,\n \"jobs\": 123,\n \"models\": 123,\n \"sandboxes\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/policies/{policyName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"labels\": {}\n },\n \"spec\": {\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"locations\": [\n {\n \"name\": \"EU\",\n \"type\": \"continent\"\n }\n ],\n \"maxTokens\": {\n \"granularity\": \"minute\",\n \"input\": 10000,\n \"output\": 5000,\n \"ratioInputOverOutput\": 2,\n \"step\": 1,\n \"total\": 15000\n },\n \"resourceTypes\": [],\n \"sandbox\": false,\n \"type\": \"location\"\n },\n \"usage\": {\n \"agents\": 123,\n \"functions\": 123,\n \"jobs\": 123,\n \"models\": 123,\n \"sandboxes\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"locations": [
{
"name": "EU",
"type": "continent"
}
],
"maxTokens": {
"granularity": "minute",
"input": 10000,
"output": 5000,
"ratioInputOverOutput": 2,
"step": 1,
"total": 15000
},
"resourceTypes": [],
"sandbox": false,
"type": "location"
},
"usage": {
"agents": 123,
"functions": 123,
"jobs": 123,
"models": 123,
"sandboxes": 123
}
}Update governance policy
Updates a governance policy’s restrictions. Changes take effect on the next deployment of resources using this policy.
curl --request PUT \
--url https://api.blaxel.ai/v0/policies/{policyName} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"labels": {}
},
"spec": {
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"locations": [
{
"name": "EU",
"type": "continent"
}
],
"maxTokens": {
"granularity": "minute",
"input": 10000,
"output": 5000,
"ratioInputOverOutput": 2,
"step": 1,
"total": 15000
},
"resourceTypes": [],
"sandbox": false,
"type": "location"
},
"usage": {
"agents": 123,
"functions": 123,
"jobs": 123,
"models": 123,
"sandboxes": 123
}
}
'import requests
url = "https://api.blaxel.ai/v0/policies/{policyName}"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"labels": {}
},
"spec": {
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"locations": [
{
"name": "EU",
"type": "continent"
}
],
"maxTokens": {
"granularity": "minute",
"input": 10000,
"output": 5000,
"ratioInputOverOutput": 2,
"step": 1,
"total": 15000
},
"resourceTypes": [],
"sandbox": False,
"type": "location"
},
"usage": {
"agents": 123,
"functions": 123,
"jobs": 123,
"models": 123,
"sandboxes": 123
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metadata: {name: 'my-resource', displayName: 'My Resource', labels: {}},
spec: {
flavors: [{name: 't4', type: 'cpu'}],
locations: [{name: 'EU', type: 'continent'}],
maxTokens: {
granularity: 'minute',
input: 10000,
output: 5000,
ratioInputOverOutput: 2,
step: 1,
total: 15000
},
resourceTypes: [],
sandbox: false,
type: 'location'
},
usage: {agents: 123, functions: 123, jobs: 123, models: 123, sandboxes: 123}
})
};
fetch('https://api.blaxel.ai/v0/policies/{policyName}', 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.blaxel.ai/v0/policies/{policyName}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'labels' => [
]
],
'spec' => [
'flavors' => [
[
'name' => 't4',
'type' => 'cpu'
]
],
'locations' => [
[
'name' => 'EU',
'type' => 'continent'
]
],
'maxTokens' => [
'granularity' => 'minute',
'input' => 10000,
'output' => 5000,
'ratioInputOverOutput' => 2,
'step' => 1,
'total' => 15000
],
'resourceTypes' => [
],
'sandbox' => false,
'type' => 'location'
],
'usage' => [
'agents' => 123,
'functions' => 123,
'jobs' => 123,
'models' => 123,
'sandboxes' => 123
]
]),
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.blaxel.ai/v0/policies/{policyName}"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"labels\": {}\n },\n \"spec\": {\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"locations\": [\n {\n \"name\": \"EU\",\n \"type\": \"continent\"\n }\n ],\n \"maxTokens\": {\n \"granularity\": \"minute\",\n \"input\": 10000,\n \"output\": 5000,\n \"ratioInputOverOutput\": 2,\n \"step\": 1,\n \"total\": 15000\n },\n \"resourceTypes\": [],\n \"sandbox\": false,\n \"type\": \"location\"\n },\n \"usage\": {\n \"agents\": 123,\n \"functions\": 123,\n \"jobs\": 123,\n \"models\": 123,\n \"sandboxes\": 123\n }\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.blaxel.ai/v0/policies/{policyName}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"labels\": {}\n },\n \"spec\": {\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"locations\": [\n {\n \"name\": \"EU\",\n \"type\": \"continent\"\n }\n ],\n \"maxTokens\": {\n \"granularity\": \"minute\",\n \"input\": 10000,\n \"output\": 5000,\n \"ratioInputOverOutput\": 2,\n \"step\": 1,\n \"total\": 15000\n },\n \"resourceTypes\": [],\n \"sandbox\": false,\n \"type\": \"location\"\n },\n \"usage\": {\n \"agents\": 123,\n \"functions\": 123,\n \"jobs\": 123,\n \"models\": 123,\n \"sandboxes\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/policies/{policyName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"labels\": {}\n },\n \"spec\": {\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"locations\": [\n {\n \"name\": \"EU\",\n \"type\": \"continent\"\n }\n ],\n \"maxTokens\": {\n \"granularity\": \"minute\",\n \"input\": 10000,\n \"output\": 5000,\n \"ratioInputOverOutput\": 2,\n \"step\": 1,\n \"total\": 15000\n },\n \"resourceTypes\": [],\n \"sandbox\": false,\n \"type\": \"location\"\n },\n \"usage\": {\n \"agents\": 123,\n \"functions\": 123,\n \"jobs\": 123,\n \"models\": 123,\n \"sandboxes\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"locations": [
{
"name": "EU",
"type": "continent"
}
],
"maxTokens": {
"granularity": "minute",
"input": 10000,
"output": 5000,
"ratioInputOverOutput": 2,
"step": 1,
"total": 15000
},
"resourceTypes": [],
"sandbox": false,
"type": "location"
},
"usage": {
"agents": 123,
"functions": 123,
"jobs": 123,
"models": 123,
"sandboxes": 123
}
}Authorizations
OAuth2 authentication with JWT tokens
Path Parameters
Unique name identifier of the policy
Body
Rule that controls how a deployment is made and served (e.g. location restrictions)
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Policy specification
Show child attributes
Show child attributes
Per-resource counts of how many resources reference a policy. Computed by the policies listing endpoint to avoid client-side fan-out across the agents/models/functions/sandboxes/jobs listings.
Show child attributes
Show child attributes
Response
successful operation
Rule that controls how a deployment is made and served (e.g. location restrictions)
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Policy specification
Show child attributes
Show child attributes
Per-resource counts of how many resources reference a policy. Computed by the policies listing endpoint to avoid client-side fan-out across the agents/models/functions/sandboxes/jobs listings.
Show child attributes
Show child attributes
Was this page helpful?
