Skip to main content
PUT
/
v0
/
experimental
/
components
/
{id}
/
paths
/
{pathId}
Update a path on a component.
curl --request PUT \
  --url https://{hostname}.gable.ai/v0/experimental/components/{id}/paths/{pathId} \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "ingress": {
    "signature_name": "<string>",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "kind": "<string>",
    "schema": {},
    "payload_name": "<string>",
    "description": "<string>"
  },
  "egress": {
    "signature_name": "<string>",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "kind": "<string>",
    "schema": {},
    "payload_name": "<string>",
    "description": "<string>"
  },
  "field_mappings": [
    {
      "ingress_field": "<string>",
      "egress_field": "<string>",
      "notes": "<string>"
    }
  ],
  "code_anchors": [
    {
      "anchor_id": "<string>",
      "name": "<string>",
      "file": "<string>",
      "line_start": 123,
      "line_end": 123,
      "column_start": 123,
      "column_end": 123,
      "url": "<string>"
    }
  ],
  "transformation_summary": "<string>",
  "payload_name": "<string>",
  "reason": "<string>",
  "effective_since_commit_sha": "<string>"
}
'
import requests

url = "https://{hostname}.gable.ai/v0/experimental/components/{id}/paths/{pathId}"

payload = {
"ingress": {
"signature_name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"schema": {},
"payload_name": "<string>",
"description": "<string>"
},
"egress": {
"signature_name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"schema": {},
"payload_name": "<string>",
"description": "<string>"
},
"field_mappings": [
{
"ingress_field": "<string>",
"egress_field": "<string>",
"notes": "<string>"
}
],
"code_anchors": [
{
"anchor_id": "<string>",
"name": "<string>",
"file": "<string>",
"line_start": 123,
"line_end": 123,
"column_start": 123,
"column_end": 123,
"url": "<string>"
}
],
"transformation_summary": "<string>",
"payload_name": "<string>",
"reason": "<string>",
"effective_since_commit_sha": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PUT',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ingress: {
signature_name: '<string>',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
kind: '<string>',
schema: {},
payload_name: '<string>',
description: '<string>'
},
egress: {
signature_name: '<string>',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
kind: '<string>',
schema: {},
payload_name: '<string>',
description: '<string>'
},
field_mappings: [{ingress_field: '<string>', egress_field: '<string>', notes: '<string>'}],
code_anchors: [
{
anchor_id: '<string>',
name: '<string>',
file: '<string>',
line_start: 123,
line_end: 123,
column_start: 123,
column_end: 123,
url: '<string>'
}
],
transformation_summary: '<string>',
payload_name: '<string>',
reason: '<string>',
effective_since_commit_sha: '<string>'
})
};

fetch('https://{hostname}.gable.ai/v0/experimental/components/{id}/paths/{pathId}', 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://{hostname}.gable.ai/v0/experimental/components/{id}/paths/{pathId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'ingress' => [
'signature_name' => '<string>',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'kind' => '<string>',
'schema' => [

],
'payload_name' => '<string>',
'description' => '<string>'
],
'egress' => [
'signature_name' => '<string>',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'kind' => '<string>',
'schema' => [

],
'payload_name' => '<string>',
'description' => '<string>'
],
'field_mappings' => [
[
'ingress_field' => '<string>',
'egress_field' => '<string>',
'notes' => '<string>'
]
],
'code_anchors' => [
[
'anchor_id' => '<string>',
'name' => '<string>',
'file' => '<string>',
'line_start' => 123,
'line_end' => 123,
'column_start' => 123,
'column_end' => 123,
'url' => '<string>'
]
],
'transformation_summary' => '<string>',
'payload_name' => '<string>',
'reason' => '<string>',
'effective_since_commit_sha' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)

func main() {

url := "https://{hostname}.gable.ai/v0/experimental/components/{id}/paths/{pathId}"

payload := strings.NewReader("{\n \"ingress\": {\n \"signature_name\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"kind\": \"<string>\",\n \"schema\": {},\n \"payload_name\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"egress\": {\n \"signature_name\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"kind\": \"<string>\",\n \"schema\": {},\n \"payload_name\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"field_mappings\": [\n {\n \"ingress_field\": \"<string>\",\n \"egress_field\": \"<string>\",\n \"notes\": \"<string>\"\n }\n ],\n \"code_anchors\": [\n {\n \"anchor_id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"line_start\": 123,\n \"line_end\": 123,\n \"column_start\": 123,\n \"column_end\": 123,\n \"url\": \"<string>\"\n }\n ],\n \"transformation_summary\": \"<string>\",\n \"payload_name\": \"<string>\",\n \"reason\": \"<string>\",\n \"effective_since_commit_sha\": \"<string>\"\n}")

req, _ := http.NewRequest("PUT", url, payload)

req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")

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

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

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.put("https://{hostname}.gable.ai/v0/experimental/components/{id}/paths/{pathId}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ingress\": {\n \"signature_name\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"kind\": \"<string>\",\n \"schema\": {},\n \"payload_name\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"egress\": {\n \"signature_name\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"kind\": \"<string>\",\n \"schema\": {},\n \"payload_name\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"field_mappings\": [\n {\n \"ingress_field\": \"<string>\",\n \"egress_field\": \"<string>\",\n \"notes\": \"<string>\"\n }\n ],\n \"code_anchors\": [\n {\n \"anchor_id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"line_start\": 123,\n \"line_end\": 123,\n \"column_start\": 123,\n \"column_end\": 123,\n \"url\": \"<string>\"\n }\n ],\n \"transformation_summary\": \"<string>\",\n \"payload_name\": \"<string>\",\n \"reason\": \"<string>\",\n \"effective_since_commit_sha\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://{hostname}.gable.ai/v0/experimental/components/{id}/paths/{pathId}")

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

request = Net::HTTP::Put.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ingress\": {\n \"signature_name\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"kind\": \"<string>\",\n \"schema\": {},\n \"payload_name\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"egress\": {\n \"signature_name\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"kind\": \"<string>\",\n \"schema\": {},\n \"payload_name\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"field_mappings\": [\n {\n \"ingress_field\": \"<string>\",\n \"egress_field\": \"<string>\",\n \"notes\": \"<string>\"\n }\n ],\n \"code_anchors\": [\n {\n \"anchor_id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"line_start\": 123,\n \"line_end\": 123,\n \"column_start\": 123,\n \"column_end\": 123,\n \"url\": \"<string>\"\n }\n ],\n \"transformation_summary\": \"<string>\",\n \"payload_name\": \"<string>\",\n \"reason\": \"<string>\",\n \"effective_since_commit_sha\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "path": {
    "ingress": {
      "signature_name": "<string>",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "kind": "<string>",
      "schema": {},
      "payload_name": "<string>",
      "description": "<string>"
    },
    "egress": {
      "signature_name": "<string>",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "kind": "<string>",
      "schema": {},
      "payload_name": "<string>",
      "description": "<string>"
    },
    "path_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "is_suppressed": false,
    "field_mappings": [
      {
        "ingress_field": "<string>",
        "egress_field": "<string>",
        "notes": "<string>"
      }
    ],
    "code_anchors": [
      {
        "anchor_id": "<string>",
        "name": "<string>",
        "file": "<string>",
        "line_start": 123,
        "line_end": 123,
        "column_start": 123,
        "column_end": 123,
        "url": "<string>"
      }
    ],
    "transformation_summary": "<string>",
    "payload_name": "<string>",
    "completeness": {}
  }
}
{
"message": "<string>",
"id": 123,
"title": "<string>"
}
{
"message": "<string>",
"id": 123,
"title": "<string>"
}
{
"message": "<string>",
"id": 123,
"title": "<string>"
}

Authorizations

X-API-KEY
string
header
required

Path Parameters

id
string
required

The component ID.

pathId
string
required

The path ID to update.

Body

application/json

A path connecting an ingress to an egress within a component. Boundary data (schema, signature, kind) is inlined for round-trip editing. Fields marked readOnly are returned by GET but ignored on POST/PUT.

ingress
object
required

One side (ingress or egress) of a path, with full boundary data inlined. Matches the write model structure for round-trip editing.

egress
object
required

One side (ingress or egress) of a path, with full boundary data inlined. Matches the write model structure for round-trip editing.

field_mappings
object[]
code_anchors
object[]
transformation_summary
string

Brief summary of the data transformation on this path.

payload_name
string

The payload name for this path.

completeness
object
reason
string
write-only

Optional reason for creating or updating this path.

effective_since_commit_sha
string
write-only

Commit SHA this path is effective from. When omitted, defaults to the latest scanned commit for the component. The backend resolves the corresponding commit timestamp from the scan history.

Response

Path updated successfully

path
object
required

A path connecting an ingress to an egress within a component. Boundary data (schema, signature, kind) is inlined for round-trip editing. Fields marked readOnly are returned by GET but ignored on POST/PUT.