Creating a Graph (2.2.2)

Function

This API is used to create a graph.

URI

  • URI format
    POST /v1.0/{project_id}/graphs
  • Parameter description
    Table 1 URI parameter description

    Parameter

    Mandatory

    Type

    Description

    project_id

    Yes

    String

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

Request

  • Request example
    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,
            "sys_tags": [{"key": "_sys_enterprise_project_id",                        "value": "54c0b33c-8627-462f-948e-bae08c0887b4"}],
    	"encryption":{
               "enable":true,
               "masterKeyId":"b00b9356-73fb-4d49-8f79-f0a5da5354d1"
            },
            "enableRBAC":false,
            "enableFullTextIndex" : false 
        }
    }

Table 2 Request body parameter description

Parameter

Mandatory

Type

Description

graph

Yes

For details, see Table 3 Graph type data structure description.

Graph type

Table 3 Graph type data structure description

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.

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.

graphSizeTypeIndex

Yes

Integer

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.
  • 401: indicates 1 billion enhanced 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 data structure

Data source. This field does not need to be set when you create an empty graph. For details, see Table 6.

vpcId

Yes

String

VPC ID

subnetId

Yes

String

Network ID in the specified VPC

securityGroupId

Yes

String

Security group ID

publicIp

No

Object

Public IP address. If the value is not specified, public connection is not used by default. For details, see Table 5.

encryption

No

Object

Whether to encrypt the graph instance.The graph instance is not encrypted by default. For details, see Table 9.

ltsOperationTrace

No

Object

Whether to enable audit logs. This function is disabled by default. For details, see Table 4.

sys_tags

No

List<Tag>

Enterprise project information. If this parameter is not specified, this function is disabled (default). For details, see Table 10.

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.

enableFullTextIndex

No

Boolean

Whether to enable full-text index control for the created graph. The default value is false, indicating that full-text index control is disabled. If this parameter is set to true, full-text indexes are available for graphs that support 1 billion enhanced edges, and a Cloud Search Service cluster will be created when you create a graph.

NOTE:

When you enable full-text indexes:

  • If the CSS has been deployed, the system automatically creates a CSS cluster during the creation of the graph instance, which takes a long time.
  • If the CSS is not deployed, the graph instance fails to be created.
Table 4 ltsOperationTrace parameter description

Parameter

Mandatory

Type

Description

enableAudit

No

Boolean

Whether to enable graph audit. The default value is false.

auditLogGroupName

No

String

LTS log group name

Table 5 publicIp parameter description

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 6 DataSource data structure

Parameter

Mandatory

Type

Description

type

Yes

String

Data source type. The value is OBS. Currently, only OBS is supported.

parameters

Yes

Object

Data source parameters. For details, see Table 7.

Table 7 parameters parameter description

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

Object

Repetitive edge processing. For details, see Table 8.

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

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 9 encryption parameter description

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 Data Encryption Workshop (DEW) on HUAWEI CLOUD in the project in which the graph is created.

Table 10 Tag parameter description

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

Table 11 Parameter description

Parameter

Mandatory

Type

Description

errorMessage

No

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

No

String

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

id

No

String

Graph ID

name

No

String

Graph name

  • Response example (successful request)
    Http Status Code: 200
    {
        "id": "f1529b88-c958-493e-8452-fccfe932cde1",
        "name": "demo"
    }
  • Response example (failed request)
    Http Status Code: 400
    {
        "errorCode": "GES.7022",
        "errorMessage": "The security group does not exist."
    }

Return Value

  • Normal

    200

  • Abnormal
    Table 12 Return code for failed requests

    Return Value

    Description

    400 Bad Request

    Request error.

    401 Unauthorized

    Authentication failed.

    403 Forbidden

    No operation permission.

    404 Not Found

    The requested resource was not found.

    500 Internal Server Error

    Internal service error.

    503 Service Unavailable

    Service unavailable.