use serde::{Deserialize, Serialize};
use crate::types::{
AccessKey, AccessKeyLastUsed, AccessKeyMetadata, AttachedPolicy, DeletionTaskFailureReasonType,
DeletionTaskStatusType, EvaluationResult, Group, GroupDetail, InstanceProfile,
ManagedPolicyDetail, Policy, PolicyGroup, PolicyRole, PolicyUser, PolicyVersion, Role,
RoleDetail, Tag, User, UserDetail,
};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CreateAccessKeyResponse {
pub access_key: AccessKey,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CreateGroupResponse {
pub group: Group,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CreateInstanceProfileResponse {
pub instance_profile: InstanceProfile,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CreatePolicyResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub policy: Option<Policy>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CreatePolicyVersionResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_version: Option<PolicyVersion>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CreateRoleResponse {
pub role: Role,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CreateServiceLinkedRoleResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub role: Option<Role>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CreateUserResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<User>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DeleteServiceLinkedRoleResponse {
pub deletion_task_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetAccessKeyLastUsedResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub access_key_last_used: Option<AccessKeyLastUsed>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_name: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetAccountAuthorizationDetailsResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub group_detail_list: Vec<GroupDetail>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policies: Vec<ManagedPolicyDetail>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub role_detail_list: Vec<RoleDetail>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub user_detail_list: Vec<UserDetail>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetGroupPolicyResponse {
pub group_name: String,
pub policy_document: String,
pub policy_name: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetGroupResponse {
pub group: Group,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub users: Vec<User>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetInstanceProfileResponse {
pub instance_profile: InstanceProfile,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetPolicyResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub policy: Option<Policy>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetPolicyVersionResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_version: Option<PolicyVersion>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetRolePolicyResponse {
pub policy_document: String,
pub policy_name: String,
pub role_name: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetRoleResponse {
pub role: Role,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetServiceLinkedRoleDeletionStatusResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub reason: Option<DeletionTaskFailureReasonType>,
pub status: DeletionTaskStatusType,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetUserPolicyResponse {
pub policy_document: String,
pub policy_name: String,
pub user_name: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetUserResponse {
pub user: User,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListAccessKeysResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub access_key_metadata: Vec<AccessKeyMetadata>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListAttachedGroupPoliciesResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attached_policies: Vec<AttachedPolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListAttachedRolePoliciesResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attached_policies: Vec<AttachedPolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListAttachedUserPoliciesResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attached_policies: Vec<AttachedPolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListEntitiesForPolicyResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policy_groups: Vec<PolicyGroup>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policy_roles: Vec<PolicyRole>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policy_users: Vec<PolicyUser>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListGroupPoliciesResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policy_names: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListGroupsForUserResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub groups: Vec<Group>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListGroupsResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub groups: Vec<Group>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListInstanceProfilesForRoleResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub instance_profiles: Vec<InstanceProfile>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListInstanceProfilesResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub instance_profiles: Vec<InstanceProfile>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListPoliciesResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policies: Vec<Policy>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListPolicyVersionsResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub versions: Vec<PolicyVersion>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListRolePoliciesResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policy_names: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListRoleTagsResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub tags: Vec<Tag>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListRolesResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub roles: Vec<Role>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListUserPoliciesResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policy_names: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListUserTagsResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub tags: Vec<Tag>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListUsersResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub users: Vec<User>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct SimulatePolicyResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub evaluation_results: Vec<EvaluationResult>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct UpdateRoleResponse {}