Skip to main content

async_openai/types/
safety.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
4#[serde(rename_all = "snake_case")]
5pub enum SafetyAlertErrorType {
6    PotentiallyUnintendedDataTransfer,
7    PotentiallyUnintendedDataAccess,
8    PotentiallyUnintendedDestructiveActivity,
9    Other,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
13pub struct SafetyAlertResource {
14    pub id: String,
15    pub object: String,
16    pub created_at: u64,
17    pub request_id: String,
18    pub response_id: String,
19    pub model: String,
20    /// Whether block registration succeeded for this request. This does not confirm that response execution
21    /// stopped.
22    pub request_paused: bool,
23    pub error_type: SafetyAlertErrorType,
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub reason: Option<String>,
26    /// Public explanation of the safety alert.
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub detailed_explanation: Option<String>,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
32pub struct SafetyCaseResource {
33    pub id: String,
34    pub object: String,
35    pub created_at: u64,
36    pub entity_identifier: String,
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub reason: Option<String>,
39    pub notice: SafetyCaseNotice,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
43pub struct SafetyCaseNotice {
44    pub r#type: SafetyCaseNoticeType,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
48#[serde(rename_all = "snake_case")]
49pub enum SafetyCaseNoticeType {
50    Warning,
51    Deactivation,
52}