Help Center/ EventGrid/ API Reference/ APIs/ Event Schema Management/ Creating a Custom Event Schema
Updated on 2025-05-06 GMT+08:00

Creating a Custom Event Schema

Function

This API is used to create a custom event schema.

URI

POST /v1/{project_id}/schemas

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Tenant resource space ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. The token can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is the user token.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

name

Yes

String

Name of the event schema. The value must be unique under a tenant. Only letters, digits, periods (.), underscores (_), and hyphens (-) are allowed. It must start with a letter or digit.

description

No

String

Description of the event schema.

compatibility

Yes

String

Compatibility of the event schema.

format

No

String

Schema content format.

definition

Yes

String

Event schema content definition.

Response Parameters

Status code: 200

Table 4 Response header parameters

Parameter

Type

Description

X-Request-Id

String

This field is the request ID number for task tracking. Format is request_uuid-timestamp-hostname.

Table 5 Response body parameters

Parameter

Type

Description

id

String

ID of the event schema.

name

String

Name of the event schema. The value must be unique under a tenant.

description

String

Description of the event schema.

compatibility

String

Compatibility of the event schema.

provider_type

String

Type of the event source provider, which can be OFFICIAL (official event source) or CUSTOM (custom event source).

format

String

Format of the event schema.

number_of_versions

Integer

Number of event schema versions.

created_time

String

Time when the event schema is created.

updated_time

String

Time when the event schema is updated.

version

Integer

Current version number of the event schema.

definition

String

Event schema content definition.

Example Requests

Create a schema.

POST https://{endpoint}/v1/{project_id}/schemas

{
  "name" : "file.upload",
  "description" : "Schema definition for a file upload event.",
  "compatibility" : "NONE",
  "format" : "OPENAPI_3_0",
  "definition" : "{\"$schema\": \"http://json-schema.org/draft-06/schema#\",\"title\": \"fileUpload\",\"definitions\": {\"fileUpload\": {\"properties\": {\"fileName\": {\"type\": \"string\"},\"fileSize\": {\"type\": \"integer\"}},\"required\": [\"foo\",\"bar\"],\"type\": \"object\"}},\"properties\": {\"specversion\": {\"type\": \"string\"},\"id\": {\"type\": \"string\"},\"type\": {\"type\": \"string\"},\"source\": {\"type\": \"string\"},\"subject\": {\"type\": \"string\"},\"datacontenttype\": {\"type\": \"string\"},\"dataschema\": {\"type\": \"string\"},\"time\": {\"format\": \"date-time\",\"type\": \"string\"},\"data\": {\"$ref\": \"#/definitions/fileUpload\"}},\"required\": [\"id\",\"source\",\"time\",\"type\",\"specversion\"],\"type\": \"object\"}"
}

Example Responses

Status code: 200

Demo Information

{
  "id" : "2a0ee4f2-78a4-4122-80af-7455e37f64ee",
  "name" : "file.upload",
  "description" : "Schema definition for a file upload event.",
  "compatibility" : "NONE",
  "provider_type" : "CUSTOM",
  "format" : "OPENAPI_3_0",
  "number_of_versions" : 1,
  "created_time" : "2021-12-09 09:00:00",
  "updated_time" : "2021-12-09 09:00:00",
  "version" : 1,
  "definition" : "{\"$schema\": \"http://json-schema.org/draft-06/schema#\",\"title\": \"fileUpload\",\"definitions\": {\"fileUpload\": {\"properties\": {\"fileName\": {\"type\": \"string\"},\"fileSize\": {\"type\": \"integer\"}},\"required\": [\"foo\",\"bar\"],\"type\": \"object\"}},\"properties\": {\"specversion\": {\"type\": \"string\"},\"id\": {\"type\": \"string\"},\"type\": {\"type\": \"string\"},\"source\": {\"type\": \"string\"},\"subject\": {\"type\": \"string\"},\"datacontenttype\": {\"type\": \"string\"},\"dataschema\": {\"type\": \"string\"},\"time\": {\"format\": \"date-time\",\"type\": \"string\"},\"data\": {\"$ref\": \"#/definitions/fileUpload\"}},\"required\": [\"id\",\"source\",\"time\",\"type\",\"specversion\"],\"type\": \"object\"}"
}

Status Codes

Status Code

Description

200

Demo Information

Error Codes

See Error Codes.