def get_subscription_definition()

in groups/group_setup.py [0:0]


    def get_subscription_definition(self, config):
        """
        Get the Master Group Type's subscription definition

        :param config: gg_group_setup.GroupConfigFile used with the Group Type
        :return: the subscription definition used to provision the group
        """
        cfg = config
        d = cfg['devices']
        l = cfg['lambda_functions']
        s = cfg['subscriptions']

        definition = [
            {  # from Master belt device to MasterErrorDetector Lambda
                "Id": "5",
                "Source": d[self.belt_ggd_name]['thing_arn'],
                "Subject": s['telemetry'],
                "Target": l['MasterErrorDetector']['arn']
            },
            {  # from Master belt device to web device
                "Id": "10",
                "Source": d[self.belt_ggd_name]['thing_arn'],
                "Subject": s['all'],
                "Target": d[self.web_ggd_name]['thing_arn']
            },
            {  # from Master belt device to MasterBrain Lambda
                "Id": "11",
                "Source": d[self.belt_ggd_name]['thing_arn'],
                "Subject": s['stages'],
                "Target": l['MasterBrain']['arn']
            },
            {  # from MasterErrorDetector to MasterBrain Lambda
                "Id": "12",
                "Source": l['MasterErrorDetector']['arn'],
                "Subject": s['errors'],
                "Target": l['MasterBrain']['arn']
            },
            {  # from MasterErrorDetector to AWS cloud
                "Id": "13",
                "Source": l['MasterErrorDetector']['arn'],
                "Subject": s['errors'],
                "Target": "cloud"
            },
            {  # from Master belt device to AWS cloud
                "Id": "15",
                "Source": d[self.belt_ggd_name]['thing_arn'],
                "Subject": s['stages'],
                "Target": "cloud"
            },
            {  # from Master web device to Greengrass Core local shadow
                "Id": "16",
                "Source": d[self.web_ggd_name]['thing_arn'],
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get",
                "Target": "GGShadowService"
            },
            {  # from Greengrass Core local shadow to Master web device
                "Id": "17",
                "Source": "GGShadowService",
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get/#",
                "Target": d[self.web_ggd_name]['thing_arn']
            },
            {  # from Master bridge device to Master web device
                "Id": "18",
                "Source": d[self.bridge_ggd_name]['thing_arn'],
                "Subject": "sort/arm/#",
                "Target": d[self.web_ggd_name]['thing_arn']
            },
            {  # from Master bridge device to MasterBrain Lambda
                "Id": "19",
                "Source": d[self.bridge_ggd_name]['thing_arn'],
                "Subject": "sort/arm/stages",
                "Target": l['MasterBrain']['arn']
            },
            {  # from Master bridge device to MasterBrain Lambda
                "Id": "20",
                "Source": d[self.bridge_ggd_name]['thing_arn'],
                "Subject": "sort/arm/errors",
                "Target": l['MasterBrain']['arn']
            },
            {  # from Master bridge device to MasterBrain Lambda, stages topic
                "Id": "21",
                "Source": d[self.bridge_ggd_name]['thing_arn'],
                "Subject": "inv/arm/stages",
                "Target": l['MasterBrain']['arn']
            },
            {  # from Master bridge device to MasterBrain Lambda, errors topic
                "Id": "22",
                "Source": d[self.bridge_ggd_name]['thing_arn'],
                "Subject": "inv/arm/errors",
                "Target": l['MasterBrain']['arn']
            },
            {  # from Master bridge device to Master web device, all topics
                "Id": "23",
                "Source": d[self.bridge_ggd_name]['thing_arn'],
                "Subject": "inv/arm/#",
                "Target": d[self.web_ggd_name]['thing_arn']
            },
            {  # from Master belt device to Greengrass Core local shadow, get
                "Id": "31",
                "Source": d[self.belt_ggd_name]['thing_arn'],
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get",
                "Target": "GGShadowService"
            },
            {  # from Greengrass Core local shadow to Master belt device, get
                "Id": "32",
                "Source": "GGShadowService",
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get/#",
                "Target": d[self.belt_ggd_name]['thing_arn']
            },
            {  # from Master belt device to Greengrass Core local shadow, update
                "Id": "34",
                "Source": d[self.belt_ggd_name]['thing_arn'],
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update",
                "Target": "GGShadowService"
            },
            {  # from Greengrass Core local shadow to Master belt device, update
                "Id": "35",
                "Source": "GGShadowService",
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update/#",
                "Target": d[self.belt_ggd_name]['thing_arn']
            },
            {  # from InvArm arm device to Master Greengrass Core local shadow
                "Id": "84",
                "Source": d[self.inv_arm_ggd_name]['thing_arn'],  # GGD matches ArmType
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get",
                "Target": "GGShadowService"
            },
            {  # from Master Greengrass Core local shadow to InvArm arm device
                "Id": "85",
                "Source": "GGShadowService",
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get/#",
                "Target": d[self.inv_arm_ggd_name]['thing_arn']  # GGD matches ArmType
            },
            {  # from InvArm arm device to Master Greengrass Core local shadow
                "Id": "86",
                "Source": d[self.inv_arm_ggd_name]['thing_arn'],  # GGD matches ArmType
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update",
                "Target": "GGShadowService"
            },
            {  # from Master Greengrass Core local shadow to InvArm arm device
                "Id": "87",
                "Source": "GGShadowService",
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update/#",
                "Target": d[self.inv_arm_ggd_name]['thing_arn']  # GGD matches ArmType
            },
            {  # from SortArm arm device to Master Greengrass Core local shadow
                "Id": "92",
                "Source": d[self.sort_arm_ggd_name]['thing_arn'],  # GGD matches ArmType
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get",
                "Target": "GGShadowService"
            },
            {  # from Master Greengrass Core local shadow to SortArm arm device
                "Id": "93",
                "Source": "GGShadowService",
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get/#",
                "Target": d[self.sort_arm_ggd_name]['thing_arn']  # GGD matches ArmType
            },
            {  # from SortArm arm device to Master Greengrass Core local shadow
                "Id": "94",
                "Source": d[self.sort_arm_ggd_name]['thing_arn'],  # GGD matches ArmType
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update",
                "Target": "GGShadowService"
            },
            {  # from Master Greengrass Core local shadow to SortArm arm device
                "Id": "95",
                "Source": "GGShadowService",
                "Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update/#",
                "Target": d[self.sort_arm_ggd_name]['thing_arn']  # GGD matches ArmType
            },
            {  # from Master heartbeat device to AWS cloud
                "Id": "97",
                "Source": d[self.heartbeat_ggd_name]['thing_arn'],
                "Subject": "heart/beat",
                "Target": "cloud"
            },
            {  # from Master button device to MasterBrain Lambda
                "Id": "98",
                "Source": d[self.button_ggd_name]['thing_arn'],
                "Subject": "button",
                "Target": l['MasterBrain']['arn']
            }
        ]
        logging.debug(
            '[master.get_subscription_definition] definition:{0}'.format(
                definition)
        )
        return definition