in src/aaz_dev/command/controller/cfg_reader.py [0:0]
def find_schema_in_operation(cls, operation, idx):
assert isinstance(idx, list), f"invalid schema_idx type: {type(idx)}"
current_idx, next_idx = idx[:2]
remain_idx = idx[2:]
if isinstance(operation, CMDHttpOperation) and current_idx == _SchemaIdxEnum.Http:
if operation.http.request and next_idx == _SchemaIdxEnum.Request:
schema = cls.find_schema_in_request(operation.http.request, remain_idx)
if schema:
return schema
if operation.http.responses and next_idx.startswith(_SchemaIdxEnum.Response):
for response in operation.http.responses:
if response.is_error:
continue
if '_'.join([_SchemaIdxEnum.Response, *[str(code) for code in response.status_codes]]) == next_idx:
schema = cls.find_schema_in_response(response, remain_idx)
if schema:
return schema
elif isinstance(operation, CMDInstanceCreateOperation) and current_idx == _SchemaIdxEnum.Instance and next_idx == _SchemaIdxEnum.Create:
if isinstance(operation.instance_create, CMDJsonInstanceCreateAction) and remain_idx[0] == _SchemaIdxEnum.Json:
schema = cls.find_schema_in_json(operation.instance_create.json, remain_idx[1:])
if schema:
return schema
elif isinstance(operation, CMDInstanceUpdateOperation) and current_idx == _SchemaIdxEnum.Instance and next_idx == _SchemaIdxEnum.Update:
if isinstance(operation.instance_update, CMDJsonInstanceUpdateAction) and remain_idx[0] == _SchemaIdxEnum.Json:
schema = cls.find_schema_in_json(operation.instance_update.json, remain_idx[1:])
if schema:
return schema
return None