gproxy_protocol/aws/
models.rs1use 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}