gproxy_protocol/aws/converse/
request.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use crate::aws::Rest;
5
6use super::{
7 GuardrailConfiguration, GuardrailStreamConfiguration, InferenceConfiguration, Message,
8 OutputConfig, PerformanceConfiguration, PromptVariables, RequestMetadata, ServiceTier,
9 SystemContentBlock, ToolConfiguration,
10};
11
12#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
13#[serde(rename_all = "camelCase")]
14#[derive(gproxy_protocol_macros::WireBuilder)]
15#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
16pub struct ConverseRequest {
17 #[serde(skip_serializing_if = "Option::is_none")]
20 pub additional_model_request_fields: Option<Value>,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub additional_model_response_field_paths: Option<Vec<String>>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub guardrail_config: Option<GuardrailConfiguration>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub inference_config: Option<InferenceConfiguration>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub messages: Option<Vec<Message>>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub output_config: Option<OutputConfig>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub performance_config: Option<PerformanceConfiguration>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub prompt_variables: Option<PromptVariables>,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub request_metadata: Option<RequestMetadata>,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub service_tier: Option<ServiceTier>,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub system: Option<Vec<SystemContentBlock>>,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub tool_config: Option<ToolConfiguration>,
43 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
44 pub rest: Rest,
45}
46
47#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
48#[serde(rename_all = "camelCase")]
49#[derive(gproxy_protocol_macros::WireBuilder)]
50#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
51pub struct ConverseStreamRequest {
52 #[serde(skip_serializing_if = "Option::is_none")]
55 pub additional_model_request_fields: Option<Value>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub additional_model_response_field_paths: Option<Vec<String>>,
58 #[serde(skip_serializing_if = "Option::is_none")]
59 pub guardrail_config: Option<GuardrailStreamConfiguration>,
60 #[serde(skip_serializing_if = "Option::is_none")]
61 pub inference_config: Option<InferenceConfiguration>,
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub messages: Option<Vec<Message>>,
64 #[serde(skip_serializing_if = "Option::is_none")]
65 pub output_config: Option<OutputConfig>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub performance_config: Option<PerformanceConfiguration>,
68 #[serde(skip_serializing_if = "Option::is_none")]
69 pub prompt_variables: Option<PromptVariables>,
70 #[serde(skip_serializing_if = "Option::is_none")]
71 pub request_metadata: Option<RequestMetadata>,
72 #[serde(skip_serializing_if = "Option::is_none")]
73 pub service_tier: Option<ServiceTier>,
74 #[serde(skip_serializing_if = "Option::is_none")]
75 pub system: Option<Vec<SystemContentBlock>>,
76 #[serde(skip_serializing_if = "Option::is_none")]
77 pub tool_config: Option<ToolConfiguration>,
78 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
79 pub rest: Rest,
80}