func migrateKibanaObjects()

in dev/import-beats/kibana.go [265:297]


func migrateKibanaObjects(objects []mapStr, moduleName string, dataStreamNames []string) (map[string]map[string][]byte, map[string]string, error) {
	extracted := make(map[string]map[string][]byte)
	dashboardIDMap := make(map[string]string)

	for _, object := range objects {
		aType, err := object.getValue("type")
		if err != nil {
			return nil, nil, errors.Wrapf(err, "retrieving type failed")
		}

		id, err := object.getValue("id")
		if err != nil {
			return nil, nil, errors.Wrapf(err, "retrieving id failed")
		}
		origID, ok := id.(string)
		if !ok {
			return nil, nil, errors.New("expected id to be a string")
		}

		data, newID, err := migrateObject(object, moduleName, dataStreamNames)
		if err != nil {
			return nil, nil, err
		}
		dashboardIDMap[origID] = newID

		if _, ok := extracted[aType.(string)]; !ok {
			extracted[aType.(string)] = map[string][]byte{}
		}
		extracted[aType.(string)][newID+".json"] = data
	}

	return extracted, dashboardIDMap, nil
}