use super::*;
pub(crate) fn is_read_only_action(action: &str) -> bool {
matches!(
action,
"GetParameter"
| "GetParameters"
| "GetParametersByPath"
| "DescribeParameters"
| "GetParameterHistory"
| "ListTagsForResource"
| "GetDocument"
| "DescribeDocument"
| "ListDocuments"
| "DescribeDocumentPermission"
| "ListCommands"
| "GetCommandInvocation"
| "ListCommandInvocations"
| "DescribeMaintenanceWindows"
| "GetMaintenanceWindow"
| "DescribeMaintenanceWindowTargets"
| "DescribeMaintenanceWindowTasks"
| "DescribePatchBaselines"
| "GetPatchBaseline"
| "GetPatchBaselineForPatchGroup"
| "DescribePatchGroups"
| "DescribeAssociation"
| "ListAssociations"
| "ListAssociationVersions"
| "DescribeAssociationExecutions"
| "DescribeAssociationExecutionTargets"
| "GetOpsItem"
| "DescribeOpsItems"
| "ListDocumentVersions"
| "ListDocumentMetadataHistory"
| "GetResourcePolicies"
| "GetInventory"
| "GetInventorySchema"
| "ListInventoryEntries"
| "DescribeInventoryDeletions"
| "ListComplianceItems"
| "ListComplianceSummaries"
| "ListResourceComplianceSummaries"
| "GetMaintenanceWindowTask"
| "GetMaintenanceWindowExecution"
| "GetMaintenanceWindowExecutionTask"
| "GetMaintenanceWindowExecutionTaskInvocation"
| "DescribeMaintenanceWindowExecutions"
| "DescribeMaintenanceWindowExecutionTasks"
| "DescribeMaintenanceWindowExecutionTaskInvocations"
| "DescribeMaintenanceWindowSchedule"
| "DescribeMaintenanceWindowsForTarget"
| "DescribeInstancePatchStates"
| "DescribeInstancePatchStatesForPatchGroup"
| "DescribeInstancePatches"
| "DescribeEffectivePatchesForPatchBaseline"
| "GetDeployablePatchSnapshotForInstance"
| "ListResourceDataSync"
| "ListOpsItemRelatedItems"
| "ListOpsItemEvents"
| "GetOpsMetadata"
| "ListOpsMetadata"
| "GetOpsSummary"
| "GetAutomationExecution"
| "DescribeAutomationExecutions"
| "DescribeAutomationStepExecutions"
| "GetExecutionPreview"
| "DescribeSessions"
| "GetAccessToken"
| "DescribeActivations"
| "DescribeInstanceInformation"
| "DescribeInstanceProperties"
| "ListNodes"
| "ListNodesSummary"
| "DescribeEffectiveInstanceAssociations"
| "DescribeInstanceAssociationsStatus"
| "GetConnectionStatus"
| "GetCalendarState"
| "DescribePatchGroupState"
| "DescribePatchProperties"
| "DescribeAvailablePatches"
| "GetDefaultPatchBaseline"
| "GetServiceSetting"
)
}
pub(crate) fn missing(name: &str) -> AwsServiceError {
AwsServiceError::aws_error(
StatusCode::BAD_REQUEST,
"ValidationException",
format!("The request must contain the parameter {name}"),
)
}
pub(crate) fn missing_with_code(name: &str, code: &str) -> AwsServiceError {
AwsServiceError::aws_error(
StatusCode::BAD_REQUEST,
code,
format!("The request must contain the parameter {name}"),
)
}
pub(crate) fn aws_400(code: &str, msg: impl Into<String>) -> AwsServiceError {
AwsServiceError::aws_error(StatusCode::BAD_REQUEST, code, msg.into())
}
pub(crate) fn remap_validation_to(err: AwsServiceError, target: &str) -> AwsServiceError {
if err.code() == "ValidationException" {
AwsServiceError::aws_error(StatusCode::BAD_REQUEST, target, err.message())
} else {
err
}
}