Skip to main content

gproxy_protocol/aws/
models.rs

1use serde::{Deserialize, Serialize};
2
3use super::{
4    CustomizationType, FoundationModelLifecycleStatus, InferenceType, ModelModality, Rest,
5};
6
7#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9#[derive(gproxy_protocol_macros::WireBuilder)]
10#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
11pub struct ListFoundationModelsRequest {
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub by_customization_type: Option<CustomizationType>,
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub by_inference_type: Option<InferenceType>,
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub by_output_modality: Option<ModelModality>,
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub by_provider: Option<String>,
20    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
21    pub rest: Rest,
22}
23
24#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
25#[serde(rename_all = "camelCase")]
26#[derive(gproxy_protocol_macros::WireBuilder)]
27#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
28pub struct ListFoundationModelsResponse {
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub model_summaries: Option<Vec<FoundationModelSummary>>,
31    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
32    pub rest: Rest,
33}
34
35#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
36#[serde(rename_all = "camelCase")]
37#[derive(gproxy_protocol_macros::WireBuilder)]
38#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
39pub struct GetFoundationModelRequest {
40    pub model_identifier: String,
41    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
42    pub rest: Rest,
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
46#[serde(rename_all = "camelCase")]
47#[derive(gproxy_protocol_macros::WireBuilder)]
48#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
49pub struct GetFoundationModelResponse {
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub model_details: Option<FoundationModelDetails>,
52    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
53    pub rest: Rest,
54}
55
56#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
57#[serde(rename_all = "camelCase")]
58#[derive(gproxy_protocol_macros::WireBuilder)]
59#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
60pub struct FoundationModelSummary {
61    pub model_arn: String,
62    pub model_id: String,
63    #[serde(skip_serializing_if = "Option::is_none")]
64    pub model_name: Option<String>,
65    #[serde(skip_serializing_if = "Option::is_none")]
66    pub provider_name: Option<String>,
67    #[serde(skip_serializing_if = "Option::is_none")]
68    pub input_modalities: Option<Vec<ModelModality>>,
69    #[serde(skip_serializing_if = "Option::is_none")]
70    pub output_modalities: Option<Vec<ModelModality>>,
71    #[serde(skip_serializing_if = "Option::is_none")]
72    pub response_streaming_supported: Option<bool>,
73    #[serde(skip_serializing_if = "Option::is_none")]
74    pub customizations_supported: Option<Vec<CustomizationType>>,
75    #[serde(skip_serializing_if = "Option::is_none")]
76    pub inference_types_supported: Option<Vec<InferenceType>>,
77    #[serde(skip_serializing_if = "Option::is_none")]
78    pub model_lifecycle: Option<FoundationModelLifecycle>,
79    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
80    pub rest: Rest,
81}
82
83pub type FoundationModelDetails = FoundationModelSummary;
84
85#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
86#[serde(rename_all = "camelCase")]
87#[derive(gproxy_protocol_macros::WireBuilder)]
88#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
89pub struct FoundationModelLifecycle {
90    pub status: FoundationModelLifecycleStatus,
91    #[serde(skip_serializing_if = "Option::is_none")]
92    pub start_of_life_time: Option<String>,
93    #[serde(skip_serializing_if = "Option::is_none")]
94    pub end_of_life_time: Option<String>,
95    #[serde(skip_serializing_if = "Option::is_none")]
96    pub legacy_time: Option<String>,
97    #[serde(skip_serializing_if = "Option::is_none")]
98    pub public_extended_access_time: Option<String>,
99    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
100    pub rest: Rest,
101}