static Set<String> getPermissionsEntriesForOperation(Model model, ServiceShape service, ShapeId operationId) {
        OperationShape operation = model.expectShape(operationId, OperationShape.class);
        Set<String> permissionsEntries = new TreeSet<>();

        // Add the operation's permission name itself.
        String operationActionName =
                service.getTrait(ServiceTrait.class)
                        .map(ServiceTrait::getArnNamespace)
                        .orElse(service.getId().getName())
                        .toLowerCase(Locale.US);
        operationActionName += ":" + operationId.getName(service);
        permissionsEntries.add(operationActionName);

        // Add all the other required actions for the operation.
        permissionsEntries.addAll(IamActionTrait.resolveRequiredActions(operation));
        return permissionsEntries;
    }
Generates the resource's handler permissions list based on the lifecycle operation
used and any permissions listed in the {@code aws.iam#requiredActions} trait.

@see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-handlers">handlers Docs</a>
smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/fromsmithy/mappers/HandlerPermissionMapper.java