@SuppressWarnings("deprecation")
    public static String resolveActionName(OperationShape operation) {
        return operation.getTrait(IamActionTrait.class)
                .flatMap(IamActionTrait::getName)
                .orElseGet(() -> operation.getTrait(ActionNameTrait.class)
                        .map(ActionNameTrait::getValue)
                        .orElseGet(() -> operation.getId().getName()));
    }
Resolves the IAM action name for the given operation. Uses the following
resolution order:

<ol>
    <li>Value of the {@code @iamAction} trait's {@code name} property</li>
    <li>Value of the {@code @actionName} trait</li>
    <li>The operation's name</li>
</ol>

@param operation the operation to resolve a name for.
@return The resolved action name.
smithy-aws-iam-traits/src/main/java/software/amazon/smithy/aws/iam/traits/IamActionTrait.java