diff --git a/spec/schemas/ml._common.yaml b/spec/schemas/ml._common.yaml index 46cffc9f3..b142e40ff 100644 --- a/spec/schemas/ml._common.yaml +++ b/spec/schemas/ml._common.yaml @@ -19,13 +19,48 @@ components: required: - query - size + BaseResponse: + type: object + properties: + _version: + type: integer + description: The version. + _seq_no: + type: integer + description: The sequence number. + _primary_term: + type: integer + description: The primary term. SearchModelsResponse: type: object properties: + took: + type: integer + description: The time taken to execute the search. + timed_out: + type: boolean + description: Whether the search timed out. + _shards: + $ref: '#/components/schemas/SearchModelsShardsResponse' hits: $ref: '#/components/schemas/SearchModelsHits' required: - hits + SearchModelsShardsResponse: + type: object + properties: + total: + type: integer + description: The total number of shards. + successful: + type: integer + description: The number of successful shards. + skipped: + type: integer + description: The number of skipped shards. + failed: + type: integer + description: The number of failed shards. SearchModelsHits: type: object properties: @@ -35,6 +70,9 @@ components: type: array items: $ref: '#/components/schemas/SearchModelsHitsHit' + max_score: + type: number + description: The maximum score. required: - hits - total @@ -51,20 +89,75 @@ components: - relation - value SearchModelsHitsHit: + allOf: + - $ref: '#/components/schemas/BaseResponse' + - type: object + properties: + _index: + type: string + description: The index. + _id: + type: string + description: The hit ID. + _score: + type: number + description: The score. + _source: + $ref: '#/components/schemas/Source' + model_id: + type: string + description: The model ID. + required: + - _score + Source: type: object properties: - _index: + last_deployed_time: + type: number + description: The last deployed time. + model_version: type: string - description: The index. - _id: + description: The model version. + created_time: + type: number + description: The created time. + deploy_to_all_nodes: + type: boolean + description: Whether to deploy to all nodes. + is_hidden: + type: boolean + description: Whether the model is hidden. + description: type: string - description: The hit ID. - model_id: + description: The model description. + model_state: type: string - description: The model ID. - required: - - _id - - model_id + description: The model state. + planning_worker_node_count: + type: number + description: The planning worker node count. + last_updated_time: + type: number + description: The last updated time. + name: + type: string + description: The model name. + connector_id: + type: string + description: The connector ID. + current_worker_node_count: + type: number + description: The current worker node count. + model_group_id: + type: string + description: The model group ID. + planning_worker_nodes: + type: array + items: + $ref: '_common.yaml#/components/schemas/NodeIds' + algorithm: + type: string + description: The algorithm. ModelGroupRegistration: type: object properties: diff --git a/tests/plugins/ml/ml/models.yaml b/tests/plugins/ml/ml/models.yaml index ce087654f..a8b8fc30d 100644 --- a/tests/plugins/ml/ml/models.yaml +++ b/tests/plugins/ml/ml/models.yaml @@ -22,6 +22,23 @@ chapters: status: 200 output: task_id: payload.task_id + - synopsis: Search model. + id: search_model + path: /_plugins/_ml/models/_search + method: GET + request: + payload: + query: + match_all: {} + size: 1000 + response: + status: 200 + payload: + hits: + hits: + - _score: 1 + output: + search_id: payload.hits.hits[0]._id - synopsis: Wait to get completed task. id: get_completed_task path: /_plugins/_ml/tasks/{task_id} diff --git a/tests/plugins/ml/ml/tasks.yaml b/tests/plugins/ml/ml/tasks.yaml new file mode 100644 index 000000000..7a1720493 --- /dev/null +++ b/tests/plugins/ml/ml/tasks.yaml @@ -0,0 +1,32 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test the creation of tasks. +distributions: + excluded: + - amazon-managed + - amazon-serverless +version: '>= 2.11' +warnings: + multiple-paths-detected: false +chapters: + - synopsis: Register model. + id: register_model + path: /_plugins/_ml/models/_register + method: POST + request: + payload: + name: huggingface/sentence-transformers/msmarco-distilbert-base-tas-b + version: 1.0.1 + model_format: TORCH_SCRIPT + response: + status: 200 + output: + task_id: payload.task_id + - synopsis: Delete task. + id: delete_task + path: /_plugins/_ml/tasks/{task_id} + method: DELETE + parameters: + task_id: ${register_model.task_id} + response: + status: 200 \ No newline at end of file