use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DescribeAutoScalingGroupsResponse {
#[serde(default)]
pub auto_scaling_groups: Vec<AutoScalingGroup>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
impl DescribeAutoScalingGroupsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
auto_scaling_groups: vec![],
next_token: Some("test-next_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AutoScalingGroup {
pub auto_scaling_group_name: String,
#[serde(rename = "AutoScalingGroupARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub auto_scaling_group_arn: Option<String>,
#[serde(default)]
pub availability_zones: Vec<String>,
pub desired_capacity: i32,
pub min_size: i32,
pub max_size: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_template: Option<LaunchTemplateSpecification>,
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_configuration_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mixed_instances_policy: Option<MixedInstancesPolicy>,
}
impl AutoScalingGroup {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
auto_scaling_group_name: "test-auto_scaling_group_name".into(),
auto_scaling_group_arn: Some("test-auto_scaling_group_arn".into()),
availability_zones: vec![],
desired_capacity: 100,
min_size: 100,
max_size: 100,
launch_template: Some(LaunchTemplateSpecification::fixture()),
launch_configuration_name: Some("test-launch_configuration_name".into()),
mixed_instances_policy: Some(MixedInstancesPolicy::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LaunchTemplateSpecification {
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_template_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_template_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl LaunchTemplateSpecification {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
launch_template_id: Some("test-launch_template_id".into()),
launch_template_name: Some("test-launch_template_name".into()),
version: Some("test-version".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct MixedInstancesPolicy {
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_template: Option<LaunchTemplate>,
}
impl MixedInstancesPolicy {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
launch_template: Some(LaunchTemplate::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LaunchTemplate {
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_template_specification: Option<LaunchTemplateSpecification>,
}
impl LaunchTemplate {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
launch_template_specification: Some(LaunchTemplateSpecification::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DescribeLaunchConfigurationsResponse {
#[serde(default)]
pub launch_configurations: Vec<LaunchConfiguration>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
impl DescribeLaunchConfigurationsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
launch_configurations: vec![],
next_token: Some("test-next_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LaunchConfiguration {
pub launch_configuration_name: String,
pub image_id: String,
pub instance_type: String,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub security_groups: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub associate_public_ip_address: Option<bool>,
}
impl LaunchConfiguration {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
launch_configuration_name: "test-launch_configuration_name".into(),
image_id: "test-image_id".into(),
instance_type: "test-instance_type".into(),
security_groups: vec![],
associate_public_ip_address: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DescribeAutoScalingGroupsRequest {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub auto_scaling_group_names: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_records: Option<i32>,
}
impl DescribeAutoScalingGroupsRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
auto_scaling_group_names: vec![],
next_token: Some("test-next_token".into()),
max_records: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DescribeLaunchConfigurationsRequest {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub launch_configuration_names: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_records: Option<i32>,
}
impl DescribeLaunchConfigurationsRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
launch_configuration_names: vec![],
next_token: Some("test-next_token".into()),
max_records: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct UpdateAutoScalingGroupRequest {
pub auto_scaling_group_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_template: Option<LaunchTemplateSpecification>,
#[serde(skip_serializing_if = "Option::is_none")]
pub desired_capacity: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub min_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_size: Option<i32>,
}
impl UpdateAutoScalingGroupRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
auto_scaling_group_name: "test-auto_scaling_group_name".into(),
launch_template: Some(LaunchTemplateSpecification::fixture()),
desired_capacity: Some(100),
min_size: Some(100),
max_size: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct StartInstanceRefreshRequest {
pub auto_scaling_group_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub strategy: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preferences: Option<RefreshPreferences>,
}
impl StartInstanceRefreshRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
auto_scaling_group_name: "test-auto_scaling_group_name".into(),
strategy: Some("test-strategy".into()),
preferences: Some(RefreshPreferences::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct RefreshPreferences {
#[serde(skip_serializing_if = "Option::is_none")]
pub min_healthy_percentage: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_warmup: Option<i32>,
}
impl RefreshPreferences {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
min_healthy_percentage: Some(100),
instance_warmup: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct StartInstanceRefreshResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_refresh_id: Option<String>,
}
impl StartInstanceRefreshResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
instance_refresh_id: Some("test-instance_refresh_id".into()),
}
}
}