flex/openapi/openapi_interactive.yaml (2,550 lines of code) (raw):

openapi: 3.0.3 info: description: | This is the definition of GraphScope Interactive API, including - AdminService API - Vertex/Edge API - QueryService AdminService API (with tag AdminService) defines the API for GraphManagement, ProcedureManagement and Service Management. Vertex/Edge API (with tag GraphService) defines the API for Vertex/Edge management, including creation/updating/delete/retrieve. QueryService API (with tag QueryService) defines the API for procedure_call, Ahodc query. version: "1.0.0" title: GraphScope Interactive API v0.3 contact: email: graphscope@alibaba-inc.com license: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0.html' externalDocs: description: Find out More about GraphScope url: http://graphscope.io tags: - name: AdminService/GraphManagement description: GraphManagement - name: AdminService/ProcedureManagement description: ProcedureManagement - name: AdminService/ServiceManagement description: ServiceManagement - name: GraphService/VertexManagement description: VertexManagement - name: GraphService/EdgeManagement description: EdgeManagement - name: QueryService description: Graph query - name: AdminService/ServiceRegistry description: ServiceRegistry paths: /v1/graph: post: tags: - AdminService/GraphManagement description: Create a new graph operationId: create_graph requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateGraphRequest" required: true responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/CreateGraphResponse" "400": description: BadRequest content: application/json: schema: type: string "500": description: Internal error content: application/json: schema: type: string get: tags: - AdminService/GraphManagement description: List all graphs operationId: list_graphs responses: "200": description: Successful operation content: application/json: schema: type: array items: $ref: "#/components/schemas/GetGraphResponse" /v1/graph/{graph_id}: get: tags: - AdminService/GraphManagement description: Get a graph by name operationId: get_graph parameters: - name: graph_id in: path required: true schema: type: string description: The id of graph to get responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/GetGraphResponse" "404": description: Not found content: application/json: schema: type: string example: graph not exists delete: tags: - AdminService/GraphManagement description: Delete a graph by id operationId: delete_graph parameters: - name: graph_id in: path required: true schema: type: string description: The id of graph to delete responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/APIResponse" example: "Successfully delete graph" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Graph not found" "500": description: Internal Error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/graph/{graph_id}/schema: get: tags: - AdminService/GraphManagement description: Get schema by graph id operationId: get_schema parameters: - name: graph_id in: path required: true schema: type: string description: The id of graph to get schema responses: 200: description: successful operation content: application/json: schema: $ref: "#/components/schemas/GetGraphSchemaResponse" 500: $ref: "#/components/responses/500" /v1/graph/{graph_id}/schema/vertex: post: tags: - AdminService/GraphManagement description: Create a vertex type operationId: create_vertex_type parameters: - name: graph_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateVertexType" responses: "200": description: Successfully created the vertex type content: application/json: schema: $ref: "#/components/schemas/APIResponse" "400": $ref: "#/components/responses/400" "500": $ref: "#/components/responses/500" delete: tags: - AdminService/GraphManagement description: Delete a vertex type by name operationId: delete_vertex_type parameters: - name: graph_id in: path required: true schema: type: string - name: type_name in: query required: true schema: type: string responses: "200": description: Successfully deleted the vertex type content: application/json: schema: $ref: "#/components/schemas/APIResponse" "400": $ref: "#/components/responses/400" "500": $ref: "#/components/responses/500" put: tags: - AdminService/GraphManagement description: Update a vertex type to add more properties operationId: update_vertex_type parameters: - name: graph_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateVertexType" responses: "200": description: Successfully updated the vertex type content: application/json: schema: $ref: "#/components/schemas/APIResponse" "400": $ref: "#/components/responses/400" "500": $ref: "#/components/responses/500" /v1/graph/{graph_id}/schema/edge: post: tags: - AdminService/GraphManagement description: Create a edge type operationId: create_edge_type parameters: - name: graph_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateEdgeType" responses: "200": description: Successful created the edge type content: application/json: schema: $ref: "#/components/schemas/APIResponse" "400": $ref: "#/components/responses/400" "500": $ref: "#/components/responses/500" delete: tags: - AdminService/GraphManagement description: Delete an edge type by name operationId: delete_edge_type parameters: - name: graph_id in: path required: true schema: type: string - name: type_name in: query required: true schema: type: string - name: source_vertex_type in: query required: true schema: type: string - name: destination_vertex_type in: query required: true schema: type: string responses: "200": description: Successfully deleted the edge type content: application/json: schema: $ref: "#/components/schemas/APIResponse" "400": $ref: "#/components/responses/400" "500": $ref: "#/components/responses/500" put: tags: - AdminService/GraphManagement description: Update an edge type to add more properties operationId: update_edge_type parameters: - name: graph_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateEdgeType" responses: 200: description: Successfully updated the edge type content: application/json: schema: $ref: "#/components/schemas/APIResponse" 400: $ref: "#/components/responses/400" 500: $ref: "#/components/responses/500" /v1/graph/{graph_id}/snapshot/{snapshot_id}/status: get: tags: - AdminService/GraphManagement description: Get the status of a snapshot by id operationId: get_snapshot_status parameters: - name: graph_id in: path required: true schema: type: string - name: snapshot_id in: path required: true schema: type: integer responses: "200": description: the status of a snapshot_id content: application/json: schema: $ref: "#/components/schemas/SnapshotStatus" "400": $ref: "#/components/responses/400" "500": $ref: "#/components/responses/500" /v1/graph/{graph_id}/statistics: get: tags: - AdminService/GraphManagement description: Get the statics info of a graph, including number of vertices for each label, number of edges for each label. operationId: get_graph_statistic parameters: - name: graph_id in: path required: true schema: type: string description: The id of graph to get statistics responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/GetGraphStatisticsResponse" "500": description: Server Internal Error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Graph not found" "503": description: Service Unavailable content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 15 message: "Service Unavailable" /v1/graph/{graph_id}/dataloading: post: tags: - AdminService/GraphManagement description: Create a dataloading job operationId: create_dataloading_job parameters: - name: graph_id in: path required: true schema: type: string description: The id of graph to do bulk loading. requestBody: content: application/json: schema: $ref: "#/components/schemas/SchemaMapping" required: true responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/JobResponse" /v1/job/{job_id}: get: tags: - AdminService/JobManagement operationId: get_job_by_id parameters: - name: job_id in: path required: true schema: type: string description: The id of the job, returned from POST /v1/graph/{graph_id}/dataloading responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/JobStatus" delete: tags: - AdminService/JobManagement operationId: delete_job_by_id parameters: - name: job_id in: path required: true schema: type: string responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/APIResponse" example: "Successfully cancel job: 123" /v1/job: get: tags: - AdminService/JobManagement operationId: list_jobs responses: "200": description: successful operation content: application/json: schema: type: array items: $ref: "#/components/schemas/JobStatus" /v1/graph/{graph_id}/procedure: post: tags: - AdminService/ProcedureManagement description: Create a new procedure on a graph operationId: create_procedure parameters: - name: graph_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateProcedureRequest" required: true responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/CreateProcedureResponse" "400": description: Bad request content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 14 message: "Bad request" "404": description: not found content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Graph not found" "500": description: Internal Error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" get: tags: - AdminService/ProcedureManagement description: List all procedures operationId: list_procedures parameters: - name: graph_id in: path required: true schema: type: string responses: "200": description: Successful operation content: application/json: schema: type: array items: $ref: "#/components/schemas/GetProcedureResponse" "404": description: Not found content: application/json: schema: type: string example: "Graph not found" /v1/graph/{graph_id}/procedure/{procedure_id}: get: tags: - AdminService/ProcedureManagement description: Get a procedure by id operationId: get_procedure parameters: - name: graph_id in: path required: true schema: type: string - name: procedure_id in: path required: true schema: type: string responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/GetProcedureResponse" "404": description: Not found content: application/json: schema: type: string example: "Graph not found/procedure not found" put: tags: - AdminService/ProcedureManagement description: Update procedure on a graph by id operationId: update_procedure parameters: - name: graph_id in: path required: true schema: type: string - name: procedure_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateProcedureRequest" responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/APIResponse" "400": description: Bad request content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 14 message: "Bad request" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Graph not found/Procedure not found" "500": description: Internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" delete: tags: - AdminService/ProcedureManagement description: Delete a procedure on a graph by id operationId: delete_procedure parameters: - name: graph_id in: path required: true schema: type: string - name: procedure_id in: path required: true schema: type: string responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/APIResponse" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Graph not found/Procedure not found" /v1/service/start: post: tags: - AdminService/ServiceManagement description: Start service on a specified graph operationId: start_service requestBody: description: Start service on a specified graph content: application/json: schema: $ref: "#/components/schemas/StartServiceRequest" responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/APIResponse" "500": description: Internal Error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/service/stop: post: tags: - AdminService/ServiceManagement description: Stop current service operationId: stop_service requestBody: description: Stop service on a specified graph content: application/json: schema: $ref: "#/components/schemas/StopServiceRequest" responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/APIResponse" /v1/service/restart: post: tags: - AdminService/ServiceManagement description: Start current service operationId: restart_service responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/APIResponse" /v1/service/status: get: tags: - AdminService/ServiceManagement description: Get service status operationId: get_service_status responses: "200": description: successful operation content: application/json: schema: $ref: "#/components/schemas/ServiceStatus" /v1/graph/{graph_id}/vertex: get: tags: - GraphService/VertexManagement summary: Get the vertex's properties with vertex primary key. operationId: get_vertex description: | Get the properties for the specified vertex. example: ```http GET /endpoint?param1=value1&param2=value2 HTTP/1.1 Host: example.com ``` parameters: - name: graph_id in: path required: true description: The id of the graph schema: type: string - name: label in: query required: true description: The label name of querying vertex. schema: type: string - name: primary_key_value in: query required: true description: The primary key value of querying vertex. schema: $ref: "#/components/schemas/AnyValue" responses: "200": description: Found vertex content: application/json: schema: $ref: "#/components/schemas/VertexData" example: label: "person" values: - name: "id" value: 1 - name: "age" value: 23 - name: "name" value: "amy" "400": description: Bad input parameter "404": description: Vertex not found or graph not found "500": description: Server internal error post: tags: - GraphService/VertexManagement summary: Add vertex (and edge) to the graph operationId: add_vertex parameters: - name: graph_id in: path required: true schema: type: string description: | Add the provided vertex (and edge) to the specified graph. requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VertexEdgeRequest" example: vertex_request: - label: "person" primary_key_value: 2 properties: age: 24 name: "Cindy" edge_request: - src_label: "person" dst_label: "software" edge_label: "created" src_primary_key_values: - name: "id" value: 1 dst_primary_key_values: - name: "id" value: 3 properties: - name: "weight" value: 0.2 responses: "200": description: Successfully created vertex content: application/json: schema: $ref: "#/components/schemas/APIResponse" example: message: "Successfully created vertex" "400": description: Invalid input vertex content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 101 message: "Invalid input vertex schema" "404": description: Graph not found content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Graph not found" "409": description: Vertex already exists content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 102 message: "Vertex already exists" "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" put: tags: - GraphService/VertexManagement summary: Update vertex's property operationId: update_vertex description: | Update the vertex with the provided properties to the specified graph. parameters: - name: graph_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VertexEdgeRequest" example: label: "person" primary_key_value: 2 properties: age: 24 name: "Cindy" responses: "200": description: Successfully update vertex content: application/json: schema: $ref: "#/components/schemas/APIResponse" example: message: "Successfully updated vertex" "400": description: Invalid input parameters content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 101 message: "Invalid input vertex schema" "404": description: Vertex not exists content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Vertex not exists" "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" delete: tags: - GraphService/VertexManagement summary: Remove vertex from the graph operationId: delete_vertex description: | Remove the vertex from the specified graph. parameters: - name: graph_id in: path required: true schema: type: string requestBody: description: The label and primary key values of the vertex to be deleted. required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/DeleteVertexRequest" responses: "200": description: Successfully delete vertex content: application/json: schema: $ref: "#/components/schemas/APIResponse" example: message: "Successfully delete vertex" "400": description: Invalid input vertex content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 101 message: "Invalid input vertex schema" "404": description: Vertex not exists or Graph not exits. content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Vertex not exists" "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/graph/{graph_id}/edge: get: tags: - GraphService/EdgeManagement summary: Get the edge's properties with src and dst vertex primary keys. operationId: get_edge description: | Get the properties for the specified vertex. parameters: - name: graph_id in: path required: true schema: type: string - name: edge_label in: query required: true description: The label name of querying edge. schema: type: string example: created - name: src_label in: query required: true description: The label name of src vertex. schema: type: string example: person - name: src_primary_key_value in: query required: true description: The primary key value of src vertex. schema: $ref: "#/components/schemas/AnyValue" example: 1 - name: dst_label in: query required: true description: The label name of dst vertex. schema: type: string example: software - name: dst_primary_key_value in: query required: true description: The value of dst vertex's primary key schema: $ref: "#/components/schemas/AnyValue" example: 3 responses: "200": description: Found Edge content: application/json: schema: $ref: "#/components/schemas/EdgeData" example: src_label: "person" dst_label: "software" edge_label: "created" src_pk_value: 1 dst_pk_value: 3 properties: - name: "weight" value: 0.2 "400": description: Bad input parameter content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 101 message: "Invalid input edge schema" "404": description: Edge not found or Graph not found content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Edge not found" "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" post: tags: - GraphService/EdgeManagement summary: Add edge to the graph operationId: add_edge description: | Add the edge to graph. parameters: - name: graph_id in: path required: true schema: type: string responses: "200": description: Successfully insert the edge content: application/json: schema: $ref: "#/components/schemas/APIResponse" example: message: "Successfully create edge" "400": description: Invalid input edge content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 101 message: "Invalid input edge schema" "409": description: edge already exists content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 102 message: "Edge already exists" "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" requestBody: required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/EdgeRequest" example: - src_label: "person" dst_label: "software" edge_label: "created" src_primary_key_values: - name: "id" value: 1 dst_primary_key_values: - name: "id" value: 3 properties: - name: "weight" value: 0.2 put: tags: - GraphService/EdgeManagement summary: Update edge's property operationId: update_edge description: | Update the edge on the running graph. parameters: - name: graph_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/EdgeRequest" example: - src_label: "person" dst_label: "software" edge_label: "created" src_primary_key_values: - name: "id" value: 1 dst_primary_key_values: - name: "id" value: 3 properties: - name: "weight" value: 0.2 responses: "200": description: Successfully update edge content: application/json: schema: $ref: "#/components/schemas/APIResponse" example: message: "Successfully update edge" "400": description: Invalid input parameters content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 101 message: "Invalid input edge schema" "404": description: Edge not exists content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Edge not exists" "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" delete: tags: - GraphService/EdgeManagement summary: Remove edge from the graph operationId: delete_edge description: | Remove the edge from current graph. parameters: - name: graph_id in: path required: true schema: type: string requestBody: description: The label and primary key values of the src and dst vertices, and the edge label. required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/DeleteEdgeRequest" responses: "200": description: Successfully delete edge content: application/json: schema: $ref: "#/components/schemas/APIResponse" example: message: "Successfully delete edge" "400": description: Invalid input edge content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 101 message: "Invalid input edge schema" "404": description: Edge not exists or Graph not exits content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 4 message: "Edge not exists" "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/graph/{graph_id}/query: post: tags: - QueryService summary: run queries on graph operationId: call_proc description: | After the procedure is created, user can use this API to run the procedure. parameters: - name: graph_id in: path required: true schema: type: string requestBody: content: text/plain: schema: type: string format: byte responses: "200": description: Successfully runned. content: text/plain: schema: type: string format: byte "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/graph/current/query: post: tags: - QueryService summary: run queries on the running graph operationId: call_proc_current description: | Submit a query to the running graph. requestBody: content: text/plain: schema: type: string format: byte responses: "200": description: Successfully runned. Empty if failed? content: text/plain: schema: type: string format: byte "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/graph/current/adhoc_query: post: tags: - QueryService summary: Submit adhoc query to the Interactive Query Service. operationId: run_adhoc_current description: | Submit a adhoc query to the running graph. The adhoc query should be represented by the physical plan: https://github.com/alibaba/GraphScope/blob/main/interactive_engine/executor/ir/proto/physical.proto requestBody: content: text/plain: schema: type: string format: byte responses: "200": description: Successfully runned. Empty if failed? content: text/plain: schema: type: string format: byte "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/graph/{graph_id}/adhoc_query: post: tags: - QueryService summary: Submit adhoc query to the Interactive Query Service. operationId: run_adhoc description: | Submit a adhoc query to the running graph. The adhoc query should be represented by the physical plan: https://github.com/alibaba/GraphScope/blob/main/interactive_engine/executor/ir/proto/physical.proto parameters: - name: graph_id in: path required: true schema: type: string requestBody: content: text/plain: schema: type: string format: byte responses: "200": description: Successfully runned. content: text/plain: schema: type: string format: byte "500": description: Server internal error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/file/upload: post: tags: [Utils] operationId: uploadFile requestBody: required: true content: multipart/form-data: schema: type: object properties: filestorage: type: string format: binary responses: 200: description: successful operation content: application/json: schema: $ref: "#/components/schemas/UploadFileResponse" example: file_path: /home/graphscope/path/to/file.csv # metadata: # datasource: file # file_type: csv 500: description: Server Internal Error content: application/json: schema: $ref: "#/components/schemas/APIResponseWithCode" example: code: 103 message: "Internal error" /v1/service/registry: get: description: List all services registry operationId: list_service_registry_info responses: "200": content: application/json: schema: items: $ref: "#/components/schemas/GraphServiceRegistryRecord" type: array description: successful operation "500": content: application/json: schema: example: Internal error type: string description: Internal error tags: - AdminService/ServiceRegistry /v1/service/registry/{graph_id}/{service_name}: get: description: Get a service registry by graph_id and service_name operationId: get_service_registry_info parameters: - explode: false in: path name: graph_id required: true schema: type: string style: simple - explode: false in: path name: service_name required: true schema: type: string style: simple responses: "200": content: application/json: schema: $ref: "#/components/schemas/GraphServiceRegistryRecord" description: successful operation "404": content: application/json: schema: example: Service not found type: string description: Not found "500": content: application/json: schema: example: Internal error type: string description: Internal error tags: - AdminService/ServiceRegistry /v1/service/ready: get: description: Check if the service is ready operationId: check_service_ready responses: "200": content: application/json: schema: $ref: "#/components/schemas/APIResponse" description: successful operation tags: - AdminService/ServiceManagement components: schemas: ########################### Definition for GSDataType ########################### # Both Interactive and Coordinator use the same GSDataType definition, but we could # not include from another yaml file, so we need to define it twice. AnyValue: {} TypedValue: type: object required: - type - value properties: type: $ref: "#/components/schemas/GSDataType" value: $ref: "#/components/schemas/AnyValue" PrimitiveType: x-body-name: primitive_type type: object required: - primitive_type properties: primitive_type: type: string enum: [ DT_SIGNED_INT32, DT_UNSIGNED_INT32, DT_SIGNED_INT64, DT_UNSIGNED_INT64, DT_BOOL, DT_FLOAT, DT_DOUBLE, DT_STRING, ] # The DT_STRING is added for backward compatibility, it should be replaced by StringType example: DT_SIGNED_INT32 LongText: x-body-name: long_text type: object additionalProperties: false required: - long_text properties: long_text: type: string nullable: true FixedChar: x-body-name: fixed_char type: object additionalProperties: false required: - char properties: char: type: object required: - fixed_length properties: fixed_length: type: integer VarChar: x-body-name: var_char type: object additionalProperties: false required: - var_char properties: var_char: type: object required: - max_length properties: max_length: type: integer StringType: x-body-name: string_type type: object required: - string properties: string: oneOf: - $ref: "#/components/schemas/LongText" - $ref: "#/components/schemas/FixedChar" - $ref: "#/components/schemas/VarChar" TimeStampType: x-body-name: time_stamp_type type: object required: - timestamp properties: timestamp: type: string nullable: true DateType: x-body-name: date_type type: object required: - date32 properties: date32: type: string nullable: true TemporalType: x-body-name: temporal_type type: object required: - temporal properties: temporal: oneOf: - $ref: "#/components/schemas/TimeStampType" - $ref: "#/components/schemas/DateType" GSDataType: x-body-name: gs_data_type oneOf: - $ref: "#/components/schemas/PrimitiveType" - $ref: "#/components/schemas/StringType" - $ref: "#/components/schemas/TemporalType" Property: x-body-name: property type: object required: - name - value properties: name: type: string example: "id" value: $ref: "#/components/schemas/AnyValue" # type: object Parameter: x-body-name: parameter type: object required: - name - type properties: name: type: string example: param1 type: $ref: "#/components/schemas/GSDataType" allow_cast: type: boolean example: true VertexRequest: x-body-name: vertex_request type: object required: - label - primary_key_values - properties properties: label: type: string example: person primary_key_values: type: array items: $ref: "#/components/schemas/Property" properties: type: array items: $ref: "#/components/schemas/Property" DeleteVertexRequest: x-body-name: delete_vertex_request type: object properties: label: type: string description: The label name of the vertex. example: person primary_key_values: type: array description: Primary key values for the vertex. items: $ref: "#/components/schemas/Property" VertexData: x-body-name: vertex_data type: object required: - label properties: label: type: string example: person values: type: array items: $ref: "#/components/schemas/Property" EdgeData: x-body-name: edge_data type: object required: - src_label - dst_label - edge_label - src_primary_key_value - dst_primary_key_value - properties properties: src_label: type: string example: person dst_label: type: string example: software edge_label: type: string example: created src_primary_key_value: $ref: "#/components/schemas/AnyValue" dst_primary_key_value: $ref: "#/components/schemas/AnyValue" properties: type: array items: $ref: "#/components/schemas/Property" EdgeRequest: x-body-name: edge_request type: object required: - src_label - dst_label - edge_label - src_primary_key_values - dst_primary_key_values properties: src_label: type: string example: person dst_label: type: string example: software edge_label: type: string example: created src_primary_key_values: type: array items: $ref: "#/components/schemas/Property" dst_primary_key_values: type: array items: $ref: "#/components/schemas/Property" properties: type: array items: $ref: "#/components/schemas/Property" DeleteEdgeRequest: x-body-name: delete_edge_request type: object properties: edge_label: type: string description: The label name of the edge. example: created src_label: type: string description: The label name of the source vertex. example: person dst_label: type: string description: The label name of the destination vertex. example: software src_primary_key_values: type: array description: Primary key values for the source vertex. items: $ref: "#/components/schemas/Property" dst_primary_key_values: type: array description: Primary key values for the destination vertex. items: $ref: "#/components/schemas/Property" properties: type: array description: The properties of the edge. If the edge type has primary key, it should be included in the properties. items: $ref: "#/components/schemas/Property" QueryRequest: x-body-name: query_request type: object required: - query_name properties: query_name: type: string example: ic1 arguments: type: array items: $ref: "#/components/schemas/TypedValue" CreateProcedureRequest: x-body-name: create_procedure_request type: object required: - name - type - query properties: name: type: string example: query1 description: type: string example: A sample stored procedure type: type: string enum: - cpp - cypher query: type: string example: "MATCH(a) return COUNT(a);" CreateProcedureResponse: type: object x-body-name: create_procedure_response required: - procedure_id properties: procedure_id: type: string example: proc1 StoredProcedureMeta: x-body-name: stored_procedure_meta allOf: - $ref: "#/components/schemas/CreateProcedureRequest" - type: object properties: id: type: string example: The unique identifier of procedure, currently is same with name. library: type: string example: /path/to/library params: type: array items: $ref: "#/components/schemas/Parameter" returns: type: array items: $ref: "#/components/schemas/Parameter" enable: type: boolean example: true option: type: object additionalProperties: true GetProcedureResponse: x-body-name: get_procedure_response allOf: - $ref: "#/components/schemas/StoredProcedureMeta" - type: object properties: bound_graph: type: string runnable: type: boolean creation_time: type: integer update_time: type: integer UpdateProcedureRequest: x-body-name: update_procedure_request type: object properties: description: type: string example: A sample stored procedure CreateGraphResponse: x-body-name: create_graph_response type: object properties: graph_id: type: string example: "1" CreateGraphRequest: x-body-name: create_graph_request type: object properties: name: type: string example: modern_graph description: type: string example: A default description stored_procedures: type: array items: $ref: "#/components/schemas/CreateProcedureRequest" schema: $ref: "#/components/schemas/CreateGraphSchemaRequest" APIResponse: x-body-name: api_response type: string example: "Response string" APIResponseWithCode: x-body-name: api_response_with_code type: object properties: code: type: integer format: int32 message: type: string example: code: 500 message: "Internal Error" VertexStatistics: x-body-name: vertex_statistics type: object properties: type_id: type: integer type_name: type: string count: type: integer VertexTypePairStatistics: type: object x-body-name: vertex_type_pair_statistics required: - source_vertex - destination_vertex - count properties: source_vertex: type: string destination_vertex: type: string count: type: integer EdgeStatistics: x-body-name: edge_statistics type: object properties: type_id: type: integer type_name: type: string vertex_type_pair_statistics: type: array items: $ref: "#/components/schemas/VertexTypePairStatistics" GetGraphStatisticsResponse: x-body-name: graph_statistics_response type: object required: - total_vertex_count - total_edge_count properties: total_vertex_count: type: integer total_edge_count: type: integer vertex_type_statistics: type: array items: $ref: "#/components/schemas/VertexStatistics" edge_type_statistics: type: array items: $ref: "#/components/schemas/EdgeStatistics" GetGraphResponse: x-body-name: get_graph_response type: object properties: version: type: string id: type: string name: type: string description: type: string store_type: type: string enum: - mutable_csr creation_time: type: integer example: 11223444 data_update_time: type: integer example: 11123445 stored_procedures: type: array items: $ref: "#/components/schemas/GetProcedureResponse" schema: $ref: "#/components/schemas/GetGraphSchemaResponse" data_import_config: $ref: "#/components/schemas/SchemaMapping" remote_path: type: string example: /path/to/remote # If remote_path is specified, we could download the data from remote path. CreateGraphSchemaRequest: x-body-name: create_graph_schema_request type: object properties: vertex_types: type: array items: $ref: "#/components/schemas/CreateVertexType" edge_types: type: array items: $ref: "#/components/schemas/CreateEdgeType" GetGraphSchemaResponse: x-body-name: get_graph_schema_response type: object properties: vertex_types: type: array items: $ref: "#/components/schemas/GetVertexType" edge_types: type: array items: $ref: "#/components/schemas/GetEdgeType" BaseVertexType: type: object properties: type_name: type: string primary_keys: type: array items: type: string x_csr_params: type: object description: Used for storage optimization properties: max_vertex_num: type: integer CreateVertexType: x-body-name: create_vertex_type allOf: - $ref: "#/components/schemas/BaseVertexType" - type: object properties: properties: type: array items: $ref: "#/components/schemas/CreatePropertyMeta" GetVertexType: x-body-name: get_vertex_type allOf: - $ref: "#/components/schemas/BaseVertexType" - type: object properties: type_id: type: integer format: int32 properties: type: array items: $ref: "#/components/schemas/GetPropertyMeta" description: type: string BaseEdgeType: type: object properties: type_name: type: string primary_keys: type: array description: The primary keys of the edge type, which is optional. items: type: string vertex_type_pair_relations: type: array items: type: object properties: source_vertex: type: string destination_vertex: type: string relation: type: string enum: - MANY_TO_MANY - ONE_TO_MANY - MANY_TO_ONE - ONE_TO_ONE x_csr_params: type: object description: Used for storage optimization properties: edge_storage_strategy: type: string enum: - ONLY_IN - ONLY_OUT - BOTH_OUT_IN sort_on_compaction: type: boolean oe_mutability: type: string ie_mutability: type: string CreateEdgeType: x-body-name: create_edge_type allOf: - $ref: "#/components/schemas/BaseEdgeType" - type: object properties: properties: type: array items: $ref: "#/components/schemas/CreatePropertyMeta" GetEdgeType: x-body-name: get_edge_type allOf: - $ref: "#/components/schemas/BaseEdgeType" - type: object properties: type_id: type: integer format: int32 description: type: string properties: type: array items: $ref: "#/components/schemas/GetPropertyMeta" BasePropertyMeta: type: object properties: property_name: type: string property_type: $ref: "#/components/schemas/GSDataType" CreatePropertyMeta: x-body-name: create_property_meta allOf: - $ref: "#/components/schemas/BasePropertyMeta" GetPropertyMeta: x-body-name: get_property_meta allOf: - $ref: "#/components/schemas/BasePropertyMeta" - type: object properties: property_id: type: integer format: int32 SchemaMapping: x-body-name: schema_mapping type: object properties: loading_config: type: object properties: x_csr_params: type: object description: mutable_csr specific parameters properties: parallelism: # how many thread used for bulk loading type: integer build_csr_in_mem: # whether to build csr in memory type: boolean use_mmap_vector: # whether to use mmap vector type: boolean data_source: type: object properties: scheme: type: string enum: - odps - file location: type: string import_option: type: string enum: - init - overwrite format: type: object properties: type: type: string metadata: type: object additionalProperties: true destination: type: string # oss path or local path vertex_mappings: type: array items: $ref: "#/components/schemas/VertexMapping" edge_mappings: type: array items: $ref: "#/components/schemas/EdgeMapping" VertexMapping: x-body-name: vertex_mapping type: object properties: type_name: type: string inputs: type: array items: type: string example: file:///path/to/person.csv column_mappings: type: array items: $ref: "#/components/schemas/ColumnMapping" EdgeMapping: x-body-name: edge_mapping type: object properties: type_triplet: type: object description: source label -> [edge label] -> destination label properties: edge: type: string source_vertex: type: string destination_vertex: type: string inputs: type: array items: type: string source_vertex_mappings: type: array items: type: object description: Mapping column to the primary key of source vertex properties: column: type: object properties: index: type: integer format: int32 name: type: string property: type: string # the primary key's name to map example: id destination_vertex_mappings: type: array items: type: object description: Mapping column to the primary key of destination vertex properties: column: type: object properties: index: type: integer format: int32 name: type: string property: type: string example: id column_mappings: type: array items: $ref: "#/components/schemas/ColumnMapping" ColumnMapping: x-body-name: column_mapping type: object properties: column: type: object properties: index: type: integer format: int32 name: type: string property: type: string description: must align with the schema StartServiceRequest: x-body-name: start_service_request properties: graph_id: type: string StopServiceRequest: x-body-name: stop_service_request properties: graph_id: type: string nullable: true additionalProperties: false ServiceStatus: x-body-name: service_status type: object properties: deploy_mode: type: string enum: - standalone - k8s # when the deploy_mode is k8s, bolt_port, hqps_port and gremlin_port will not be available statistics_enabled: # indicate whether the graph statistics interface is enabled type: boolean status: type: string graph: $ref: "#/components/schemas/GetGraphResponse" bolt_port: type: integer format: int32 hqps_port: type: integer format: int32 gremlin_port: type: integer format: int32 start_time: type: integer format: int32 JobResponse: type: object x-body-name: job_response properties: job_id: type: string JobStatus: type: object x-body-name: job_status properties: id: type: string type: type: string status: type: string enum: - RUNNING - SUCCESS - FAILED - CANCELLED - WAITING start_time: type: integer format: int32 end_time: type: integer format: int32 log: type: string description: URL or log string detail: type: object additionalProperties: true UploadFileResponse: required: - file_path # - metadata properties: file_path: type: string metadata: type: object additionalProperties: true VertexEdgeRequest: type: object required: - vertex_request properties: vertex_request: type: array items: $ref: "#/components/schemas/VertexRequest" edge_request: type: array items: $ref: "#/components/schemas/EdgeRequest" SnapshotStatus: type: object required: - snapshot_id - status properties: snapshot_id: type: integer status: type: string example: "AVAILABLE" ServiceMetrics: example: snapshot_id: "1" properties: snapshot_id: example: "1" title: snapshot_id type: string title: ServiceMetrics type: object RegistryInstanceRecord: example: endpoint: ip:port metrics: snapshot_id: "1" properties: endpoint: example: ip:port title: endpoint type: string metrics: $ref: "#/components/schemas/ServiceMetrics" title: RegistryInstanceRecord type: object ServiceRegistryRecord: example: instances: endpoint: ip:port metrics: snapshot_id: "1" service_name: graphscope primary: endpoint: ip:port metrics: snapshot_id: "1" properties: service_name: example: graphscope title: service_name type: string instances: type: array items: $ref: "#/components/schemas/RegistryInstanceRecord" primary: $ref: "#/components/schemas/RegistryInstanceRecord" title: ServiceRegistryRecord type: object GraphServiceRegistryRecord: example: graph_id: "1" service_registry: instances: - endpoint: ip:port metrics: snapshot_id: "1" - endpoint: ip:port metrics: snapshot_id: "1" service_name: graphscope primary: endpoint: ip:port metrics: snapshot_id: "1" properties: graph_id: example: "1" title: graph_id type: string service_registry: $ref: "#/components/schemas/ServiceRegistryRecord" title: GraphServiceRegistryRecord type: object responses: "400": content: application/json: schema: $ref: "#/components/schemas/APIResponse" description: Bad request "404": content: application/json: schema: $ref: "#/components/schemas/APIResponse" description: Not found "500": content: application/json: schema: $ref: "#/components/schemas/APIResponse" description: Server error