)]}'
{"v3/src/markdown/identity-api-v3-os-revoke-ext.md":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"29f22c6a06bb4d5ffe02b20194f15fa05a92fe03","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- `expires_at` (string, ISO 8601 extended format date time with microseconds)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  Deprecated as of Juno release in favor of `audit_id` and `audit_chain_id`."},{"line_number":63,"context_line":"  If an expires_at exists in the revocation event, it will continue to be"},{"line_number":64,"context_line":"  utilized to match tokens."},{"line_number":65,"context_line":"  "}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_92492d8e","line":62,"updated":"2014-08-18 03:26:58.000000000","message":"want to use some sort of indicator here, like ** around Deprecated?","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d342728b59e04d1c99251fbf0cef055c609fd35c","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- `expires_at` (string, ISO 8601 extended format date time with microseconds)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  Deprecated as of Juno release in favor of `audit_id` and `audit_chain_id`."},{"line_number":63,"context_line":"  If an expires_at exists in the revocation event, it will continue to be"},{"line_number":64,"context_line":"  utilized to match tokens."},{"line_number":65,"context_line":"  "}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_f5540bcc","line":62,"in_reply_to":"1abeadc6_92492d8e","updated":"2014-08-18 03:44:52.000000000","message":"Done","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"29f22c6a06bb4d5ffe02b20194f15fa05a92fe03","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  Deprecated as of Juno release in favor of `audit_id` and `audit_chain_id`."},{"line_number":63,"context_line":"  If an expires_at exists in the revocation event, it will continue to be"},{"line_number":64,"context_line":"  utilized to match tokens."},{"line_number":65,"context_line":"  "},{"line_number":66,"context_line":"  Specifies the exact expiration time of one or more tokens to be revoked."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  This attribute is useful for revoking chains of tokens, such as those produced when"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_72449174","line":65,"updated":"2014-08-18 03:26:58.000000000","message":"white space!","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d342728b59e04d1c99251fbf0cef055c609fd35c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  Deprecated as of Juno release in favor of `audit_id` and `audit_chain_id`."},{"line_number":63,"context_line":"  If an expires_at exists in the revocation event, it will continue to be"},{"line_number":64,"context_line":"  utilized to match tokens."},{"line_number":65,"context_line":"  "},{"line_number":66,"context_line":"  Specifies the exact expiration time of one or more tokens to be revoked."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  This attribute is useful for revoking chains of tokens, such as those produced when"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_d5470f1c","line":65,"in_reply_to":"1abeadc6_72449174","updated":"2014-08-18 03:44:52.000000000","message":"Done","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"29f22c6a06bb4d5ffe02b20194f15fa05a92fe03","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"- `audit_id` (string)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"   Specifies the unique identifier assigned to the token itself."},{"line_number":77,"context_line":"   "},{"line_number":78,"context_line":"   This will revoke a single token without affecting the status of any other"},{"line_number":79,"context_line":"   token. This attribute mirrors the use of the Token Revocation List but does"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_b22469c7","line":76,"updated":"2014-08-18 03:26:58.000000000","message":"add brackets to unique identifier (UUID)","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d342728b59e04d1c99251fbf0cef055c609fd35c","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"- `audit_id` (string)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"   Specifies the unique identifier assigned to the token itself."},{"line_number":77,"context_line":"   "},{"line_number":78,"context_line":"   This will revoke a single token without affecting the status of any other"},{"line_number":79,"context_line":"   token. This attribute mirrors the use of the Token Revocation List but does"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_b54a9325","line":76,"in_reply_to":"1abeadc6_b22469c7","updated":"2014-08-18 03:44:52.000000000","message":"Done","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"29f22c6a06bb4d5ffe02b20194f15fa05a92fe03","unresolved":false,"context_lines":[{"line_number":76,"context_line":"   Specifies the unique identifier assigned to the token itself."},{"line_number":77,"context_line":"   "},{"line_number":78,"context_line":"   This will revoke a single token without affecting the status of any other"},{"line_number":79,"context_line":"   token. This attribute mirrors the use of the Token Revocation List but does"},{"line_number":80,"context_line":"   not utilize data that could convey authorization."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- `audit_chain_id` (string)"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_b20b892a","line":79,"updated":"2014-08-18 03:26:58.000000000","message":"pluralize token?\n\nAlso, is `Token Revocation List` the same one as line 101? \nMaybe encapsulate the words in ``","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d342728b59e04d1c99251fbf0cef055c609fd35c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"   Specifies the unique identifier assigned to the token itself."},{"line_number":77,"context_line":"   "},{"line_number":78,"context_line":"   This will revoke a single token without affecting the status of any other"},{"line_number":79,"context_line":"   token. This attribute mirrors the use of the Token Revocation List but does"},{"line_number":80,"context_line":"   not utilize data that could convey authorization."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- `audit_chain_id` (string)"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_f5e6cb43","line":79,"in_reply_to":"1abeadc6_b20b892a","updated":"2014-08-18 03:44:52.000000000","message":"I\u0027ll see if I can make the pluralization less awkward, but i believe the pluralization is correct in this case.","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"29f22c6a06bb4d5ffe02b20194f15fa05a92fe03","unresolved":false,"context_lines":[{"line_number":84,"context_line":"   Specifies a group of tokens based upon the `audit_id` of the first token"},{"line_number":85,"context_line":"   in the chain. If a revocation event specifies the `audit_chain_id` any token"},{"line_number":86,"context_line":"   that is part of the token chain (based upon the original token at the start"},{"line_number":87,"context_line":"   of the chain) will be revoked."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"There properties are additive: Only a token that meets all of the specified"},{"line_number":90,"context_line":"criteria is considered revoked."}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_950e7733","line":87,"updated":"2014-08-18 03:26:58.000000000","message":"not necessary, but maybe an example would help...\n\nCan this only happen when you rescope a token? when you use oauth/trusts? or just exchange one token for another?","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"d342728b59e04d1c99251fbf0cef055c609fd35c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"   Specifies a group of tokens based upon the `audit_id` of the first token"},{"line_number":85,"context_line":"   in the chain. If a revocation event specifies the `audit_chain_id` any token"},{"line_number":86,"context_line":"   that is part of the token chain (based upon the original token at the start"},{"line_number":87,"context_line":"   of the chain) will be revoked."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"There properties are additive: Only a token that meets all of the specified"},{"line_number":90,"context_line":"criteria is considered revoked."}],"source_content_type":"text/x-markdown","patch_set":2,"id":"1abeadc6_35e9231b","line":87,"in_reply_to":"1abeadc6_950e7733","updated":"2014-08-18 03:44:52.000000000","message":"This is only for token rescope, one token for another. This is *not* for oauth, trusts, etc. Those are not explicitly token chains (this is the same as maintaining the expiry across rescoping of a token)","commit_id":"79573f38679bab63bb97af94a085f9d269afe638"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5b7b979742545cbf746f02dc5136de6c9f1364ee","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  Specifies the unique identifier (UUID) assigned to the token itself."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  This will revoke a single token only. This attribute mirrors the use of the"},{"line_number":79,"context_line":"  ``Token Revocation List`` (the mechanism used prior to revocation events) "},{"line_number":80,"context_line":"  but does not utilize data that could convey authorization (the ``token id``)."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- `audit_chain_id` (string)"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1abeadc6_d0955d89","line":79,"updated":"2014-08-18 04:39:38.000000000","message":"white space :(","commit_id":"968bf092d00be5b4eed30903986fb9cfff3aa1e5"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"39164c5df44e5709d594587aec19e720b620d16a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  Specifies the unique identifier (UUID) assigned to the token itself."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  This will revoke a single token only. This attribute mirrors the use of the"},{"line_number":79,"context_line":"  ``Token Revocation List`` (the mechanism used prior to revocation events) "},{"line_number":80,"context_line":"  but does not utilize data that could convey authorization (the ``token id``)."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- `audit_chain_id` (string)"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"1abeadc6_30ee91ed","line":79,"in_reply_to":"1abeadc6_d0955d89","updated":"2014-08-18 04:49:52.000000000","message":"ARGH... in next patch..","commit_id":"968bf092d00be5b4eed30903986fb9cfff3aa1e5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c5ad6d6df831fd872c4b23abad13ea5e83bb6b78","unresolved":false,"context_lines":[{"line_number":4,"context_line":"This extension provides a list of token revocation. Each event expresses a set"},{"line_number":5,"context_line":"of criteria which describes a set of tokens that are no longer be valid."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension requires v3.2+ of the Identity API."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"API Resources"},{"line_number":10,"context_line":"-------------"}],"source_content_type":"text/x-markdown","patch_set":9,"id":"1abeadc6_e48f7628","line":7,"updated":"2014-08-20 22:17:22.000000000","message":"This doc should have a \"What\u0027s new in 1.1\" section, like identity-api: https://github.com/openstack/identity-api/blob/master/v3/src/markdown/identity-api-v3.md#whats-new-in-version-31","commit_id":"2871719be6a4737626bdec58c8e130e89fd6a529"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"c0e00c298b83f74ebf455445b716a34be03f7d27","unresolved":false,"context_lines":[{"line_number":4,"context_line":"This extension provides a list of token revocation. Each event expresses a set"},{"line_number":5,"context_line":"of criteria which describes a set of tokens that are no longer be valid."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension requires v3.2+ of the Identity API."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"API Resources"},{"line_number":10,"context_line":"-------------"}],"source_content_type":"text/x-markdown","patch_set":9,"id":"1abeadc6_84fa4241","line":7,"in_reply_to":"1abeadc6_e48f7628","updated":"2014-08-20 22:22:27.000000000","message":"Done in next","commit_id":"2871719be6a4737626bdec58c8e130e89fd6a529"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c5ad6d6df831fd872c4b23abad13ea5e83bb6b78","unresolved":false,"context_lines":[{"line_number":84,"context_line":" Specifies a group of tokens based upon the `audit_id` of the first token"},{"line_number":85,"context_line":" in the chain. If a revocation event specifies the `audit_chain_id` any token"},{"line_number":86,"context_line":" that is part of the token chain (based upon the original token at the start"},{"line_number":87,"context_line":" of the chain) will be revoked."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"There properties are additive: Only a token that meets all of the specified"},{"line_number":90,"context_line":"criteria is considered revoked."}],"source_content_type":"text/x-markdown","patch_set":9,"id":"1abeadc6_2487aed8","line":87,"updated":"2014-08-20 22:17:22.000000000","message":"I don\u0027t understand how this is going to work... \n\nyou revoke a token, so now you get a revocation event with audit_id\u003d\u003cid\u003e.\n\nnow we\u0027re validating a token and its audit_chain_id matches the audit_id. shouldn\u0027t it be revoked?\n\nwhy are both audit_id and audit_chain_id needed in the revocation event?","commit_id":"2871719be6a4737626bdec58c8e130e89fd6a529"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"c0e00c298b83f74ebf455445b716a34be03f7d27","unresolved":false,"context_lines":[{"line_number":84,"context_line":" Specifies a group of tokens based upon the `audit_id` of the first token"},{"line_number":85,"context_line":" in the chain. If a revocation event specifies the `audit_chain_id` any token"},{"line_number":86,"context_line":" that is part of the token chain (based upon the original token at the start"},{"line_number":87,"context_line":" of the chain) will be revoked."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"There properties are additive: Only a token that meets all of the specified"},{"line_number":90,"context_line":"criteria is considered revoked."}],"source_content_type":"text/x-markdown","patch_set":9,"id":"1abeadc6_a47c9eb6","line":87,"in_reply_to":"1abeadc6_2487aed8","updated":"2014-08-20 22:22:27.000000000","message":"you can use either (it\u0027s additive for matching), basically if you use audit_chain_id you\u0027ll catch all the tokens in the chain - this works like the expires field (but no bleed to unrelated tokens). If you use audit_id it only revokes that specific token.\n\nIn reality you\u0027d use either audit_id or audit_chain_id (similar to how you\u0027d use project_id or domain_id)","commit_id":"2871719be6a4737626bdec58c8e130e89fd6a529"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c5ad6d6df831fd872c4b23abad13ea5e83bb6b78","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                \"issued_before\": \"2014-02-27T18:30:59.999999Z\","},{"line_number":121,"context_line":"                \"user_id\": \"f287de\""},{"line_number":122,"context_line":"            },"},{"line_number":123,"context_line":"            {"},{"line_number":124,"context_line":"                \"expires_at\": \"2014-02-27T22:10:10.999999Z\","},{"line_number":125,"context_line":"                \"issued_before\": \"2014-02-27T18:30:59.999999Z\","},{"line_number":126,"context_line":"                \"project_id\": \"976bf9\""}],"source_content_type":"text/x-markdown","patch_set":9,"id":"1abeadc6_0459d28d","line":123,"updated":"2014-08-20 22:17:22.000000000","message":"change to audit_id","commit_id":"2871719be6a4737626bdec58c8e130e89fd6a529"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"c0e00c298b83f74ebf455445b716a34be03f7d27","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                \"issued_before\": \"2014-02-27T18:30:59.999999Z\","},{"line_number":121,"context_line":"                \"user_id\": \"f287de\""},{"line_number":122,"context_line":"            },"},{"line_number":123,"context_line":"            {"},{"line_number":124,"context_line":"                \"expires_at\": \"2014-02-27T22:10:10.999999Z\","},{"line_number":125,"context_line":"                \"issued_before\": \"2014-02-27T18:30:59.999999Z\","},{"line_number":126,"context_line":"                \"project_id\": \"976bf9\""}],"source_content_type":"text/x-markdown","patch_set":9,"id":"1abeadc6_8456c228","line":123,"in_reply_to":"1abeadc6_0459d28d","updated":"2014-08-20 22:22:27.000000000","message":"done in next","commit_id":"2871719be6a4737626bdec58c8e130e89fd6a529"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a80b8e3b380de34583ba5ee04bf68fc166aff3cd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension requires v3.2+ of the Identity API."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"What\u0027s New in v1.1"},{"line_number":10,"context_line":"------------------"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"- Use of `expires_at` has been deprecated in favor of using `audit_id` and"}],"source_content_type":"text/x-markdown","patch_set":11,"id":"1abeadc6_b7dadb14","line":9,"updated":"2014-08-22 05:33:59.000000000","message":"++","commit_id":"79df3239131c682e466c70176da9df224482ba5f"}]}
