QUERY CreateUser(gh_id: U64, gh_login: String, name: String, email: String) => user <- AddN({gh_id: gh_id, gh_login: gh_login, name: name, email: email}) RETURN user QUERY LookupUser(gh_id: U64) => user <- N({gh_id: gh_id}) RETURN user QUERY CreateCluster(user_id: ID, region: String, instance_type: String, storage_gb: I64, ram_gb: I64) => user <- N(user_id) new_cluster <- AddN({region: region}) new_instance <- AddN({ region: region, instance_type: instance_type, storage_gb: storage_gb, ram_gb: ram_gb }) AddE::From(user)::To(new_cluster) AddE::From(new_cluster)::To(new_instance) RETURN new_cluster QUERY GetInstancesForUser(user_id: ID) => instances <- N(user_id)::Out::Out RETURN instances