Metadata API Reference: Custom Types (v2.0 and above)

Table of contents

Introduction

Custom Types are user-defined GraphQL types which help to define Actions.

Supported from

The metadata API is supported for versions v2.0.0 and above and replaces the older schema/metadata API.

set_custom_types

set_custom_types is used to set user-defined GraphQL types. This API will replace the given types with existing ones.

POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin

{
  "type": "set_custom_types",
  "args": {
    "scalars": [],
    "enums": [],
    "input_objects": [
      {
        "name": "User",
        "fields": [
          {
            "name": "username",
            "type": "String!"
          },
          {
            "name": "password",
            "type": "String!"
          }
        ]
      }
    ],
    "objects": [
      {
        "name": "UserId",
        "fields": [
          {
            "name": "id",
            "type": "Int!"
          }
        ],
        "relationships": [
          {
            "name": "posts",
            "type": "array",
            "remote_table": "post",
            "field_mapping": {
              "id": "user_id"
            }
          }
        ]
      }
    ]
  }
}

Args syntax

Key Required Schema Description
input_objects false Array of InputObjectType Set of GraphQL Input Object
objects false Array of ObjectType Set of GraphQL Object
scalars false Array of ScalarType Set of GraphQL Scalar
enums false Array of EnumType Set of GraphQL Enum