use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DescribeClusterRequest {
pub name: String,
}
impl DescribeClusterRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-describe_cluster_request".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DescribeClusterResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub cluster: Option<Cluster>,
}
impl DescribeClusterResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
cluster: Some(Cluster::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Cluster {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub role_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resources_vpc_config: Option<VpcConfigResponse>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_version: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub tags: HashMap<String, String>,
}
impl Cluster {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-cluster".into()),
arn: Some("test-arn".into()),
version: Some("test-version".into()),
endpoint: Some("test-endpoint".into()),
role_arn: Some("test-role_arn".into()),
resources_vpc_config: Some(VpcConfigResponse::fixture()),
status: Some("test-status".into()),
platform_version: Some("test-platform_version".into()),
tags: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VpcConfigResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub subnet_ids: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub security_group_ids: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cluster_security_group_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vpc_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoint_public_access: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoint_private_access: Option<bool>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub public_access_cidrs: Vec<String>,
}
impl VpcConfigResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
subnet_ids: vec![],
security_group_ids: vec![],
cluster_security_group_id: Some("test-cluster_security_group_id".into()),
vpc_id: Some("test-vpc_id".into()),
endpoint_public_access: Some(false),
endpoint_private_access: Some(false),
public_access_cidrs: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListNodegroupsRequest {
pub cluster_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
impl ListNodegroupsRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
cluster_name: "test-cluster_name".into(),
max_results: Some(100),
next_token: Some("test-next_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListNodegroupsResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub nodegroups: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
impl ListNodegroupsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
nodegroups: vec![],
next_token: Some("test-next_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DescribeNodegroupRequest {
pub cluster_name: String,
pub nodegroup_name: String,
}
impl DescribeNodegroupRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
cluster_name: "test-cluster_name".into(),
nodegroup_name: "test-nodegroup_name".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DescribeNodegroupResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub nodegroup: Option<Nodegroup>,
}
impl DescribeNodegroupResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
nodegroup: Some(Nodegroup::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Nodegroup {
#[serde(skip_serializing_if = "Option::is_none")]
pub nodegroup_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nodegroup_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cluster_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub release_version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub capacity_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scaling_config: Option<NodegroupScalingConfig>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub instance_types: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub subnets: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ami_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub node_role: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disk_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub health: Option<NodegroupHealth>,
#[serde(skip_serializing_if = "Option::is_none")]
pub update_config: Option<NodegroupUpdateConfig>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub tags: HashMap<String, String>,
}
impl Nodegroup {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
nodegroup_name: Some("test-nodegroup_name".into()),
nodegroup_arn: Some("test-nodegroup_arn".into()),
cluster_name: Some("test-cluster_name".into()),
version: Some("test-version".into()),
release_version: Some("test-release_version".into()),
status: Some("test-status".into()),
capacity_type: Some("test-capacity_type".into()),
scaling_config: Some(NodegroupScalingConfig::fixture()),
instance_types: vec![],
subnets: vec![],
ami_type: Some("test-ami_type".into()),
node_role: Some("test-node_role".into()),
labels: Default::default(),
disk_size: Some(100),
health: Some(NodegroupHealth::fixture()),
update_config: Some(NodegroupUpdateConfig::fixture()),
tags: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NodegroupScalingConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub min_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub desired_size: Option<i32>,
}
impl NodegroupScalingConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
min_size: Some(100),
max_size: Some(100),
desired_size: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NodegroupUpdateConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub max_unavailable: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_unavailable_percentage: Option<i32>,
}
impl NodegroupUpdateConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
max_unavailable: Some(100),
max_unavailable_percentage: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NodegroupHealth {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub issues: Vec<Issue>,
}
impl NodegroupHealth {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { issues: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Issue {
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub resource_ids: Vec<String>,
}
impl Issue {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
code: Some("test-code".into()),
message: Some("test-message".into()),
resource_ids: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateNodegroupConfigRequest {
pub cluster_name: String,
pub nodegroup_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub scaling_config: Option<NodegroupScalingConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub update_config: Option<NodegroupUpdateConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub client_request_token: Option<String>,
}
impl UpdateNodegroupConfigRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
cluster_name: "test-cluster_name".into(),
nodegroup_name: "test-nodegroup_name".into(),
scaling_config: Some(NodegroupScalingConfig::fixture()),
update_config: Some(NodegroupUpdateConfig::fixture()),
client_request_token: Some("test-client_request_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateNodegroupConfigResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub update: Option<Update>,
}
impl UpdateNodegroupConfigResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
update: Some(Update::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Update {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub errors: Vec<ErrorDetail>,
}
impl Update {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
status: Some("test-status".into()),
r#type: Some("test-type".into()),
errors: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ErrorDetail {
#[serde(skip_serializing_if = "Option::is_none")]
pub error_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error_message: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub resource_ids: Vec<String>,
}
impl ErrorDetail {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
error_code: Some("test-error_code".into()),
error_message: Some("test-error_message".into()),
resource_ids: vec![],
}
}
}