)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"3ea3cc876ee910894d097c21fff1a00a671ed45f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d54d2a3c_00d3358e","updated":"2025-05-30 12:27:32.000000000","message":"I have seen you change. But it looks we need to go and fix quite lot of places so I wanted to do this incrementally (for the sake of mental health)","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d8e44ebcf566d8caca54475624050c0de16ca694","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"23295363_c172ec47","updated":"2025-05-30 12:24:23.000000000","message":"I\u0027ve a few more things in https://review.opendev.org/c/openstack/keystone/+/951297 also. Would it make sense to squash that into here?","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"9b01988939cffbd01e18a70a0aac0c4fce7424ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d8ab136f_f3046ac2","updated":"2025-06-10 12:13:21.000000000","message":"recheck retries","commit_id":"1d67a0ae7850664cd1b3afc4b8bdf0bd844fc490"}],"keystone/api/validation/response_types.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9e718a785b25d005e234f6d3b4ede3b31a65f249","unresolved":true,"context_lines":[{"line_number":66,"context_line":"    \"description\": \"The name of the domain.\","},{"line_number":67,"context_line":"}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"domain_short: dict[str, Any] \u003d {"},{"line_number":70,"context_line":"    \"type\": \"object\","},{"line_number":71,"context_line":"    \"properties\": {\"id\": domain_id, \"name\": domain_name},"},{"line_number":72,"context_line":"    \"required\": [\"id\"],"}],"source_content_type":"text/x-python","patch_set":1,"id":"759749f4_e9fc1c3e","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":12},"updated":"2025-05-30 12:20:42.000000000","message":"Rather than `_short`, how about `_embedded` (or simply `_embed`)? It feels a little more descriptive.","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"189daddcf71eb815063be0ce5e8ae0ce52c48cd6","unresolved":true,"context_lines":[{"line_number":66,"context_line":"    \"description\": \"The name of the domain.\","},{"line_number":67,"context_line":"}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"domain_short: dict[str, Any] \u003d {"},{"line_number":70,"context_line":"    \"type\": \"object\","},{"line_number":71,"context_line":"    \"properties\": {\"id\": domain_id, \"name\": domain_name},"},{"line_number":72,"context_line":"    \"required\": [\"id\"],"}],"source_content_type":"text/x-python","patch_set":1,"id":"8188ca7b_c3fe6113","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":12},"in_reply_to":"759749f4_e9fc1c3e","updated":"2025-05-30 12:37:54.000000000","message":"I am open finding a better name, it is just that we have few different schemes (not in domain/project, but in others). On example of role:\n- id + name\n- id + name + domain (id + name)\n- id + name + domain_id\n- full\n\nFor project there are actually also quite some examples where a different subset of properties are being returned depending on the api","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0551688809ee432c026ca4208c6a03cce7a4bebf","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    \"description\": \"The name of the domain.\","},{"line_number":67,"context_line":"}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"domain_short: dict[str, Any] \u003d {"},{"line_number":70,"context_line":"    \"type\": \"object\","},{"line_number":71,"context_line":"    \"properties\": {\"id\": domain_id, \"name\": domain_name},"},{"line_number":72,"context_line":"    \"required\": [\"id\"],"}],"source_content_type":"text/x-python","patch_set":1,"id":"c0360d74_78e3aa6a","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":12},"in_reply_to":"8188ca7b_c3fe6113","updated":"2025-06-10 15:29:52.000000000","message":"Acknowledged","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9e718a785b25d005e234f6d3b4ede3b31a65f249","unresolved":true,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"user_short: dict[str, Any] \u003d {"},{"line_number":112,"context_line":"    \"type\": \"object\","},{"line_number":113,"context_line":"    \"properties\": {"},{"line_number":114,"context_line":"        \"id\": {\"type\": \"string\", \"description\": \"The ID of the user\"},"},{"line_number":115,"context_line":"        \"name\": {\"type\": \"string\", \"description\": \"The name of the user\"},"},{"line_number":116,"context_line":"        **domain_short,"},{"line_number":117,"context_line":"    },"},{"line_number":118,"context_line":"    \"required\": [\"id\"],"}],"source_content_type":"text/x-python","patch_set":1,"id":"37592940_59c37fd9","line":115,"range":{"start_line":113,"start_character":19,"end_line":115,"end_character":74},"updated":"2025-05-30 12:20:42.000000000","message":"Any reason these don\u0027t get their own variables?","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"189daddcf71eb815063be0ce5e8ae0ce52c48cd6","unresolved":true,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"user_short: dict[str, Any] \u003d {"},{"line_number":112,"context_line":"    \"type\": \"object\","},{"line_number":113,"context_line":"    \"properties\": {"},{"line_number":114,"context_line":"        \"id\": {\"type\": \"string\", \"description\": \"The ID of the user\"},"},{"line_number":115,"context_line":"        \"name\": {\"type\": \"string\", \"description\": \"The name of the user\"},"},{"line_number":116,"context_line":"        **domain_short,"},{"line_number":117,"context_line":"    },"},{"line_number":118,"context_line":"    \"required\": [\"id\"],"}],"source_content_type":"text/x-python","patch_set":1,"id":"d4e153d7_7bdfbb6a","line":115,"range":{"start_line":113,"start_character":19,"end_line":115,"end_character":74},"in_reply_to":"37592940_59c37fd9","updated":"2025-05-30 12:37:54.000000000","message":"not really. Plan was to eventually harmonize this once I come at user topic, but sure. Actually there is anyway a question of whether those should be placed here or in the corresponding resource/schema.py which is on one side good, on the other side leads to the circular dependencies","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0551688809ee432c026ca4208c6a03cce7a4bebf","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"user_short: dict[str, Any] \u003d {"},{"line_number":112,"context_line":"    \"type\": \"object\","},{"line_number":113,"context_line":"    \"properties\": {"},{"line_number":114,"context_line":"        \"id\": {\"type\": \"string\", \"description\": \"The ID of the user\"},"},{"line_number":115,"context_line":"        \"name\": {\"type\": \"string\", \"description\": \"The name of the user\"},"},{"line_number":116,"context_line":"        **domain_short,"},{"line_number":117,"context_line":"    },"},{"line_number":118,"context_line":"    \"required\": [\"id\"],"}],"source_content_type":"text/x-python","patch_set":1,"id":"a81408d5_7dec5564","line":115,"range":{"start_line":113,"start_character":19,"end_line":115,"end_character":74},"in_reply_to":"d4e153d7_7bdfbb6a","updated":"2025-06-10 15:29:52.000000000","message":"Acknowledged","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9e718a785b25d005e234f6d3b4ede3b31a65f249","unresolved":true,"context_lines":[{"line_number":113,"context_line":"    \"properties\": {"},{"line_number":114,"context_line":"        \"id\": {\"type\": \"string\", \"description\": \"The ID of the user\"},"},{"line_number":115,"context_line":"        \"name\": {\"type\": \"string\", \"description\": \"The name of the user\"},"},{"line_number":116,"context_line":"        **domain_short,"},{"line_number":117,"context_line":"    },"},{"line_number":118,"context_line":"    \"required\": [\"id\"],"},{"line_number":119,"context_line":"    \"additionalProperties\": False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"16a216cf_e02c8e4f","line":116,"updated":"2025-05-30 12:20:42.000000000","message":"I think this is wrong. Shouldn\u0027t it be under a `domain` key? (like `domain` on the project above)?","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"189daddcf71eb815063be0ce5e8ae0ce52c48cd6","unresolved":true,"context_lines":[{"line_number":113,"context_line":"    \"properties\": {"},{"line_number":114,"context_line":"        \"id\": {\"type\": \"string\", \"description\": \"The ID of the user\"},"},{"line_number":115,"context_line":"        \"name\": {\"type\": \"string\", \"description\": \"The name of the user\"},"},{"line_number":116,"context_line":"        **domain_short,"},{"line_number":117,"context_line":"    },"},{"line_number":118,"context_line":"    \"required\": [\"id\"],"},{"line_number":119,"context_line":"    \"additionalProperties\": False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"78cfe17e_58a80661","line":116,"in_reply_to":"16a216cf_e02c8e4f","updated":"2025-05-30 12:37:54.000000000","message":"you are absolutely right, I fixed most of them during working on that, but that squeezed through","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0551688809ee432c026ca4208c6a03cce7a4bebf","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    \"properties\": {"},{"line_number":114,"context_line":"        \"id\": {\"type\": \"string\", \"description\": \"The ID of the user\"},"},{"line_number":115,"context_line":"        \"name\": {\"type\": \"string\", \"description\": \"The name of the user\"},"},{"line_number":116,"context_line":"        **domain_short,"},{"line_number":117,"context_line":"    },"},{"line_number":118,"context_line":"    \"required\": [\"id\"],"},{"line_number":119,"context_line":"    \"additionalProperties\": False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"6a413f18_0bd3454e","line":116,"in_reply_to":"78cfe17e_58a80661","updated":"2025-06-10 15:29:52.000000000","message":"Acknowledged","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"}],"keystone/assignment/schema.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d8e44ebcf566d8caca54475624050c0de16ca694","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Schema for Identity v3 API"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"role_id: dict[str, Any] \u003d {"},{"line_number":23,"context_line":"    \"type\": \"string\","},{"line_number":24,"context_line":"    \"minLength\": 1,"},{"line_number":25,"context_line":"    \"maxLength\": 64,"},{"line_number":26,"context_line":"    \"description\": \"The ID of the role.\","},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"role_name: dict[str, Any] \u003d {"},{"line_number":30,"context_line":"    \"type\": \"string\","},{"line_number":31,"context_line":"    \"description\": \"The name of the role.\","},{"line_number":32,"context_line":"}"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"_role_properties: dict[str, Any] \u003d {"},{"line_number":35,"context_line":"    \"name\": role_name,"},{"line_number":36,"context_line":"    \"description\": validation.nullable(parameter_types.description),"},{"line_number":37,"context_line":"    \"domain_id\": validation.nullable(parameter_types.domain_id),"},{"line_number":38,"context_line":"    \"options\": ro.ROLE_OPTIONS_REGISTRY.json_schema,"},{"line_number":39,"context_line":"}"},{"line_number":40,"context_line":"# NOTE(0weng): Multiple response body examples in the docs are"},{"line_number":41,"context_line":"# incorrectly missing the `options` field."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"96773de3_818e5262","line":39,"range":{"start_line":22,"start_character":0,"end_line":39,"end_character":1},"updated":"2025-05-30 12:24:23.000000000","message":"Per https://review.opendev.org/c/openstack/keystone/+/951297, all of these are also present in `keystone/application_credential/schema.py`. You should probably harmonise things and place them in the preceding file also.","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"189daddcf71eb815063be0ce5e8ae0ce52c48cd6","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Schema for Identity v3 API"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"role_id: dict[str, Any] \u003d {"},{"line_number":23,"context_line":"    \"type\": \"string\","},{"line_number":24,"context_line":"    \"minLength\": 1,"},{"line_number":25,"context_line":"    \"maxLength\": 64,"},{"line_number":26,"context_line":"    \"description\": \"The ID of the role.\","},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"role_name: dict[str, Any] \u003d {"},{"line_number":30,"context_line":"    \"type\": \"string\","},{"line_number":31,"context_line":"    \"description\": \"The name of the role.\","},{"line_number":32,"context_line":"}"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"_role_properties: dict[str, Any] \u003d {"},{"line_number":35,"context_line":"    \"name\": role_name,"},{"line_number":36,"context_line":"    \"description\": validation.nullable(parameter_types.description),"},{"line_number":37,"context_line":"    \"domain_id\": validation.nullable(parameter_types.domain_id),"},{"line_number":38,"context_line":"    \"options\": ro.ROLE_OPTIONS_REGISTRY.json_schema,"},{"line_number":39,"context_line":"}"},{"line_number":40,"context_line":"# NOTE(0weng): Multiple response body examples in the docs are"},{"line_number":41,"context_line":"# incorrectly missing the `options` field."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e4f8b314_a21cd8a0","line":39,"range":{"start_line":22,"start_character":0,"end_line":39,"end_character":1},"in_reply_to":"96773de3_818e5262","updated":"2025-05-30 12:37:54.000000000","message":"It is damned hard to find a balance respecting circular dependencies, proper resource relation and amount of specifics","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"33901b83493fb9bebdd59809a1819bc2ee0cfcc3","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Schema for Identity v3 API"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"role_id: dict[str, Any] \u003d {"},{"line_number":23,"context_line":"    \"type\": \"string\","},{"line_number":24,"context_line":"    \"minLength\": 1,"},{"line_number":25,"context_line":"    \"maxLength\": 64,"},{"line_number":26,"context_line":"    \"description\": \"The ID of the role.\","},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"role_name: dict[str, Any] \u003d {"},{"line_number":30,"context_line":"    \"type\": \"string\","},{"line_number":31,"context_line":"    \"description\": \"The name of the role.\","},{"line_number":32,"context_line":"}"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"_role_properties: dict[str, Any] \u003d {"},{"line_number":35,"context_line":"    \"name\": role_name,"},{"line_number":36,"context_line":"    \"description\": validation.nullable(parameter_types.description),"},{"line_number":37,"context_line":"    \"domain_id\": validation.nullable(parameter_types.domain_id),"},{"line_number":38,"context_line":"    \"options\": ro.ROLE_OPTIONS_REGISTRY.json_schema,"},{"line_number":39,"context_line":"}"},{"line_number":40,"context_line":"# NOTE(0weng): Multiple response body examples in the docs are"},{"line_number":41,"context_line":"# incorrectly missing the `options` field."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"073a4b61_171d2cec","line":39,"range":{"start_line":22,"start_character":0,"end_line":39,"end_character":1},"in_reply_to":"e4f8b314_a21cd8a0","updated":"2025-06-10 15:29:39.000000000","message":"Done","commit_id":"58cc0c3599e65be43e150817ecc4c0e57645d28d"}]}
