Infer a contract from a data asset - Gable Docs

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

GET

/ v0 /data-asset {id} /infer-contract

Try it

Infer a contract from a data asset

cURL

curl --request GET \
  --url https://demo-api.gable.ai/v0/data-asset/{id}/infer-contract \
  --header 'X-API-KEY: <api-key>'
import requests

url = "https://demo-api.gable.ai/v0/data-asset/{id}/infer-contract"

headers = {"X-API-KEY": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};

fetch('https://demo-api.gable.ai/v0/data-asset/{id}/infer-contract', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://demo-api.gable.ai/v0/data-asset/{id}/infer-contract",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "X-API-KEY: <api-key>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
    "fmt"
    "net/http"
    "io"
)

func main() {

url := "https://demo-api.gable.ai/v0/data-asset/{id}/infer-contract"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("X-API-KEY", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))
}
HttpResponse<String> response = Unirest.get("https://demo-api.gable.ai/v0/data-asset/{id}/infer-contract")
  .header("X-API-KEY", "<api-key>")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://demo-api.gable.ai/v0/data-asset/{id}/infer-contract")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'

response = http.request(request)
puts response.read_body

200

400

500

{
  "contractId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "contractSpec": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "doc": "<string>",
    "name": "<string>",
    "namespace": "<string>",
    "owner": "jsmith@example.com",
    "schema": [
      {
        "type": "struct",
        "name": "<string>",
        "fields": [
          {
            "type": "struct",
            "name": "<string>",
            "fields": "<array>",
            "alias": "<string>",
            "doc": "<string>",
            "logical": "<string>",
            "optional": true
          }
        ],
        "alias": "<string>",
        "doc": "<string>",
        "logical": "<string>",
        "optional": true,
        "constraints": {}
      }
    ],
    "dataAssetResourceName": "<string>",
    "dataAssetResourceNameList": [
      "<string>"
    ],
    "restrictPii": true
  },
  "contractSpecRaw": "<string>",
  "version": "<string>",
  "gitHash": "<string>",
  "gitRepo": "<string>",
  "gitUser": "<string>",
  "fileUri": "<string>",
  "reviewers": [
    "<string>"
  ],
  "mergedAt": "2023-11-07T05:31:56Z",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z"
}
{
  "message": "<string>",
  "id": 123,
  "title": "<string>"
}
{
  "message": "<string>",
  "id": 123,
  "title": "<string>"
}

Authorizations

X-API-KEY

string

header

required

Path Parameters

id

string

required

UUID of the data asset

Response

200

application/json

Contract was successfully inferred from the given data asset

contractId

string

required

Unique identifier for the contract in UUID format

contractSpec

object

required

contract spec

contractSpecRaw

string

required

contract spec raw json

version

string

Version of the contract (semantic versioning)

status

enum

status of the contract

Available options:

ACTIVE,

DEPRECATED

gitHash

string

full length git hash corresponding to the commit this contract was added/updated

Required string length: 40

gitRepo

string

full link to the git repo this contract lives in

gitUser

string

git user who added/updated this contract

fileUri

string

full link to the file in the repo that contains this contract

reviewers

string[]

optional list of users who reviewed the merged PR that this contract added/updated in

mergedAt

string

date time at which the PR that added/updated this contract was merged

createdAt

string

date time at which the contract was created

updatedAt

string

date time at which the contract was last updated