Skip to main content

gproxy_protocol/aws/converse/
request.rs

1use 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    /// `upstream_docs/aws/docs/Converse.md`, `additionalModelRequestFields`:
18    /// model-specific parameters documented as a JSON value.
19    #[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    /// `upstream_docs/aws/docs/ConverseStream.md`, `additionalModelRequestFields`:
53    /// model-specific parameters documented as a JSON value.
54    #[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}