{"action":"created","comment":{"url":"https://api.github.com/repos/ga4gh/schemas/pulls/comments/27523886","id":27523886,"diff_hunk":"@@ -113,9 +113,9 @@ as JSON.\n */\n record SearchReferencesRequest {\n   /**\n-  If present, return only references which belong to this reference set.\n+  The ReferenceSet to search.\n   */\n-  union { null, string } referenceSetId = null;","path":"src/main/resources/avro/referencemethods.avdl","position":7,"original_position":7,"commit_id":"a6658785033164bc34f579bf503815320cf86a4b","original_commit_id":"a6658785033164bc34f579bf503815320cf86a4b","user":{"login":"pgrosu","id":6555937,"avatar_url":"https://avatars.githubusercontent.com/u/6555937?v=3","gravatar_id":"","url":"https://api.github.com/users/pgrosu","html_url":"https://github.com/pgrosu","followers_url":"https://api.github.com/users/pgrosu/followers","following_url":"https://api.github.com/users/pgrosu/following{/other_user}","gists_url":"https://api.github.com/users/pgrosu/gists{/gist_id}","starred_url":"https://api.github.com/users/pgrosu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pgrosu/subscriptions","organizations_url":"https://api.github.com/users/pgrosu/orgs","repos_url":"https://api.github.com/users/pgrosu/repos","events_url":"https://api.github.com/users/pgrosu/events{/privacy}","received_events_url":"https://api.github.com/users/pgrosu/received_events","type":"User","site_admin":false},"body":"@calbach, see https://github.com/ga4gh/schemas/issues/247 regarding where this is stemming from.  Though I agree that many-to-many is something that I think is still important, it probably requires more clarity with examples in the structure of the definitions.  Just for reference for others, the original many-to-many was discussed initially in the following issue:\r\n\r\nhttps://github.com/ga4gh/schemas/issues/125#issuecomment-54029648\r\n\r\nYou can still search with MD5 via this in the same method:\r\n\r\n```\r\n  /**\r\n  If nonempty, return references which match any of the given `md5checksums`.\r\n  See `Reference::md5checksum` for details.\r\n  */\r\n  array<string> md5checksums = [];\r\n\r\n```\r\n\r\n~p","created_at":"2015-03-31T21:14:14Z","updated_at":"2015-03-31T21:14:14Z","html_url":"https://github.com/ga4gh/schemas/pull/253#discussion_r27523886","pull_request_url":"https://api.github.com/repos/ga4gh/schemas/pulls/253","_links":{"self":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/comments/27523886"},"html":{"href":"https://github.com/ga4gh/schemas/pull/253#discussion_r27523886"},"pull_request":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/253"}}},"pull_request":{"url":"https://api.github.com/repos/ga4gh/schemas/pulls/253","id":30856379,"html_url":"https://github.com/ga4gh/schemas/pull/253","diff_url":"https://github.com/ga4gh/schemas/pull/253.diff","patch_url":"https://github.com/ga4gh/schemas/pull/253.patch","issue_url":"https://api.github.com/repos/ga4gh/schemas/issues/253","number":253,"state":"open","locked":false,"title":"Rationalises the SearchObjectRequest semantics.","user":{"login":"jeromekelleher","id":2664569,"avatar_url":"https://avatars.githubusercontent.com/u/2664569?v=3","gravatar_id":"","url":"https://api.github.com/users/jeromekelleher","html_url":"https://github.com/jeromekelleher","followers_url":"https://api.github.com/users/jeromekelleher/followers","following_url":"https://api.github.com/users/jeromekelleher/following{/other_user}","gists_url":"https://api.github.com/users/jeromekelleher/gists{/gist_id}","starred_url":"https://api.github.com/users/jeromekelleher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeromekelleher/subscriptions","organizations_url":"https://api.github.com/users/jeromekelleher/orgs","repos_url":"https://api.github.com/users/jeromekelleher/repos","events_url":"https://api.github.com/users/jeromekelleher/events{/privacy}","received_events_url":"https://api.github.com/users/jeromekelleher/received_events","type":"User","site_admin":false},"body":"This PR changes the semantics of all `SearchObjectRequest`s so they require the ID of a single container object, if applicable. Currently, a number of different conventions exist, making implementation and authorisation difficult. This solves issue #247 and is related to the issues in #248.\r\n\r\nMost of the changes are straightforward, and just require the change of a field like (for example) `array<string> dataSetIds = [];` to `string dataSetId;`. There are some problematic cases:\r\n\r\n1. `SearchCallsRequest` and `SearchAlleleCallsRequest` both had a large list of options for the containers that they could search over. As an initial strawman I've reduced this to just the parent `CallSet` to be consistent with all the other objects. Reasoning for these:\r\n   1. Since a `CallSet` is part of a `VariantSet`, the variant set is implied by specifying `callSetId`.\r\n   2. Finding  `Calls` for a particular `variantId` is redundant, since `Call`s are embedded in `Variant` objects. If we wish to find the calls for a given variant, we can either find them directly using `SearchVariantsRequest` or make a call to GET `/variants/<id>/`\r\n   3. We are then left with iterating over all calls in a CallSet, which seems like a peculiar thing to do without reference to the containing `Variant` object. However, this might be updated with more meaningful semantics later.\r\n2. `SeachAlleles` is problematic; what is the interplay between the `variantSetId` and the `sequenceId`? If `sequenceId` is required, then why do we need the `variantSetId`? Conceptually, it seems natural that an Allele belongs to a single `VariantSet`.\r\n\r\nIn terms of backwards compatibility, obviously there are some breaking changes here. These are minor, however, and easily worked around. Server-side, this is a considerable simplification, and so implementation can simply be a special case of the existing semantics. Client-side, users that are using the multi-container search semantics will need to now explicitly iterate over the container IDs that they are interested in.","created_at":"2015-03-10T14:45:50Z","updated_at":"2015-03-31T21:14:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3a55428f0495a44813d71e1fec9ac7e27766f74f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ga4gh/schemas/pulls/253/commits","review_comments_url":"https://api.github.com/repos/ga4gh/schemas/pulls/253/comments","review_comment_url":"https://api.github.com/repos/ga4gh/schemas/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ga4gh/schemas/issues/253/comments","statuses_url":"https://api.github.com/repos/ga4gh/schemas/statuses/a6658785033164bc34f579bf503815320cf86a4b","head":{"label":"jeromekelleher:rationalise-search-requests","ref":"rationalise-search-requests","sha":"a6658785033164bc34f579bf503815320cf86a4b","user":{"login":"jeromekelleher","id":2664569,"avatar_url":"https://avatars.githubusercontent.com/u/2664569?v=3","gravatar_id":"","url":"https://api.github.com/users/jeromekelleher","html_url":"https://github.com/jeromekelleher","followers_url":"https://api.github.com/users/jeromekelleher/followers","following_url":"https://api.github.com/users/jeromekelleher/following{/other_user}","gists_url":"https://api.github.com/users/jeromekelleher/gists{/gist_id}","starred_url":"https://api.github.com/users/jeromekelleher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeromekelleher/subscriptions","organizations_url":"https://api.github.com/users/jeromekelleher/orgs","repos_url":"https://api.github.com/users/jeromekelleher/repos","events_url":"https://api.github.com/users/jeromekelleher/events{/privacy}","received_events_url":"https://api.github.com/users/jeromekelleher/received_events","type":"User","site_admin":false},"repo":{"id":20289864,"name":"schemas","full_name":"jeromekelleher/schemas","owner":{"login":"jeromekelleher","id":2664569,"avatar_url":"https://avatars.githubusercontent.com/u/2664569?v=3","gravatar_id":"","url":"https://api.github.com/users/jeromekelleher","html_url":"https://github.com/jeromekelleher","followers_url":"https://api.github.com/users/jeromekelleher/followers","following_url":"https://api.github.com/users/jeromekelleher/following{/other_user}","gists_url":"https://api.github.com/users/jeromekelleher/gists{/gist_id}","starred_url":"https://api.github.com/users/jeromekelleher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeromekelleher/subscriptions","organizations_url":"https://api.github.com/users/jeromekelleher/orgs","repos_url":"https://api.github.com/users/jeromekelleher/repos","events_url":"https://api.github.com/users/jeromekelleher/events{/privacy}","received_events_url":"https://api.github.com/users/jeromekelleher/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jeromekelleher/schemas","description":"Work on data models and APIs for Genomic data.","fork":true,"url":"https://api.github.com/repos/jeromekelleher/schemas","forks_url":"https://api.github.com/repos/jeromekelleher/schemas/forks","keys_url":"https://api.github.com/repos/jeromekelleher/schemas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jeromekelleher/schemas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jeromekelleher/schemas/teams","hooks_url":"https://api.github.com/repos/jeromekelleher/schemas/hooks","issue_events_url":"https://api.github.com/repos/jeromekelleher/schemas/issues/events{/number}","events_url":"https://api.github.com/repos/jeromekelleher/schemas/events","assignees_url":"https://api.github.com/repos/jeromekelleher/schemas/assignees{/user}","branches_url":"https://api.github.com/repos/jeromekelleher/schemas/branches{/branch}","tags_url":"https://api.github.com/repos/jeromekelleher/schemas/tags","blobs_url":"https://api.github.com/repos/jeromekelleher/schemas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jeromekelleher/schemas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jeromekelleher/schemas/git/refs{/sha}","trees_url":"https://api.github.com/repos/jeromekelleher/schemas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jeromekelleher/schemas/statuses/{sha}","languages_url":"https://api.github.com/repos/jeromekelleher/schemas/languages","stargazers_url":"https://api.github.com/repos/jeromekelleher/schemas/stargazers","contributors_url":"https://api.github.com/repos/jeromekelleher/schemas/contributors","subscribers_url":"https://api.github.com/repos/jeromekelleher/schemas/subscribers","subscription_url":"https://api.github.com/repos/jeromekelleher/schemas/subscription","commits_url":"https://api.github.com/repos/jeromekelleher/schemas/commits{/sha}","git_commits_url":"https://api.github.com/repos/jeromekelleher/schemas/git/commits{/sha}","comments_url":"https://api.github.com/repos/jeromekelleher/schemas/comments{/number}","issue_comment_url":"https://api.github.com/repos/jeromekelleher/schemas/issues/comments{/number}","contents_url":"https://api.github.com/repos/jeromekelleher/schemas/contents/{+path}","compare_url":"https://api.github.com/repos/jeromekelleher/schemas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jeromekelleher/schemas/merges","archive_url":"https://api.github.com/repos/jeromekelleher/schemas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jeromekelleher/schemas/downloads","issues_url":"https://api.github.com/repos/jeromekelleher/schemas/issues{/number}","pulls_url":"https://api.github.com/repos/jeromekelleher/schemas/pulls{/number}","milestones_url":"https://api.github.com/repos/jeromekelleher/schemas/milestones{/number}","notifications_url":"https://api.github.com/repos/jeromekelleher/schemas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jeromekelleher/schemas/labels{/name}","releases_url":"https://api.github.com/repos/jeromekelleher/schemas/releases{/id}","created_at":"2014-05-29T10:07:05Z","updated_at":"2014-05-30T08:31:59Z","pushed_at":"2015-03-30T16:07:30Z","git_url":"git://github.com/jeromekelleher/schemas.git","ssh_url":"git@github.com:jeromekelleher/schemas.git","clone_url":"https://github.com/jeromekelleher/schemas.git","svn_url":"https://github.com/jeromekelleher/schemas","homepage":"","size":575,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ga4gh:master","ref":"master","sha":"1cbf5bab6451b84c96841a59ac8e7d241a4e67ab","user":{"login":"ga4gh","id":6921777,"avatar_url":"https://avatars.githubusercontent.com/u/6921777?v=3","gravatar_id":"","url":"https://api.github.com/users/ga4gh","html_url":"https://github.com/ga4gh","followers_url":"https://api.github.com/users/ga4gh/followers","following_url":"https://api.github.com/users/ga4gh/following{/other_user}","gists_url":"https://api.github.com/users/ga4gh/gists{/gist_id}","starred_url":"https://api.github.com/users/ga4gh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ga4gh/subscriptions","organizations_url":"https://api.github.com/users/ga4gh/orgs","repos_url":"https://api.github.com/users/ga4gh/repos","events_url":"https://api.github.com/users/ga4gh/events{/privacy}","received_events_url":"https://api.github.com/users/ga4gh/received_events","type":"Organization","site_admin":false},"repo":{"id":17925227,"name":"schemas","full_name":"ga4gh/schemas","owner":{"login":"ga4gh","id":6921777,"avatar_url":"https://avatars.githubusercontent.com/u/6921777?v=3","gravatar_id":"","url":"https://api.github.com/users/ga4gh","html_url":"https://github.com/ga4gh","followers_url":"https://api.github.com/users/ga4gh/followers","following_url":"https://api.github.com/users/ga4gh/following{/other_user}","gists_url":"https://api.github.com/users/ga4gh/gists{/gist_id}","starred_url":"https://api.github.com/users/ga4gh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ga4gh/subscriptions","organizations_url":"https://api.github.com/users/ga4gh/orgs","repos_url":"https://api.github.com/users/ga4gh/repos","events_url":"https://api.github.com/users/ga4gh/events{/privacy}","received_events_url":"https://api.github.com/users/ga4gh/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ga4gh/schemas","description":"Work on data models and APIs for Genomic data.","fork":false,"url":"https://api.github.com/repos/ga4gh/schemas","forks_url":"https://api.github.com/repos/ga4gh/schemas/forks","keys_url":"https://api.github.com/repos/ga4gh/schemas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ga4gh/schemas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ga4gh/schemas/teams","hooks_url":"https://api.github.com/repos/ga4gh/schemas/hooks","issue_events_url":"https://api.github.com/repos/ga4gh/schemas/issues/events{/number}","events_url":"https://api.github.com/repos/ga4gh/schemas/events","assignees_url":"https://api.github.com/repos/ga4gh/schemas/assignees{/user}","branches_url":"https://api.github.com/repos/ga4gh/schemas/branches{/branch}","tags_url":"https://api.github.com/repos/ga4gh/schemas/tags","blobs_url":"https://api.github.com/repos/ga4gh/schemas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ga4gh/schemas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ga4gh/schemas/git/refs{/sha}","trees_url":"https://api.github.com/repos/ga4gh/schemas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ga4gh/schemas/statuses/{sha}","languages_url":"https://api.github.com/repos/ga4gh/schemas/languages","stargazers_url":"https://api.github.com/repos/ga4gh/schemas/stargazers","contributors_url":"https://api.github.com/repos/ga4gh/schemas/contributors","subscribers_url":"https://api.github.com/repos/ga4gh/schemas/subscribers","subscription_url":"https://api.github.com/repos/ga4gh/schemas/subscription","commits_url":"https://api.github.com/repos/ga4gh/schemas/commits{/sha}","git_commits_url":"https://api.github.com/repos/ga4gh/schemas/git/commits{/sha}","comments_url":"https://api.github.com/repos/ga4gh/schemas/comments{/number}","issue_comment_url":"https://api.github.com/repos/ga4gh/schemas/issues/comments{/number}","contents_url":"https://api.github.com/repos/ga4gh/schemas/contents/{+path}","compare_url":"https://api.github.com/repos/ga4gh/schemas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ga4gh/schemas/merges","archive_url":"https://api.github.com/repos/ga4gh/schemas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ga4gh/schemas/downloads","issues_url":"https://api.github.com/repos/ga4gh/schemas/issues{/number}","pulls_url":"https://api.github.com/repos/ga4gh/schemas/pulls{/number}","milestones_url":"https://api.github.com/repos/ga4gh/schemas/milestones{/number}","notifications_url":"https://api.github.com/repos/ga4gh/schemas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ga4gh/schemas/labels{/name}","releases_url":"https://api.github.com/repos/ga4gh/schemas/releases{/id}","created_at":"2014-03-20T00:13:40Z","updated_at":"2015-03-27T17:36:06Z","pushed_at":"2015-03-30T18:47:06Z","git_url":"git://github.com/ga4gh/schemas.git","ssh_url":"git@github.com:ga4gh/schemas.git","clone_url":"https://github.com/ga4gh/schemas.git","svn_url":"https://github.com/ga4gh/schemas","homepage":"http://ga4gh.org/#/api","size":2729,"stargazers_count":128,"watchers_count":128,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":54,"mirror_url":null,"open_issues_count":60,"forks":54,"open_issues":60,"watchers":128,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/253"},"html":{"href":"https://github.com/ga4gh/schemas/pull/253"},"issue":{"href":"https://api.github.com/repos/ga4gh/schemas/issues/253"},"comments":{"href":"https://api.github.com/repos/ga4gh/schemas/issues/253/comments"},"review_comments":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/253/comments"},"review_comment":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ga4gh/schemas/pulls/253/commits"},"statuses":{"href":"https://api.github.com/repos/ga4gh/schemas/statuses/a6658785033164bc34f579bf503815320cf86a4b"}}}}