@SuppressWarnings("deprecation")
    public static List<String> resolveRequiredActions(OperationShape operation) {
        return operation.getTrait(IamActionTrait.class)
                .map(IamActionTrait::getRequiredActions)
                .filter(FunctionalUtils.not(List::isEmpty))
                .orElseGet(() -> operation.getTrait(RequiredActionsTrait.class)
                        .map(RequiredActionsTrait::getValues)
                        .orElse(ListUtils.of()));
    }
Resolves the IAM action required actions for the given operation. Uses the following
resolution order:

<ol>
    <li>Value of the {@code @iamAction} trait's {@code requiredActions} property</li>
    <li>Value of the {@code @requiredActions} trait</li>
    <li>An empty list.</li>
</ol>

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