[
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "142ab3b5-7598-67c4-b04e-bf097c0a6430",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 43,
                "LineNumber": 648
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "cw-agent-install",
                "commands",
                "01-get-cloudwatch-agent",
                "command",
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 41,
                "LineNumber": 648
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "90beea87-7057-e4c3-2a11-47d00ec9e2f3",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 43,
                "LineNumber": 663
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "cw-agent-install",
                "commands",
                "02-extract-cloudwatch-agent",
                "command",
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 41,
                "LineNumber": 663
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "bd645f36-15d1-804d-91f2-5f2b3b3a120f",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 43,
                "LineNumber": 674
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "cw-agent-install",
                "commands",
                "10-install-cloudwatch-agent",
                "command",
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 41,
                "LineNumber": 674
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "5300fc5a-813d-2b88-0e39-bd022d39dd7f",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 817
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "finalize",
                "commands",
                "10-signal-success",
                "command",
                "Fn::Join",
                1,
                4,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 817
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "7341da27-2723-c327-f0a1-cf77da11dbcb",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 834
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "finalize",
                "commands",
                "10-signal-success",
                "command",
                "Fn::Join",
                1,
                5,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 834
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "39e8dba8-8b96-e097-241c-d664dcbb99d6",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 43,
                "LineNumber": 870
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "make-app",
                "commands",
                "05-get-appscript",
                "command",
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 41,
                "LineNumber": 870
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "507a47cb-2778-078d-1e30-30be85ea1ddc",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 43,
                "LineNumber": 888
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "make-app",
                "commands",
                "10-make-app",
                "command",
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 41,
                "LineNumber": 888
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "332a83bb-db89-cef2-2212-3db4e0b674f8",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 933
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "setup",
                "files",
                "/etc/cfn/cfn-hup.conf",
                "content",
                "Fn::Join",
                1,
                7,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 933
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "3241828a-ce44-bd2b-5713-1eb47b9eb9a1",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 951
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "setup",
                "files",
                "/etc/cfn/cfn-hup.conf",
                "content",
                "Fn::Join",
                1,
                8,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 951
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "a4d4d42d-281a-4c2d-460c-5128c17e51f1",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 994
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "setup",
                "files",
                "/etc/cfn/hooks.d/cfn-auto-reloader.conf",
                "content",
                "Fn::Join",
                1,
                7,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 994
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "271ea17c-7cc1-9b54-dac2-949903b0b1b3",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1011
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "setup",
                "files",
                "/etc/cfn/hooks.d/cfn-auto-reloader.conf",
                "content",
                "Fn::Join",
                1,
                8,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1011
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "40150adb-d3ab-4d11-11b5-86c8b47123e9",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 43,
                "LineNumber": 1039
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "setup",
                "files",
                "/etc/cfn/scripts/watchmaker-install.sh",
                "content",
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 41,
                "LineNumber": 1039
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "dff88617-695b-afdd-7820-b67de00eae0e",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1102
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-launch",
                "commands",
                "10-watchmaker-launch",
                "command",
                "Fn::Join",
                1,
                3,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1102
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "e2ac8723-4f5b-a39b-d576-de59fd54d781",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1120
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-launch",
                "commands",
                "10-watchmaker-launch",
                "command",
                "Fn::Join",
                1,
                4,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1120
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "ce0ab7da-4d72-f0b3-fb23-9ed6684f39b3",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1138
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-launch",
                "commands",
                "10-watchmaker-launch",
                "command",
                "Fn::Join",
                1,
                5,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1138
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "4abe5da3-0d0a-aa03-47e8-73e00194b475",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1156
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-launch",
                "commands",
                "10-watchmaker-launch",
                "command",
                "Fn::Join",
                1,
                6,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1156
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "0987a8a7-4de0-276b-71bc-3ca7d52eb439",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1174
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-launch",
                "commands",
                "10-watchmaker-launch",
                "command",
                "Fn::Join",
                1,
                7,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1174
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "7d5e56ab-d43b-4dd5-7d0f-cc3a95b1a7d5",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1192
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-launch",
                "commands",
                "10-watchmaker-launch",
                "command",
                "Fn::Join",
                1,
                8,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1192
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "df2c2492-f6e9-38cf-3de9-771a126963e8",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1227
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-update",
                "commands",
                "10-watchmaker-update",
                "command",
                "Fn::Join",
                1,
                4,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1227
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "be4f1c27-15fd-2781-30ed-706144c5b82f",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1245
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-update",
                "commands",
                "10-watchmaker-update",
                "command",
                "Fn::Join",
                1,
                5,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1245
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "3fd9c40c-3af2-35ca-dc1d-92293cc46f58",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1263
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-update",
                "commands",
                "10-watchmaker-update",
                "command",
                "Fn::Join",
                1,
                6,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1263
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "5b7ba837-9c3a-fc8f-7149-75a70c88526f",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1281
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-update",
                "commands",
                "10-watchmaker-update",
                "command",
                "Fn::Join",
                1,
                7,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1281
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "9794b703-5ac4-4b53-1da3-c905ef347242",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1299
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-update",
                "commands",
                "10-watchmaker-update",
                "command",
                "Fn::Join",
                1,
                8,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1299
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "6be7447d-edcf-bebf-73bb-1a9efd7db922",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 63,
                "LineNumber": 1317
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Metadata",
                "AWS::CloudFormation::Init",
                "watchmaker-update",
                "commands",
                "10-watchmaker-update",
                "command",
                "Fn::Join",
                1,
                9,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 61,
                "LineNumber": 1317
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "913a07a4-0962-ced6-de7c-a1e4b678ecc9",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 35,
                "LineNumber": 1441
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Properties",
                "Tags",
                0,
                "Value",
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 33,
                "LineNumber": 1441
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "1307c1f5-3913-f39f-8d59-858ff8c5715a",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 51,
                "LineNumber": 1597
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Properties",
                "UserData",
                "Fn::Base64",
                "Fn::Join",
                1,
                88,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 49,
                "LineNumber": 1597
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "162b7a0f-7266-1405-7daf-45230774ea3c",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 51,
                "LineNumber": 1614
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Properties",
                "UserData",
                "Fn::Base64",
                "Fn::Join",
                1,
                89,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 49,
                "LineNumber": 1614
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "ff54e76c-3840-3687-fc3e-21e528eef226",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 51,
                "LineNumber": 1643
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Properties",
                "UserData",
                "Fn::Base64",
                "Fn::Join",
                1,
                98,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 49,
                "LineNumber": 1643
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "0d4115ce-b83e-9644-f36b-247e509c27c9",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 51,
                "LineNumber": 1660
            },
            "Path": [
                "Resources",
                "WatchmakerInstance",
                "Properties",
                "UserData",
                "Fn::Base64",
                "Fn::Join",
                1,
                99,
                "Fn::If",
                1,
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 49,
                "LineNumber": 1660
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "ec47a12b-0098-0a68-b12a-1a22ad4368c4",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 37,
                "LineNumber": 1687
            },
            "Path": [
                "Resources",
                "WatchmakerInstanceLogGroup"
            ],
            "Start": {
                "ColumnNumber": 9,
                "LineNumber": 1687
            }
        },
        "Message": "'DeletionPolicy' is a required property (The default action when replacing/removing a resource is to delete it. Set explicit values for stateful resource)",
        "ParentId": null,
        "Rule": {
            "Description": "The default action when replacing/removing a resource is to delete it. This check requires you to explicitly set policies",
            "Id": "I3011",
            "ShortDescription": "Check stateful resources have a set UpdateReplacePolicy/DeletionPolicy",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "1c4f0346-bb07-7736-f6ef-f42c154013dd",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 37,
                "LineNumber": 1687
            },
            "Path": [
                "Resources",
                "WatchmakerInstanceLogGroup"
            ],
            "Start": {
                "ColumnNumber": 9,
                "LineNumber": 1687
            }
        },
        "Message": "'UpdateReplacePolicy' is a required property (The default action when replacing/removing a resource is to delete it. Set explicit values for stateful resource)",
        "ParentId": null,
        "Rule": {
            "Description": "The default action when replacing/removing a resource is to delete it. This check requires you to explicitly set policies",
            "Id": "I3011",
            "ShortDescription": "Check stateful resources have a set UpdateReplacePolicy/DeletionPolicy",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html"
        }
    },
    {
        "Filename": "test/fixtures/templates/public/watchmaker.json",
        "Id": "3181af09-2a64-9083-5c52-fcafe5a07324",
        "Level": "Informational",
        "Location": {
            "End": {
                "ColumnNumber": 27,
                "LineNumber": 1692
            },
            "Path": [
                "Resources",
                "WatchmakerInstanceLogGroup",
                "Properties",
                "LogGroupName",
                "Fn::Join",
                0
            ],
            "Start": {
                "ColumnNumber": 25,
                "LineNumber": 1692
            }
        },
        "Message": "Prefer using Fn::Sub over Fn::Join with an empty delimiter",
        "ParentId": null,
        "Rule": {
            "Description": "Prefer a sub instead of Join when using a join delimiter that is empty",
            "Id": "I1022",
            "ShortDescription": "Use Sub instead of Join",
            "Source": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html"
        }
    }
]
