simulate_policy_group_placement
POST
/api/v1/admin/policy-groups/{id}/simulate
const url = 'https://example.com/api/v1/admin/policy-groups/1/simulate';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"file_size":1,"filename":"example","folder_policy_id":1,"mime_type":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use serde_json::json;use reqwest;
#[tokio::main]pub async fn main() { let url = "https://example.com/api/v1/admin/policy-groups/1/simulate";
let payload = json!({ "file_size": 1, "filename": "example", "folder_policy_id": 1, "mime_type": "example" });
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap()); headers.insert("Content-Type", "application/json".parse().unwrap());
let client = reqwest::Client::new(); let response = client.post(url) .headers(headers) .json(&payload) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request POST \ --url https://example.com/api/v1/admin/policy-groups/1/simulate \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "file_size": 1, "filename": "example", "folder_policy_id": 1, "mime_type": "example" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
integer format: int64
Placement profile ID
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
file_size
required
integer format: int64
filename
required
string
folder_policy_id
integer | null format: int64
mime_type
string
Examplegenerated
{ "file_size": 1, "filename": "example", "folder_policy_id": 1, "mime_type": "example"}Responses
Section titled “Responses”Placement simulation result
Media typeapplication/json
统一 API 响应格式
成功: { "code": "success", "msg": "", "data": {...} }
失败: { "code": "auth.credentials_failed", "msg": "Invalid Credentials" }
object
code
required
string
data
object
admitted
required
boolean
classification
required
object
category
required
High-level file category inferred from extension and MIME type.
string
compound_extension
string | null
extension
required
string
file_size
required
integer format: int64
filename
required
string
decision
One of:
null
object
evaluated_rules
required
Array<object>
object
matched
required
boolean
reason_code
string | null
rule_id
required
integer format: int64
excluded_targets
required
Array<array>
execution_preference
required
string
folder_override
required
boolean
policy_id
required
integer format: int64
profile_id
required
integer format: int64
revision
required
integer format: int64
rule_id
integer | null format: int64
selection_mode
required
string
evaluated_rules
required
Array<object>
object
matched
required
boolean
reason_code
string | null
rule_id
required
integer format: int64
excluded_targets
required
Array<array>
rejection_code
string | null
error
One of:
null
object
diagnostic
One of:
null
object
field
Connector-owned field that caused a configuration validation failure.
This is intentionally optional so existing diagnostics remain wire-compatible.
string | null
kind
required
string
message
required
string
scope
Connector field scope, for example connector_config or static_credential.
string | null
retryable
required
boolean
msg
required
string
Example
{ "code": "success", "data": { "classification": { "category": "image" }, "decision": { "execution_preference": "automatic", "selection_mode": "first_available" } }}Invalid simulation input
Unauthorized
Forbidden
Placement profile not found