)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"019748651a020b2b490aa1c6e37f09dff5d973a9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add ``user`` object to the mapping rules examples."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Every rule should have an local ``user`` object that is used to"},{"line_number":10,"context_line":"produce unique user_id of the federated user. Not all examples of the"},{"line_number":11,"context_line":"OS-FEDERATION extension included such object."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9ad9bd40_0a504831","line":9,"updated":"2014-05-02 00:43:46.000000000","message":"(nit) change \"an\" to \"a\"","commit_id":"2daf1eeee8d8a2329cb661c66d2635a05c00be66"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"019748651a020b2b490aa1c6e37f09dff5d973a9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add ``user`` object to the mapping rules examples."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Every rule should have an local ``user`` object that is used to"},{"line_number":10,"context_line":"produce unique user_id of the federated user. Not all examples of the"},{"line_number":11,"context_line":"OS-FEDERATION extension included such object."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ib1a2a956cb3638402b283ad13841f48d31814240"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9ad9bd40_4a4a5081","line":10,"updated":"2014-05-02 00:43:46.000000000","message":"change \"produce unique\" to \"produce a unique\"","commit_id":"2daf1eeee8d8a2329cb661c66d2635a05c00be66"}],"openstack-identity-api/v3/src/markdown/identity-api-v3-os-federation-ext.md":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9ba08f661d133a1bfe754342fca690a0a0158e92","unresolved":false,"context_lines":[{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    {"},{"line_number":461,"context_line":"        \"mapping\": {"},{"line_number":462,"context_line":"            \"id\": \"ACME\","},{"line_number":463,"context_line":"            \"rules\": ["},{"line_number":464,"context_line":"                {"},{"line_number":465,"context_line":"                    \"local\": ["}],"source_content_type":"text/x-markdown","patch_set":1,"id":"AAAAXX%2F%2F9ds%3D","side":"PARENT","line":462,"updated":"2014-04-25 01:22:52.000000000","message":"++","commit_id":"85e91f7cf23aa3dccc005b354b5e62804e3de039"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"8b22d3a6c8662f51d1ecdbd52262966b7b83bd00","unresolved":false,"context_lines":[{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    {"},{"line_number":461,"context_line":"        \"mapping\": {"},{"line_number":462,"context_line":"            \"id\": \"ACME\","},{"line_number":463,"context_line":"            \"rules\": ["},{"line_number":464,"context_line":"                {"},{"line_number":465,"context_line":"                    \"local\": ["}],"source_content_type":"text/x-markdown","patch_set":1,"id":"AAAAXX%2F%2F79E%3D","side":"PARENT","line":462,"in_reply_to":"AAAAXX%2F%2F9ds%3D","updated":"2014-04-25 07:49:59.000000000","message":"hmmm, i will clean it in a separated commit.","commit_id":"85e91f7cf23aa3dccc005b354b5e62804e3de039"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9ba08f661d133a1bfe754342fca690a0a0158e92","unresolved":false,"context_lines":[{"line_number":538,"context_line":"                                \"id\": \"0cd5e9\""},{"line_number":539,"context_line":"                            }"},{"line_number":540,"context_line":"                        }"},{"line_number":541,"context_line":"                    ],"},{"line_number":542,"context_line":"                    \"remote\": ["},{"line_number":543,"context_line":"                        {"},{"line_number":544,"context_line":"                            \"type\": \"UserName\""}],"source_content_type":"text/x-markdown","patch_set":1,"id":"AAAAXX%2F%2F9eE%3D","line":541,"updated":"2014-04-25 01:22:52.000000000","message":"thanks for picking up on this!","commit_id":"9a14e34ba777aa70741e33f0874c7d9137855c29"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9ba08f661d133a1bfe754342fca690a0a0158e92","unresolved":false,"context_lines":[{"line_number":683,"context_line":""},{"line_number":684,"context_line":"Example Mapping Rules"},{"line_number":685,"context_line":"---------------------"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"### Mapping any user name"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"This is an example of *Attribute type mappings*, where an attribute type is"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"AAAAXX%2F%2F9dw%3D","line":686,"updated":"2014-04-25 01:22:52.000000000","message":"should we get rid of this example?","commit_id":"9a14e34ba777aa70741e33f0874c7d9137855c29"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"8b22d3a6c8662f51d1ecdbd52262966b7b83bd00","unresolved":false,"context_lines":[{"line_number":683,"context_line":""},{"line_number":684,"context_line":"Example Mapping Rules"},{"line_number":685,"context_line":"---------------------"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"### Mapping any user name"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"This is an example of *Attribute type mappings*, where an attribute type is"}],"source_content_type":"text/x-markdown","patch_set":1,"id":"AAAAXX%2F%2F8Dk%3D","line":686,"in_reply_to":"AAAAXX%2F%2F9dw%3D","updated":"2014-04-25 07:49:59.000000000","message":"because it can be misleading and it\u0027s use is pointless? I agree, but I would do this in a separated commit.","commit_id":"9a14e34ba777aa70741e33f0874c7d9137855c29"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"e4d1aa0214a139fcca19ad2957cfbfdb679e1db3","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    References a local Identity API resource, such as a `group` or `user` to"},{"line_number":78,"context_line":"    which the remote attributes will be mapped."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    The object itself contains both structures, described below."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    To map a remote attribute value directly to a local attribute, identify the"},{"line_number":83,"context_line":"    local resource type and attribute:"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"AAAAXX%2F%2F5QU%3D","line":80,"updated":"2014-04-25 13:36:05.000000000","message":"Since this is describing the objects in a list, what if is said\n\n \"Each object follows one of two structures, described below.\"\n\n?","commit_id":"193b1fc765da0b28a8c22a346e49c1857ed4bbc2"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"3db653aab376c0ac4a45e0925e598e38240a5dbd","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    References a local Identity API resource, such as a `group` or `user` to"},{"line_number":78,"context_line":"    which the remote attributes will be mapped."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    The object itself contains both structures, described below."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    To map a remote attribute value directly to a local attribute, identify the"},{"line_number":83,"context_line":"    local resource type and attribute:"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"AAAAXX%2F%2F5OQ%3D","line":80,"in_reply_to":"AAAAXX%2F%2F5QU%3D","updated":"2014-04-25 13:43:16.000000000","message":"I will change it, thanks.","commit_id":"193b1fc765da0b28a8c22a346e49c1857ed4bbc2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"e4d1aa0214a139fcca19ad2957cfbfdb679e1db3","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    This assigns identity attributes to ephemeral users. Missing `user`"},{"line_number":92,"context_line":"    attribute will result in HTTP 401 Unauthorized response."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    Alternatively, for attribute type and value mapping, identify the local"},{"line_number":95,"context_line":"    resource type, attribute, and value:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        {"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"AAAAXX%2F%2F5RA%3D","line":94,"updated":"2014-04-25 13:36:05.000000000","message":"This still says \"alternatively\", which contradicts with your change to \"both\".","commit_id":"193b1fc765da0b28a8c22a346e49c1857ed4bbc2"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"3db653aab376c0ac4a45e0925e598e38240a5dbd","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    This assigns identity attributes to ephemeral users. Missing `user`"},{"line_number":92,"context_line":"    attribute will result in HTTP 401 Unauthorized response."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    Alternatively, for attribute type and value mapping, identify the local"},{"line_number":95,"context_line":"    resource type, attribute, and value:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        {"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"AAAAXX%2F%2F5M8%3D","line":94,"in_reply_to":"AAAAXX%2F%2F5RA%3D","updated":"2014-04-25 13:43:16.000000000","message":"Changing to \"For attribute type and value mapping, identify the local\n    resource type, attribute, and value:\"","commit_id":"193b1fc765da0b28a8c22a346e49c1857ed4bbc2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4e79bbec228c39475505adef25906654c8c67252","unresolved":false,"context_lines":[{"line_number":684,"context_line":""},{"line_number":685,"context_line":"Example Mapping Rules"},{"line_number":686,"context_line":"---------------------"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"### Mapping any user name"},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"This is an example of *Attribute type mappings*, where an attribute type is"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"AAAAXX%2F%2F4oc%3D","line":687,"updated":"2014-04-25 15:00:03.000000000","message":"I still think this example is incorrect and should be removed.","commit_id":"be6648bb0fd1d8b8a9b55123d8026cf34996d30f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"92d48f9e727d03c4c0fb556704d93f3c03a2057d","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            {"},{"line_number":758,"context_line":"                \"local\": ["},{"line_number":759,"context_line":"                    {"},{"line_number":760,"context_line":"                        \"user\": {"},{"line_number":761,"context_line":"                            \"name\": \"{1}\""},{"line_number":762,"context_line":"                        }"},{"line_number":763,"context_line":"                    },"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"AAAAXX%2F%2Fw1E%3D","line":760,"updated":"2014-04-28 06:30:58.000000000","message":"the remote part of the rule in this example also has to be fixed. It should have a type: \"UserName\" part to it.","commit_id":"122c647616df4b08e528663b008f6ea7ae1dd63e"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"65eb8983191003b820186194d6cae52316cdb0ed","unresolved":false,"context_lines":[{"line_number":757,"context_line":"            {"},{"line_number":758,"context_line":"                \"local\": ["},{"line_number":759,"context_line":"                    {"},{"line_number":760,"context_line":"                        \"user\": {"},{"line_number":761,"context_line":"                            \"name\": \"{1}\""},{"line_number":762,"context_line":"                        }"},{"line_number":763,"context_line":"                    },"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"AAAAXX%2F%2FwlM%3D","line":760,"in_reply_to":"AAAAXX%2F%2Fw1E%3D","updated":"2014-04-28 07:28:35.000000000","message":"Ah, I forgot that direct mappings (so, those with \"{0}\") are not allowed for values matched by \"any_one_of\", \"not_any_of\" and so on.","commit_id":"122c647616df4b08e528663b008f6ea7ae1dd63e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"92d48f9e727d03c4c0fb556704d93f3c03a2057d","unresolved":false,"context_lines":[{"line_number":758,"context_line":"                \"local\": ["},{"line_number":759,"context_line":"                    {"},{"line_number":760,"context_line":"                        \"user\": {"},{"line_number":761,"context_line":"                            \"name\": \"{1}\""},{"line_number":762,"context_line":"                        }"},{"line_number":763,"context_line":"                    },"},{"line_number":764,"context_line":"                    {"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"AAAAXX%2F%2Fw1A%3D","line":761,"updated":"2014-04-28 06:30:58.000000000","message":"also, this should be {0}","commit_id":"122c647616df4b08e528663b008f6ea7ae1dd63e"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"65eb8983191003b820186194d6cae52316cdb0ed","unresolved":false,"context_lines":[{"line_number":758,"context_line":"                \"local\": ["},{"line_number":759,"context_line":"                    {"},{"line_number":760,"context_line":"                        \"user\": {"},{"line_number":761,"context_line":"                            \"name\": \"{1}\""},{"line_number":762,"context_line":"                        }"},{"line_number":763,"context_line":"                    },"},{"line_number":764,"context_line":"                    {"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"AAAAXX%2F%2Fwk4%3D","line":761,"in_reply_to":"AAAAXX%2F%2Fw1A%3D","updated":"2014-04-28 07:28:35.000000000","message":"and what should be there if we add UserName mapping as a not 1st object in the \u0027remote\u0027 list?","commit_id":"122c647616df4b08e528663b008f6ea7ae1dd63e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"019748651a020b2b490aa1c6e37f09dff5d973a9","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    References a local Identity API resource, such as a `group` or `user` to"},{"line_number":78,"context_line":"    which the remote attributes will be mapped."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    Each object follows one of two structures, described below."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    To map a remote attribute value directly to a local attribute, identify the"},{"line_number":83,"context_line":"    local resource type and attribute:"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"9ad9bd40_6513c75c","line":80,"updated":"2014-05-02 00:43:46.000000000","message":"it looks like both user and group need to be in the list, but this says that it\u0027s one or the other.","commit_id":"2daf1eeee8d8a2329cb661c66d2635a05c00be66"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"e59af1ff0e380afd5f36244a91540e4fd5f67d32","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    References a local Identity API resource, such as a `group` or `user` to"},{"line_number":78,"context_line":"    which the remote attributes will be mapped."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    Each object follows one of two structures, described below."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    To map a remote attribute value directly to a local attribute, identify the"},{"line_number":83,"context_line":"    local resource type and attribute:"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"7adec928_5cf940c7","line":80,"in_reply_to":"9ad9bd40_6513c75c","updated":"2014-05-09 15:48:34.000000000","message":"They can be done in separate rules.","commit_id":"2daf1eeee8d8a2329cb661c66d2635a05c00be66"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"019748651a020b2b490aa1c6e37f09dff5d973a9","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        }"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    This assigns identity attributes to ephemeral users. Missing `user`"},{"line_number":92,"context_line":"    attribute will result in HTTP 401 Unauthorized response."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    For attribute type and value mapping, identify the local"},{"line_number":95,"context_line":"    resource type, attribute, and value:"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"9ad9bd40_2a3c2ce2","line":92,"updated":"2014-05-02 00:43:46.000000000","message":"for what operation will a 401 response be returned?\n\nShould this say \"A `user` attribute mapping must be present. If no `user` attribute mapping is present then ... will result in a HTTP 401 Unauthorized response.\" ?","commit_id":"2daf1eeee8d8a2329cb661c66d2635a05c00be66"},{"author":{"_account_id":2448,"name":"Diane Fleming","email":"dfleming@austin.rr.com","username":"diane-fleming"},"change_message_id":"454be47547b68faa8045e479cff26d78009451d3","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    References a local Identity API resource, such as a `group` or `user` to"},{"line_number":78,"context_line":"    which the remote attributes will be mapped."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    Each object follows one of two structures, described below."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    To map a remote attribute value directly to a local attribute, identify the"},{"line_number":83,"context_line":"    local resource type and attribute:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"1ae5cdf2_4270efa3","line":80,"updated":"2014-06-12 22:05:56.000000000","message":"Each object has one of two structures, as follows.","commit_id":"f2a150ccb762cf2a5b8420cb098173da14ef4cab"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1caeb083426ab793dd9e5643780e621e83f1c7b2","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    References a local Identity API resource, such as a `group` or `user` to"},{"line_number":78,"context_line":"    which the remote attributes will be mapped."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    Each object follows one of two structures, described below."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    To map a remote attribute value directly to a local attribute, identify the"},{"line_number":83,"context_line":"    local resource type and attribute:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"1ae5cdf2_f1e9c31a","line":80,"in_reply_to":"1ae5cdf2_4270efa3","updated":"2014-06-27 18:48:20.000000000","message":"Done","commit_id":"f2a150ccb762cf2a5b8420cb098173da14ef4cab"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"248419340c15afa6aa62bd1cf397f6415b673bcc","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        }"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    This assigns identity attributes to ephemeral users. Missing `user`"},{"line_number":92,"context_line":"    attribute will result in HTTP 401 Unauthorized response."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    For attribute type and value mapping, identify the local"},{"line_number":95,"context_line":"    resource type, attribute, and value:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"7adec928_dcc16630","line":92,"updated":"2014-05-18 15:45:54.000000000","message":"For what operation will a 401 response be returned?\n\nShould this say \"A `user` attribute mapping must be present. If no `user` attribute mapping is present then ... will result in a HTTP 401 Unauthorized response.\" ? (Fill in the ... with whatever the operation is that will result in 401 response.)","commit_id":"f2a150ccb762cf2a5b8420cb098173da14ef4cab"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1caeb083426ab793dd9e5643780e621e83f1c7b2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        }"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    This assigns identity attributes to ephemeral users. Missing `user`"},{"line_number":92,"context_line":"    attribute will result in HTTP 401 Unauthorized response."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    For attribute type and value mapping, identify the local"},{"line_number":95,"context_line":"    resource type, attribute, and value:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"1ae5cdf2_916ddf9b","line":92,"in_reply_to":"7adec928_1d6ada80","updated":"2014-06-27 18:48:20.000000000","message":"Hope this clears it up ...\n\nNote that at least one rule must have a `user` attribute. If the `user` attribute is missing when processing an assertion, the action will return in an HTTP 401 Unauthorized error.","commit_id":"f2a150ccb762cf2a5b8420cb098173da14ef4cab"},{"author":{"_account_id":9162,"name":"Lana Brindley","email":"openstack@lanabrindley.com","username":"loquacity"},"change_message_id":"54263b86828b4be8638db36cfcb0db522ce492fd","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        }"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    This assigns identity attributes to ephemeral users. Missing `user`"},{"line_number":92,"context_line":"    attribute will result in HTTP 401 Unauthorized response."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    For attribute type and value mapping, identify the local"},{"line_number":95,"context_line":"    resource type, attribute, and value:"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"7adec928_1d6ada80","line":92,"in_reply_to":"7adec928_dcc16630","updated":"2014-05-19 04:19:38.000000000","message":"I agree with Brant\u0027s comment that this is ambiguous and the action is missing, but think his rewrite is a little lengthy. I would run with something like \"if the `user` attribute is missing, the [whatever the action is] will return an HTTP 401 Unauthorized error.\"","commit_id":"f2a150ccb762cf2a5b8420cb098173da14ef4cab"}],"v3/src/markdown/identity-api-v3-os-federation-ext.md":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7007495eff3f03d7a85a081de58009168ca26821","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    Note that at least one rule must have a `user` attribute. If the `user`"},{"line_number":94,"context_line":"    attribute is missing when processing an assertion, the action will return"},{"line_number":95,"context_line":"    in an HTTP 401 Unauthorized error."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    For attribute type and value mapping, identify the local"},{"line_number":98,"context_line":"    resource type, attribute, and value:"}],"source_content_type":"text/x-markdown","patch_set":7,"id":"dab895d6_22aacf70","line":95,"updated":"2014-06-29 17:07:57.000000000","message":"change \"in an\" to \"an\"","commit_id":"5eaa085d7571dc7051fe1600d7e0f54832b13427"}]}
