Updated on 2022-02-22 GMT+08:00

Creating a Graph

Function

This API is used to create a graph.

URI

POST /v1.0/{project_id}/graphs

Table 1 URI parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID, which is used for resource isolation. For details, see Obtaining a Project ID.

Request Parameters

Table 2 Parameters in the request header

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. The token can be obtained by calling the IAM API. (The token is the value of X-Subject-Token in the response header.)

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

graph

Yes

graph object

Graph type

Table 4 graph

Parameter

Mandatory

Type

Description

name

Yes

String

A graph name must start with a letter and contains 4 to 50 characters consisting of letters, digits, hyphens (-), and underscores (_). It cannot contain special characters.

graphSizeTypeIndex

Yes

String

Graph size type index:

  • 0: indicates 10 thousand edges.
  • 1: indicates 1 million edges.
  • 2: indicates 10 million edges.
  • 3: indicates 100 million edges.
  • 4: indicates 1 billion edges.
  • 5: indicates 10 billion edges.

arch

No

String

Graph instance's CPU architecture type. The value can be x86_64 or aarch64. The default value is x86_64.

  • x86_64: X64 64-bit architecture
  • aarch64: Arm 64-bit architecture

dataSource

No

dataSource object

Data source. This field is not set when you create an empty graph.

vpcId

Yes

String

VPC ID

subnetId

Yes

String

Subnet ID in the VPC

securityGroupId

Yes

String

Security group ID

publicIp

No

publicIp object

Public IP address. If the parameter is not specified, public connection is not used by default.

enableMultiAz

No

Boolean

Whether the created graph supports the cross-AZ mode. The default value is false. If the value is true, the system will create the ECSs in the graph in two AZs.

If this parameter is not specified when you create a graph, all ECSs in the graph are created in one AZ.

encryption

No

encryptionReq object

Whether to encrypt the graph instance. The graph instance is not encrypted by default.

ltsOperationTrace

No

object

Whether to enable audit logs. This function is disabled by default.

sys_tags

No

Array of SysTagsRes objects

Enterprise project information. If this parameter is not specified, this function is disabled (default).

enableRBAC

No

Boolean

Whether to enable granular permission control for the created graph. The default value is false, indicating that granular permission control is disabled. If this parameter is set to true, no user has the permission to access the graph. To access the graph, you need to call the granular permission control API of the service plane to set the required permissions.

enableHyG

No

Boolean

Whether to enable HyG for the graph. This parameter is available for 100-billion-edge graphs only.

Table 5 dataSource

Parameter

Mandatory

Type

Description

type

Yes

String

Data source type. Currently, only OBS is supported.

parameters

Yes

object

Data source parameters.

Table 6 parameters

Parameter

Mandatory

Type

Description

schemaPath

Yes

String

OBS path for storing the metadata file. Only files are supported.

edgesetPath

Yes

String

OBS path for storing the edge file. Only files are supported.

edgesetFormat

No

String

Format of the edge data set. Currently, only the CSV format is supported.

The CSV format is used by default.

edgesetDefaultLabel

No

String

Default label of an edge data set. This parameter is left blank by default.

vertexsetPath

No

String

OBS path for storing the vertex file. Only files are supported.

vertexsetFormat

No

String

Format of the vertex data set. Currently, only the CSV format is supported.

The CSV format is used by default.

vertexsetDefaultLabel

No

String

Default label of a vertex data set. This parameter is left blank by default.

logDir

No

String

OBS log storage directory. This directory stores the data that fails to be imported during graph creation and detailed logs.

parallelEdge

No

parallelEdge object

Repetitive edge processing

  • For details about the value validity of the schemaPath, edgesetPath, vertexsetPath, and logDir character strings, see the OBS Object Name Restrictions.
Table 7 parallelEdge

Parameter

Mandatory

Type

Description

action

No

String

Processing mode of repetitive edges. The value can be allow, ignore, or override. The default value is allow.

  • allow indicates that repetitive edges are allowed.
  • ignore indicates that subsequent repetitive edges are ignored.
  • override indicates that the previous repetitive edges are overwritten.

ignoreLabel

No

Boolean

Whether to ignore labels on repetitive edges. The value is true or false, and the default value is true.

  • true: Indicates that the repetitive edge definition does not contain the label. That is, the <source vertex, target vertex> indicates an edge, excluding the label information.
  • false: Indicates that the repetitive edge definition contains the label. That is, the <source vertex, target vertex, label> indicates an edge.
Table 8 publicIp

Parameter

Mandatory

Type

Description

publicBindType

No

String

Binding type of an EIP. The value can be either of the following:

  • auto_assign
  • bind_existing

eipId

No

String

ID of an EIP. When publicBindType is set to bind_existing, its value is the ID of an EIP that has been created but has not been bound. When publicBindType is set to auto_assign, its value is set to null.

Table 9 encryptionReq

Parameter

Mandatory

Type

Description

enable

No

Boolean

Whether to enable the encryption feature. The value can be true or false. The default value is false.

masterKeyId

No

String

ID of the user master key created by the Data Encryption Workshop (DEW) in the project where the graph is created.

Table 10 SysTagsRes

Parameter

Mandatory

Type

Description

key

No

String

Key of the enterprise project. Enter _sys_enterprise_project_id.

value

No

String

Enterprise project ID. You can obtain it from the enterprise project.

Response Parameters

Status code: 200

Table 11 Response body parameters

Parameter

Type

Description

id

String

Graph ID

name

String

Graph name

errorMessage

String

System prompt. If execution succeeds, this parameter may be left blank. If execution fails, this parameter is used to display the error message.

errorCode

String

System prompt. If execution succeeds, this parameter may be left blank. If execution fails, this parameter is used to display the error code.

Example Request

POST https://Endpoint/v1.0/{project_id}/graphs
{
    "graph":{
        "name":"demo",
	"dataSource": {
			"type": "OBS",
			"parameters": {
				"schemaPath": "hkmovie/testcre/schema.xml",
				"edgesetPath": "hkmovie/testcre/edges/edge.csv",
				"edgesetFormat": "csv",
				"edgesetDefaultLabel": "",
				"vertexsetPath": "hkmovie/testcre/vetexs/vertex.csv",
				"vertexsetFormat": "csv",
				"vertexsetDefaultLabel": "",
				"logDir": "hkmovie/logdir",
                                "parallelEdge": { 
                                      "action":"override",
                                      "ignoreLabel":true
                                     }
			}
        },
        "graphSizeTypeIndex": "1",
        "arch":"x86_64",
        "vpcId":"2d8af840-fd57-4e3b-a8f1-cda0f55ccd99",
        "subnetId":"dc018ec3-67d1-46c9-b2fc-19d83367f4e2",
        "securityGroupId":"11d27338-8649-4076-8579-5ebc1a60f79e",
        "publicIp":{
           "publicBindType":"bind_existing",
           "eipId":"30ef2d58-08a9-4481-b526-b2cbe67d020d"
        },
        "enableMultiAz":false,
	"encryption":{
           "enable":true,
           "masterKeyId":"b00b9356-73fb-4d49-8f79-f0a5da5354d1"
        },
    }
}

Example Responses

Status code: 200

OK

{
  "id" : "f1529b88-c958-493e-8452-fccfe932cde1",
  "name" : "demo"
}

Returned Values

Status Code

Description

200

OK