)]}'
{"guidelines/versioning.rst":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"81dab99f21ffd80ad88844ef7e09ec0d731a28f2","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Version discovery"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a7e1126_22d39361","line":7,"range":{"start_line":7,"start_character":15,"end_line":7,"end_character":17},"updated":"2015-12-22 01:56:03.000000000","message":"nit: 2 \u003d is unnecessary.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d154261548c5ff142c296e0262a4241f868e196a","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Version discovery"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_9a2dbf00","line":7,"in_reply_to":"3a7e1126_22d39361","updated":"2016-05-31 14:08:26.000000000","message":"\u003e The underline/overline must be at least as long as the title text.\n\nSource: http://docutils.sourceforge.net/docs/user/rst/quickref.html\n\nThe RST parsers I\u0027ve used will raise warnings if the underline/overline is not the same length as the title text.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"81dab99f21ffd80ad88844ef7e09ec0d731a28f2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"is to standardize the format for these responses."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Version discovery"},{"line_number":16,"context_line":"-----------------"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Version discovery is the only part of a service\u0027s API that is not itself"},{"line_number":19,"context_line":"versioned and so migrating existing services exactly to it is not always"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a7e1126_62e67b45","line":16,"range":{"start_line":16,"start_character":15,"end_line":16,"end_character":17},"updated":"2015-12-22 01:56:03.000000000","message":"nit: 2 -- is unnecessary.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cb31c33267749f02b36fdf35c3e86778f21c000d","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Version discovery is the only part of a service\u0027s API that is not itself"},{"line_number":19,"context_line":"versioned and so migrating existing services exactly to it is not always"},{"line_number":20,"context_line":"possible. This guide is intended as a best practice and should be followed"},{"line_number":21,"context_line":"strictly by new services. Existing services should follow this guide wherever"},{"line_number":22,"context_line":"possible and try to move towards this goal."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_427525c9","line":20,"updated":"2016-01-28 09:44:09.000000000","message":"The \"and so migrating existing services exactly to it is not always possible\" above does not make a whole lot of sense to me. WHat precisely do you mean by \"migrating existing services\"? Are you trying to say that aligning the myriad ways existing OpenStack services expose version information is difficult because we have no documented standard for this? If so, just say that :)","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d154261548c5ff142c296e0262a4241f868e196a","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Version discovery is the only part of a service\u0027s API that is not itself"},{"line_number":19,"context_line":"versioned and so migrating existing services exactly to it is not always"},{"line_number":20,"context_line":"possible. This guide is intended as a best practice and should be followed"},{"line_number":21,"context_line":"strictly by new services. Existing services should follow this guide wherever"},{"line_number":22,"context_line":"possible and try to move towards this goal."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_45bd3c01","line":20,"in_reply_to":"7a5de9d1_427525c9","updated":"2016-05-31 14:08:26.000000000","message":"+1, the original intent of the sentence could be improved/maintained just by changing \"exactly\" to \"directly\"... but I agree with Jay.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d154261548c5ff142c296e0262a4241f868e196a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"versioned and so migrating existing services exactly to it is not always"},{"line_number":20,"context_line":"possible. This guide is intended as a best practice and should be followed"},{"line_number":21,"context_line":"strictly by new services. Existing services should follow this guide wherever"},{"line_number":22,"context_line":"possible and try to move towards this goal."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This document is intended primarily as a guide for the server side, some"},{"line_number":25,"context_line":"sections may contains notes about deprecated behaviour that is still allowed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_65c16054","line":22,"updated":"2016-05-31 14:08:26.000000000","message":"In some cases, it\u0027ll be possible to be compatible with more than one versioning response format (say, legacy and the API WP standardization) by simple returning \"redundant\" versioning information in the same response.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cb31c33267749f02b36fdf35c3e86778f21c000d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"possible and try to move towards this goal."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This document is intended primarily as a guide for the server side, some"},{"line_number":25,"context_line":"sections may contains notes about deprecated behaviour that is still allowed"},{"line_number":26,"context_line":"but it does not go into all the quirks for all the services that would be"},{"line_number":27,"context_line":"required to implement a version discovery parser that works for everyone."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_e281b190","line":25,"updated":"2016-01-28 09:44:09.000000000","message":"s/may contains/may contain/","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"81dab99f21ffd80ad88844ef7e09ec0d731a28f2","unresolved":false,"context_lines":[{"line_number":27,"context_line":"required to implement a version discovery parser that works for everyone."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Individual Version Entry"},{"line_number":30,"context_line":"------------------------"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"An API version is exposed as a series of attributes:"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a7e1126_e2f10b02","line":30,"range":{"start_line":30,"start_character":21,"end_line":30,"end_character":24},"updated":"2015-12-22 01:56:03.000000000","message":"nit: 3 - is unnecessary.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cb31c33267749f02b36fdf35c3e86778f21c000d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                \"rel\": \"--rel--\""},{"line_number":50,"context_line":"            }"},{"line_number":51,"context_line":"        ]"},{"line_number":52,"context_line":"    }"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Individual version base URLs (eg at \"http://localhost:5000/v3\") will return a"},{"line_number":55,"context_line":"version object under the key of ``version`` with a status of 200 OK.  Although"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_027f2dab","line":52,"updated":"2016-01-28 09:44:09.000000000","message":"I would highly recommend we use a JSONSchema to describe the expected/recommended schema for a Version object.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"81fdc38361c46a44ad08e082aa440be12bd6e9ce","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                \"rel\": \"--rel--\""},{"line_number":50,"context_line":"            }"},{"line_number":51,"context_line":"        ]"},{"line_number":52,"context_line":"    }"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Individual version base URLs (eg at \"http://localhost:5000/v3\") will return a"},{"line_number":55,"context_line":"version object under the key of ``version`` with a status of 200 OK.  Although"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_1c98c6bf","line":52,"in_reply_to":"7a5de9d1_027f2dab","updated":"2016-01-28 23:24:21.000000000","message":"+1","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d154261548c5ff142c296e0262a4241f868e196a","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                \"rel\": \"--rel--\""},{"line_number":50,"context_line":"            }"},{"line_number":51,"context_line":"        ]"},{"line_number":52,"context_line":"    }"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Individual version base URLs (eg at \"http://localhost:5000/v3\") will return a"},{"line_number":55,"context_line":"version object under the key of ``version`` with a status of 200 OK.  Although"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_05985477","line":52,"in_reply_to":"7a5de9d1_1c98c6bf","updated":"2016-05-31 14:08:26.000000000","message":"+1","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cb31c33267749f02b36fdf35c3e86778f21c000d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Individual version base URLs (eg at \"http://localhost:5000/v3\") will return a"},{"line_number":55,"context_line":"version object under the key of ``version`` with a status of 200 OK.  Although"},{"line_number":56,"context_line":"discovery endpoints should not be access controlled, this has occurred in the"},{"line_number":57,"context_line":"past and should be expected by anyone attempting to read them."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"For example:"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_a24ad981","line":57,"updated":"2016-01-28 09:44:09.000000000","message":"This last sentence should be replaced with advice: \"Version discovery endpoints should not require authentication to return the list of supported versions.\"","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d154261548c5ff142c296e0262a4241f868e196a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Individual version base URLs (eg at \"http://localhost:5000/v3\") will return a"},{"line_number":55,"context_line":"version object under the key of ``version`` with a status of 200 OK.  Although"},{"line_number":56,"context_line":"discovery endpoints should not be access controlled, this has occurred in the"},{"line_number":57,"context_line":"past and should be expected by anyone attempting to read them."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"For example:"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_05a694ad","line":57,"in_reply_to":"7a5de9d1_5c7dde6c","updated":"2016-05-31 14:08:26.000000000","message":"+1","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"81fdc38361c46a44ad08e082aa440be12bd6e9ce","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Individual version base URLs (eg at \"http://localhost:5000/v3\") will return a"},{"line_number":55,"context_line":"version object under the key of ``version`` with a status of 200 OK.  Although"},{"line_number":56,"context_line":"discovery endpoints should not be access controlled, this has occurred in the"},{"line_number":57,"context_line":"past and should be expected by anyone attempting to read them."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"For example:"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_5c7dde6c","line":57,"in_reply_to":"7a5de9d1_a24ad981","updated":"2016-01-28 23:24:21.000000000","message":"+1","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"81dab99f21ffd80ad88844ef7e09ec0d731a28f2","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    {"},{"line_number":65,"context_line":"        \"version\": {"},{"line_number":66,"context_line":"            \"id\": \"3.0\","},{"line_number":67,"context_line":"            \"status\": \"stable\","},{"line_number":68,"context_line":"            \"updated\": \"2013-03-06T00:00:00Z\","},{"line_number":69,"context_line":"            \"media-types\": ["},{"line_number":70,"context_line":"                {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a7e1126_628f5b75","line":67,"range":{"start_line":67,"start_character":23,"end_line":67,"end_character":29},"updated":"2015-12-22 01:56:03.000000000","message":"Here should be \"CURRENT\" or something instead of \"stable\" because of the following status list.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"81fdc38361c46a44ad08e082aa440be12bd6e9ce","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    {"},{"line_number":65,"context_line":"        \"version\": {"},{"line_number":66,"context_line":"            \"id\": \"3.0\","},{"line_number":67,"context_line":"            \"status\": \"stable\","},{"line_number":68,"context_line":"            \"updated\": \"2013-03-06T00:00:00Z\","},{"line_number":69,"context_line":"            \"media-types\": ["},{"line_number":70,"context_line":"                {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_fcffeaa7","line":67,"range":{"start_line":67,"start_character":23,"end_line":67,"end_character":29},"in_reply_to":"3a7e1126_628f5b75","updated":"2016-01-28 23:24:21.000000000","message":"+1","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d154261548c5ff142c296e0262a4241f868e196a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    {"},{"line_number":65,"context_line":"        \"version\": {"},{"line_number":66,"context_line":"            \"id\": \"3.0\","},{"line_number":67,"context_line":"            \"status\": \"stable\","},{"line_number":68,"context_line":"            \"updated\": \"2013-03-06T00:00:00Z\","},{"line_number":69,"context_line":"            \"media-types\": ["},{"line_number":70,"context_line":"                {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_25d758ee","line":67,"in_reply_to":"7a5de9d1_fcffeaa7","updated":"2016-05-31 14:08:26.000000000","message":"I\u0027d argue that you can have multiple \"stable\" versions, and it\u0027s meaningless to point out to a client that you have a \"CURRENT\" version... because isn\u0027t that just the \"stable\" version with the highest version number?","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cb31c33267749f02b36fdf35c3e86778f21c000d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                {"},{"line_number":75,"context_line":"                    \"base\": \"application/xml\","},{"line_number":76,"context_line":"                    \"type\": \"application/vnd.openstack.identity-v3+xml\""},{"line_number":77,"context_line":"                }"},{"line_number":78,"context_line":"            ],"},{"line_number":79,"context_line":"            \"links\": ["},{"line_number":80,"context_line":"                {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_c24fd590","line":77,"updated":"2016-01-28 09:44:09.000000000","message":"-1 on the vnd.openstack junk. It isn\u0027t necessary. In fact, -1 on XML support, too. Let\u0027s not infect our guidelines with it.\n\nActually, instead of listing the version information like this in the top-level version URI (i.e. GET /v3) why not just recommend using JSONHome [1] for these root version endpoints and have the root endpoint (i.e. GET /) be a simple JSON document of version endpoints like so:\n\n GET /\n 302 Multiple Choice\n Content-Type: application/json\n\n {\n   \"versions\": {\n     \"v3\": {\n       \"status\": \"CURRENT\",\n       \"min\": \"3.4\",\n       \"max\": \"3.79\",\n       \"uri\": \"http://example.org/v3/\"\n     },\n     \"v2\": {\n       \"status\": \"SUPPORTED\",\n       \"min\": \"2.0\",\n       \"max\": \"2.0\",\n       \"uri\": \"http://example.org/v2.0/\"\n     }\n   }\n   \"links\": [\n     {\n       \"href\": \"http://example.org/schema\",\n       \"rel\": \"schema\"\n     },\n     {\n       \"href\": \"http://example.org\",\n       \"rel\": \"self\"\n     }\n   ]\n }","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"81fdc38361c46a44ad08e082aa440be12bd6e9ce","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                {"},{"line_number":75,"context_line":"                    \"base\": \"application/xml\","},{"line_number":76,"context_line":"                    \"type\": \"application/vnd.openstack.identity-v3+xml\""},{"line_number":77,"context_line":"                }"},{"line_number":78,"context_line":"            ],"},{"line_number":79,"context_line":"            \"links\": ["},{"line_number":80,"context_line":"                {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_fc160af0","line":77,"in_reply_to":"7a5de9d1_c24fd590","updated":"2016-01-28 23:24:21.000000000","message":"this brings up a question for me about versioning and the root endpoint. i realize above it is mentioned that the root (\"/\") is often the only un-versioned endpoint in the api. is this our position and should we advise not bumping the api version if an api changes the root?","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d154261548c5ff142c296e0262a4241f868e196a","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                {"},{"line_number":75,"context_line":"                    \"base\": \"application/xml\","},{"line_number":76,"context_line":"                    \"type\": \"application/vnd.openstack.identity-v3+xml\""},{"line_number":77,"context_line":"                }"},{"line_number":78,"context_line":"            ],"},{"line_number":79,"context_line":"            \"links\": ["},{"line_number":80,"context_line":"                {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_05fb347a","line":77,"in_reply_to":"7a5de9d1_fc160af0","updated":"2016-05-31 14:08:26.000000000","message":"+1 on killing the xml content types. Multiple choice is a 300 status code though.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"c7292010678f7b871ba5ff3d6b28c7c215047cc8","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            ],"},{"line_number":79,"context_line":"            \"links\": ["},{"line_number":80,"context_line":"                {"},{"line_number":81,"context_line":"                    \"href\": \".\","},{"line_number":82,"context_line":"                    \"rel\": \"self\""},{"line_number":83,"context_line":"                }"},{"line_number":84,"context_line":"            ]"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_e1a9dde0","line":81,"range":{"start_line":81,"start_character":28,"end_line":81,"end_character":32},"updated":"2016-01-27 13:24:30.000000000","message":"I think REST requires the use of fully qualified URL\u0027s, no? Something like http://api.example.com/v3 could be used here.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d154261548c5ff142c296e0262a4241f868e196a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            ],"},{"line_number":79,"context_line":"            \"links\": ["},{"line_number":80,"context_line":"                {"},{"line_number":81,"context_line":"                    \"href\": \".\","},{"line_number":82,"context_line":"                    \"rel\": \"self\""},{"line_number":83,"context_line":"                }"},{"line_number":84,"context_line":"            ]"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_c5cf6c27","line":81,"in_reply_to":"7a5de9d1_e1a9dde0","updated":"2016-05-31 14:08:26.000000000","message":"+1","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cb31c33267749f02b36fdf35c3e86778f21c000d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"  * - ``EXPERIMENTAL``"},{"line_number":145,"context_line":"    - No"},{"line_number":146,"context_line":"    - This version is under development or contains features that are otherwise"},{"line_number":147,"context_line":"      subject to change."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"``updated``"},{"line_number":150,"context_line":"***********"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_6244e173","line":147,"updated":"2016-01-28 09:44:09.000000000","message":"All of this kind of constraint stuff should be represented in a JSONSchema document.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"323378b27af096e9d25f3558b38c427ef87f6ba5","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":".. code::"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    Status: 300"},{"line_number":239,"context_line":"    {"},{"line_number":240,"context_line":"        \"versions\": ["},{"line_number":241,"context_line":"            {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_a46061a6","line":238,"updated":"2016-05-31 16:18:33.000000000","message":"What\u0027s the \"300\" here? Line 227 says the status code should be 200 OK, and this line doesn\u0027t have a status message on it.","commit_id":"568473e2e48315ef7aed9c4304609e21cef3a595"}]}
