)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"400eda7fbc62106f5b44b6fef6f14c4b7013ada0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"18b7b127_caf9bb6f","updated":"2024-04-03 15:47:58.000000000","message":"we need to adjust naming, but otherwise all fine","commit_id":"1a27064632c27e57ca17da4bc9556faaa6aa805d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d7a6c2547ec6c613d64962cb077d51428cfe9b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"79e6f663_b8ba3fda","updated":"2024-04-26 10:46:03.000000000","message":"One tiny issue inline. Happy to approve once fixed.","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"fc95399eb84197276e3704d2023733bb39476972","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"042b6019_1c4940b5","updated":"2024-05-10 15:25:01.000000000","message":"recheck unrelated infra failure","commit_id":"00ed7a5eed6817eca27a99a0353784e7f92974fd"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"f3134bef0db1159d4675608df75243e3ece5884c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"edb3aada_f2fd776e","updated":"2024-05-09 11:02:29.000000000","message":"thanks","commit_id":"00ed7a5eed6817eca27a99a0353784e7f92974fd"}],"openstack/cloud/_identity.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"590094c474ed7ddaaee15315f8b9bf658dfa84c7","unresolved":true,"context_lines":[{"line_number":1119,"context_line":"                    # proxy"},{"line_number":1120,"context_line":"                    filters[\u0027scope.\u0027 + k + \u0027.id\u0027] \u003d filters[k]"},{"line_number":1121,"context_line":"                del filters[k]"},{"line_number":1122,"context_line":"        if \u0027inherited_to\u0027 in filters:"},{"line_number":1123,"context_line":"            filters[\u0027scope.OS-INHERIT:inherited_to\u0027] \u003d filters[\u0027inherited_to\u0027]"},{"line_number":1124,"context_line":"            del filters[\u0027inherited_to\u0027]"},{"line_number":1125,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d5b09da1_3e54a0a9","line":1122,"updated":"2024-04-10 09:22:53.000000000","message":"oh, I actually missed the fact this parameter is/was present in the cloud layer. Changing it here requires definitely a release note.\nCan you please also add a new test into https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/tests/unit/cloud/test_role_assignment.py that will verify this part of the change?","commit_id":"f79435fc3a1f88b79099c8b93ed45d4b1abc110e"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"1ad50711f675b788daa1e753cfc2c1acfddb5657","unresolved":false,"context_lines":[{"line_number":1119,"context_line":"                    # proxy"},{"line_number":1120,"context_line":"                    filters[\u0027scope.\u0027 + k + \u0027.id\u0027] \u003d filters[k]"},{"line_number":1121,"context_line":"                del filters[k]"},{"line_number":1122,"context_line":"        if \u0027inherited_to\u0027 in filters:"},{"line_number":1123,"context_line":"            filters[\u0027scope.OS-INHERIT:inherited_to\u0027] \u003d filters[\u0027inherited_to\u0027]"},{"line_number":1124,"context_line":"            del filters[\u0027inherited_to\u0027]"},{"line_number":1125,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d3f0e828_1fc15fac","line":1122,"in_reply_to":"5da68513_e21cced8","updated":"2024-10-16 21:24:18.000000000","message":"Support added here: https://review.opendev.org/c/openstack/openstacksdk/+/929578","commit_id":"f79435fc3a1f88b79099c8b93ed45d4b1abc110e"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"12405fb8fdf63201bdd257e6078510bd04f9a9c3","unresolved":true,"context_lines":[{"line_number":1119,"context_line":"                    # proxy"},{"line_number":1120,"context_line":"                    filters[\u0027scope.\u0027 + k + \u0027.id\u0027] \u003d filters[k]"},{"line_number":1121,"context_line":"                del filters[k]"},{"line_number":1122,"context_line":"        if \u0027inherited_to\u0027 in filters:"},{"line_number":1123,"context_line":"            filters[\u0027scope.OS-INHERIT:inherited_to\u0027] \u003d filters[\u0027inherited_to\u0027]"},{"line_number":1124,"context_line":"            del filters[\u0027inherited_to\u0027]"},{"line_number":1125,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5da68513_e21cced8","line":1122,"in_reply_to":"636d3b72_4c9de449","updated":"2024-04-22 22:36:52.000000000","message":"(I need to be able to grant inherited roles to test filtering for them in the cloud layer...)","commit_id":"f79435fc3a1f88b79099c8b93ed45d4b1abc110e"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"2c3d23601a1976b9cd3d2d705345a5c43b35b674","unresolved":true,"context_lines":[{"line_number":1119,"context_line":"                    # proxy"},{"line_number":1120,"context_line":"                    filters[\u0027scope.\u0027 + k + \u0027.id\u0027] \u003d filters[k]"},{"line_number":1121,"context_line":"                del filters[k]"},{"line_number":1122,"context_line":"        if \u0027inherited_to\u0027 in filters:"},{"line_number":1123,"context_line":"            filters[\u0027scope.OS-INHERIT:inherited_to\u0027] \u003d filters[\u0027inherited_to\u0027]"},{"line_number":1124,"context_line":"            del filters[\u0027inherited_to\u0027]"},{"line_number":1125,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"636d3b72_4c9de449","line":1122,"in_reply_to":"d5b09da1_3e54a0a9","updated":"2024-04-22 22:09:26.000000000","message":"Does SDK currently support granting inherited roles? I found the SDK methods for assigning roles but didn\u0027t see any way to specify whether roles were added as inheritable or not.","commit_id":"f79435fc3a1f88b79099c8b93ed45d4b1abc110e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"408b81f130d27b553b3e723dda19a102cbe23d06","unresolved":true,"context_lines":[{"line_number":1127,"context_line":"            del filters[\u0027inherited_to\u0027]"},{"line_number":1128,"context_line":"        elif \u0027os_inherit_extension_inherited_to\u0027 in filters:"},{"line_number":1129,"context_line":"            warnings.warn("},{"line_number":1130,"context_line":"                \"os_inherit_extension_inherited_to is deprecated. Use inherited_to instead.\","},{"line_number":1131,"context_line":"                os_warnings.OpenStackDeprecationWarning,"},{"line_number":1132,"context_line":"            )"},{"line_number":1133,"context_line":"            filters[\u0027scope.OS-INHERIT:inherited_to\u0027] \u003d filters["}],"source_content_type":"text/x-python","patch_set":7,"id":"f0291993_693ff4d0","line":1130,"updated":"2024-05-08 16:32:15.000000000","message":"Can you wrap this to \u003c\u003d 79 characters?","commit_id":"3e4dde7559007152b28864c1ca513c40d24ef175"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"5aa6df07af2c9b3cbb0bac0ec3d56f360a2bcbe0","unresolved":false,"context_lines":[{"line_number":1127,"context_line":"            del filters[\u0027inherited_to\u0027]"},{"line_number":1128,"context_line":"        elif \u0027os_inherit_extension_inherited_to\u0027 in filters:"},{"line_number":1129,"context_line":"            warnings.warn("},{"line_number":1130,"context_line":"                \"os_inherit_extension_inherited_to is deprecated. Use inherited_to instead.\","},{"line_number":1131,"context_line":"                os_warnings.OpenStackDeprecationWarning,"},{"line_number":1132,"context_line":"            )"},{"line_number":1133,"context_line":"            filters[\u0027scope.OS-INHERIT:inherited_to\u0027] \u003d filters["}],"source_content_type":"text/x-python","patch_set":7,"id":"35bd9bbf_25fd0904","line":1130,"in_reply_to":"f0291993_693ff4d0","updated":"2024-05-08 16:43:05.000000000","message":"Done","commit_id":"3e4dde7559007152b28864c1ca513c40d24ef175"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"408b81f130d27b553b3e723dda19a102cbe23d06","unresolved":true,"context_lines":[{"line_number":1150,"context_line":"            * \u0027role\u0027 (string) - Role ID to be used as query filter."},{"line_number":1151,"context_line":"            * \u0027inherited_to\u0027 (string) - Return inherited"},{"line_number":1152,"context_line":"              role assignments for either \u0027projects\u0027 or \u0027domains\u0027."},{"line_number":1153,"context_line":"            * \u0027os_inherit_extension_inherited_to\u0027 (string) - Deprecated; use \u0027inherited_to\u0027 instead."},{"line_number":1154,"context_line":"            * \u0027effective\u0027 (boolean) - Return effective role assignments."},{"line_number":1155,"context_line":"            * \u0027include_subtree\u0027 (boolean) - Include subtree"},{"line_number":1156,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"d149a9b1_da8e2f97","line":1153,"updated":"2024-05-08 16:32:15.000000000","message":"and this","commit_id":"3e4dde7559007152b28864c1ca513c40d24ef175"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"5aa6df07af2c9b3cbb0bac0ec3d56f360a2bcbe0","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"            * \u0027role\u0027 (string) - Role ID to be used as query filter."},{"line_number":1151,"context_line":"            * \u0027inherited_to\u0027 (string) - Return inherited"},{"line_number":1152,"context_line":"              role assignments for either \u0027projects\u0027 or \u0027domains\u0027."},{"line_number":1153,"context_line":"            * \u0027os_inherit_extension_inherited_to\u0027 (string) - Deprecated; use \u0027inherited_to\u0027 instead."},{"line_number":1154,"context_line":"            * \u0027effective\u0027 (boolean) - Return effective role assignments."},{"line_number":1155,"context_line":"            * \u0027include_subtree\u0027 (boolean) - Include subtree"},{"line_number":1156,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ac8ea6df_c634b10f","line":1153,"in_reply_to":"d149a9b1_da8e2f97","updated":"2024-05-08 16:43:05.000000000","message":"Done","commit_id":"3e4dde7559007152b28864c1ca513c40d24ef175"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"408b81f130d27b553b3e723dda19a102cbe23d06","unresolved":true,"context_lines":[{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":"        if \u0027os_inherit_extension_inherited_to\u0027 in filters:"},{"line_number":1197,"context_line":"            warnings.warn("},{"line_number":1198,"context_line":"                \"os_inherit_extension_inherited_to is deprecated. Use inherited_to instead.\","},{"line_number":1199,"context_line":"                os_warnings.OpenStackDeprecationWarning,"},{"line_number":1200,"context_line":"            )"},{"line_number":1201,"context_line":"            filters[\u0027inherited_to\u0027] \u003d filters.pop("}],"source_content_type":"text/x-python","patch_set":7,"id":"10a6e8c8_5d598799","line":1198,"updated":"2024-05-08 16:32:15.000000000","message":"And this","commit_id":"3e4dde7559007152b28864c1ca513c40d24ef175"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"5aa6df07af2c9b3cbb0bac0ec3d56f360a2bcbe0","unresolved":false,"context_lines":[{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":"        if \u0027os_inherit_extension_inherited_to\u0027 in filters:"},{"line_number":1197,"context_line":"            warnings.warn("},{"line_number":1198,"context_line":"                \"os_inherit_extension_inherited_to is deprecated. Use inherited_to instead.\","},{"line_number":1199,"context_line":"                os_warnings.OpenStackDeprecationWarning,"},{"line_number":1200,"context_line":"            )"},{"line_number":1201,"context_line":"            filters[\u0027inherited_to\u0027] \u003d filters.pop("}],"source_content_type":"text/x-python","patch_set":7,"id":"0a459bd2_ea41a907","line":1198,"in_reply_to":"10a6e8c8_5d598799","updated":"2024-05-08 16:43:05.000000000","message":"Done","commit_id":"3e4dde7559007152b28864c1ca513c40d24ef175"}],"openstack/identity/v3/_proxy.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c0346bcda41588b955b13de1f0965360e5eabc88","unresolved":true,"context_lines":[{"line_number":1223,"context_line":"        :param kwargs query: Optional query parameters to be sent to limit"},{"line_number":1224,"context_line":"            the resources being returned. The options"},{"line_number":1225,"context_line":"            are: group_id, role_id, scope_domain_id,"},{"line_number":1226,"context_line":"            scope_project_id, inherited, user_id, include_names,"},{"line_number":1227,"context_line":"            include_subtree."},{"line_number":1228,"context_line":"        :return:"},{"line_number":1229,"context_line":"            :class:`~openstack.identity.v3.role_assignment.RoleAssignment`"}],"source_content_type":"text/x-python","patch_set":4,"id":"22da6438_c7b0647c","line":1226,"updated":"2024-04-24 08:47:20.000000000","message":"p.s. \"inherited_to\" is the correct attribute name","commit_id":"f79435fc3a1f88b79099c8b93ed45d4b1abc110e"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"ff896edd2a24335f1fa1d579171d1a853ab1a9f6","unresolved":false,"context_lines":[{"line_number":1223,"context_line":"        :param kwargs query: Optional query parameters to be sent to limit"},{"line_number":1224,"context_line":"            the resources being returned. The options"},{"line_number":1225,"context_line":"            are: group_id, role_id, scope_domain_id,"},{"line_number":1226,"context_line":"            scope_project_id, inherited, user_id, include_names,"},{"line_number":1227,"context_line":"            include_subtree."},{"line_number":1228,"context_line":"        :return:"},{"line_number":1229,"context_line":"            :class:`~openstack.identity.v3.role_assignment.RoleAssignment`"}],"source_content_type":"text/x-python","patch_set":4,"id":"b87ea74e_b1dfb4c3","line":1226,"in_reply_to":"22da6438_c7b0647c","updated":"2024-04-24 15:59:09.000000000","message":"Yep, this was fixed in patch set 5.","commit_id":"f79435fc3a1f88b79099c8b93ed45d4b1abc110e"}],"openstack/identity/v3/role_assignment.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"400eda7fbc62106f5b44b6fef6f14c4b7013ada0","unresolved":true,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027os_inherit_extension_inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa03fff8_f623c287","line":31,"updated":"2024-04-03 15:47:58.000000000","message":"please remove \"os_inherit_extension_\" prefix. This makes not so much sense here","commit_id":"1a27064632c27e57ca17da4bc9556faaa6aa805d"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"4467eee1953ab5ef9376c77cf1653b355b85849b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027os_inherit_extension_inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e275c9b6_62914e5f","line":31,"in_reply_to":"fa03fff8_f623c287","updated":"2024-04-04 19:33:55.000000000","message":"Done","commit_id":"1a27064632c27e57ca17da4bc9556faaa6aa805d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d7a6c2547ec6c613d64962cb077d51428cfe9b2","unresolved":true,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"d3fd670d_89e5ee6c","line":31,"updated":"2024-04-26 10:46:03.000000000","message":"`inherited_to` isn\u0027t a valid query parameter by itself, right? You need to pass `scope.OS-INHERIT:inherited_to`? If so, you don\u0027t want this. I suspect the reason we have e.g. both `group_id` and `group_id\u003d\u0027group.id\u0027` is because you can pass both `group_id\u003dfoo` and `group.id\u003dfoo` as query string parameters (though it\u0027s equally possible this is a bug 😅","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"500ea938e65e2e8f104b66cb9e3af01bc65e4dc1","unresolved":true,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"e51920e2_c930846a","line":31,"in_reply_to":"63471be0_55f6d2e1","updated":"2024-05-01 16:20:12.000000000","message":"Ah, no, I think you\u0027ve misunderstood me. `QueryParameters` accepts both positional and keyword arguments (args and kwargs). Positional arguments must be strings, while keyword arguments must have string values. We normally use the former but we must use the latter where a query parameter contains characters that are not valid in Python identifiers. For example:\n\n```\nclass FooResource(resource.Resource):\n    base_path \u003d \u0027/foo\u0027\n    resources_key \u003d \u0027foos\u0027\n    \n    allow_list \u003d True\n    \n    _query_mapping \u003d resource.QueryParameters(\n        \u0027bar\u0027,\n        wow_cool\u003d\u0027wow.cool\u0027,\n    )\n```\n\nThis defines two query parameters. From SDK, you can use them like so:\n\n```\nFooResource.list(bar\u003d\u0027baz\u0027, wow_cool\u003d\u0027thing\u0027)\n```\n\nwhich will translate to this call:\n\n```\nGET /foos?bar\u003dbaz\u0026wow.cool\u003dthing\n```\n\nDo you see the difference in the keywords? In Python we have `baz` and `wow_cool` (underscore), while in the cURL call we have `baz` and `wow.cool` (period). This is necessary because a period (or a colon) in not valid in a Python identifier. If we didn\u0027t do this mapping, a user would be forced to attempt the following which is not valid Python code:\n\n```\nFooResource.list(bar\u003d\u0027baz\u0027, wow.cool\u003d\u0027thing\u0027)\n```\n\nHere we are mapping the query string parameter `scope.OS-INHERIT:inherited_to` to the Python identifier `inherited_to`. However, you\u0027re also passing the `inherited_to` positional argument which will map directly to the `inherited_to` query string parameter. My question is whether `inherited_to` *also* a valid query string parameter? Put another way, can you do this?\n\n```\nGET /role_assignments?inherited_to\u003dprojects\n```\n\nTo the best of my knowledge, you can\u0027t. If you can\u0027t, you only want the `inherited_to\u003d\u0027scope.OS-INHERIT:inherited_to\u0027` mapping below.","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"5aa6df07af2c9b3cbb0bac0ec3d56f360a2bcbe0","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"74588d58_03604c2b","line":31,"in_reply_to":"b91b2540_b7b3b0d7","updated":"2024-05-08 16:43:05.000000000","message":"Done","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"5c066de9b2f2b3a0b5c573bcce33ec022de4f8a3","unresolved":true,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeda7ce_e4e74c2e","line":31,"in_reply_to":"d24f5927_7004428f","updated":"2024-05-01 20:51:33.000000000","message":"Ah, I see what you\u0027re asking. I\u0027d assumed that since both `GET /role_assignments?scope_project_id\u003dfoo` and `GET /role_assignments?scope_domain_id\u003dfoo` (with underscores) are valid, `GET /role_assignments?inherited_to\u003dprojects` should be valid too, but maybe this is wrong and it should _not_ be valid? I don\u0027t actually know the reasoning behind how these are named, and I\u0027m curious how it\u0027s decided.","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"1c67dc47fe9f646f0fae225fb04adc213345df41","unresolved":true,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"63471be0_55f6d2e1","line":31,"in_reply_to":"d3fd670d_89e5ee6c","updated":"2024-04-26 21:33:21.000000000","message":"I\u0027m not totally sure, but I think I _do_ want it to be a valid query string? It used to be called `os_inherit_extension_inherited_to` back in patchset 1 which was unnecessarily long, so Artem suggested changing it to just `inherited_to`.","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"408b81f130d27b553b3e723dda19a102cbe23d06","unresolved":true,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"b91b2540_b7b3b0d7","line":31,"in_reply_to":"dfeda7ce_e4e74c2e","updated":"2024-05-08 16:32:15.000000000","message":"As discussed today, we should drop this: it\u0027s not valid.\n\nWe should also drop these (but in a follow-up):\n\n```\n        \u0027group_id\u0027,\n        \u0027role_id\u0027,\n        \u0027scope_domain_id\u0027,\n        \u0027scope_project_id\u0027,\n        \u0027user_id\u0027,\n```","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"573ba3d6d1ca6677aa2d6b57e0af755f233aded2","unresolved":true,"context_lines":[{"line_number":28,"context_line":"        \u0027scope_project_id\u0027,"},{"line_number":29,"context_line":"        \u0027user_id\u0027,"},{"line_number":30,"context_line":"        \u0027effective\u0027,"},{"line_number":31,"context_line":"        \u0027inherited_to\u0027,"},{"line_number":32,"context_line":"        \u0027include_names\u0027,"},{"line_number":33,"context_line":"        \u0027include_subtree\u0027,"},{"line_number":34,"context_line":"        role_id\u003d\u0027role.id\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"d24f5927_7004428f","line":31,"in_reply_to":"e51920e2_c930846a","updated":"2024-05-01 16:21:55.000000000","message":"The docstring for `QueryParameters` also explains this, albeit somewhat tersely.\n\n```\n\u003e\u003e\u003e from openstack import resource\n\u003e\u003e\u003e help(resource.QueryParameters)\n```","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"}],"releasenotes/notes/identity-cloud-mixin-inherited-role-assignments-8fe9ac9509d99f4d.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d7a6c2547ec6c613d64962cb077d51428cfe9b2","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for ``inherited_to`` filter for listing identity role assignments in the cloud layer. This allows filtering by whether role grants are inheritable to sub-projects."},{"line_number":5,"context_line":"deprecations:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Deprecate ``os-inherit-extension-inherited-to`` in favor of ``inherited_to`` filter for listing identity role_assignments in the cloud layer."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"2b19a904_55b40988","line":4,"updated":"2024-04-26 10:46:03.000000000","message":"Can you wrap this at \u003c\u003d 79 characters?","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"b3c41a7b3a3481a8348d6479a904bc4f6e99f524","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for ``inherited_to`` filter for listing identity role assignments in the cloud layer. This allows filtering by whether role grants are inheritable to sub-projects."},{"line_number":5,"context_line":"deprecations:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Deprecate ``os-inherit-extension-inherited-to`` in favor of ``inherited_to`` filter for listing identity role_assignments in the cloud layer."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"12b9af07_51ff3eb1","line":4,"in_reply_to":"2b19a904_55b40988","updated":"2024-04-26 21:41:20.000000000","message":"Done","commit_id":"43b511e064ea178b3746caa1d6272767740d13da"}]}
