Skip to main content

vantage_aws/models/lambda/
alias.rs

1use serde::{Deserialize, Serialize};
2use vantage_table::table::Table;
3
4use crate::AwsAccount;
5
6/// One Lambda alias from `ListAliases`. Field names match the wire
7/// JSON; v0 surfaces them flat.
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct Alias {
10    #[serde(rename = "Name")]
11    pub name: String,
12    #[serde(rename = "AliasArn", default)]
13    pub alias_arn: String,
14    #[serde(rename = "FunctionVersion", default)]
15    pub function_version: String,
16    #[serde(rename = "Description", default)]
17    pub description: String,
18    #[serde(rename = "RevisionId", default)]
19    pub revision_id: String,
20}
21
22/// `ListAliases` table. Requires `eq("FunctionName", "...")` — without
23/// it the `{FunctionName}` path placeholder errors at request-build
24/// time. Used as the `aliases` relation on [`super::function::Function`].
25pub fn aliases_table(aws: AwsAccount) -> Table<AwsAccount, Alias> {
26    Table::new(
27        "restjson/Aliases:lambda/GET /2015-03-31/functions/{FunctionName}/aliases",
28        aws,
29    )
30    .with_id_column("Name")
31    .with_title_column_of::<String>("FunctionVersion")
32    .with_column_of::<String>("AliasArn")
33    .with_column_of::<String>("Description")
34    .with_column_of::<String>("RevisionId")
35}