PingOne Platform APIs

Update Inbound Traffic Policy

 

PUT {{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}

The PUT /environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}} endpoint updates the attribute values for a inbound traffic policy configuration specified by its ID in the request URL.

Prerequisites

  • Refer to Inbound Traffic Policies for for full property descriptions for the verify, client IP, header, and traffic rules.

Request Model
Property Type Required?

clientIpRule

Object

Required

enabled

Boolean

Required

environment

Object

N/A

environment.id

String

N/A

headerRules

Object[]

Required

id

String

N/A

name

String

Required

priority

Integer

Required

trafficRule

Object

Required

verifyRules

Object[]

Required

Refer to the Inbound traffic policies data model for full property descriptions.

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
  "name": "Updated Test Connection Config",
  "clientIpRule": {
    "type": "HEADER_CSV",
    "name": "X-Custom-Header",
    "index": 1,
    "cardinality": 3
  },
  "headerRules": [
    {
      "name": "Content-Policy",
      "required": true
    },
    {
      "name": "Content-Type",
      "required": true
    }
  ],
  "trafficRule": {
    "type": "ALLOW"
  },
  "priority": 100,
  "enabled": true
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff --request PUT '{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
  "name": "Updated Test Connection Config",
  "clientIpRule": {
    "type": "HEADER_CSV",
    "name": "X-Custom-Header",
    "index": 1,
    "cardinality": 3
  },
  "headerRules": [
    {
      "name": "Content-Policy",
      "required": true
    },
    {
      "name": "Content-Type",
      "required": true
    }
  ],
  "trafficRule": {
    "type": "ALLOW"
  },
  "priority": 100,
  "enabled": true
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Put);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@"  ""name"": ""Updated Test Connection Config""," + "\n" +
@"  ""clientIpRule"": {" + "\n" +
@"    ""type"": ""HEADER_CSV""," + "\n" +
@"    ""name"": ""X-Custom-Header""," + "\n" +
@"    ""index"": 1," + "\n" +
@"    ""cardinality"": 3" + "\n" +
@"  }," + "\n" +
@"  ""headerRules"": [" + "\n" +
@"    {" + "\n" +
@"      ""name"": ""Content-Policy""," + "\n" +
@"      ""required"": true" + "\n" +
@"    }," + "\n" +
@"    {" + "\n" +
@"      ""name"": ""Content-Type""," + "\n" +
@"      ""required"": true" + "\n" +
@"    }" + "\n" +
@"  ]," + "\n" +
@"  ""trafficRule"": {" + "\n" +
@"    ""type"": ""ALLOW""" + "\n" +
@"  }," + "\n" +
@"  ""priority"": 100," + "\n" +
@"  ""enabled"": true" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main

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

func main() {

  url := "{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}"
  method := "PUT"

  payload := strings.NewReader(`{
  "name": "Updated Test Connection Config",
  "clientIpRule": {
    "type": "HEADER_CSV",
    "name": "X-Custom-Header",
    "index": 1,
    "cardinality": 3
  },
  "headerRules": [
    {
      "name": "Content-Policy",
      "required": true
    },
    {
      "name": "Content-Type",
      "required": true
    }
  ],
  "trafficRule": {
    "type": "ALLOW"
  },
  "priority": 100,
  "enabled": true
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
PUT /environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}} HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}

{
  "name": "Updated Test Connection Config",
  "clientIpRule": {
    "type": "HEADER_CSV",
    "name": "X-Custom-Header",
    "index": 1,
    "cardinality": 3
  },
  "headerRules": [
    {
      "name": "Content-Policy",
      "required": true
    },
    {
      "name": "Content-Type",
      "required": true
    }
  ],
  "trafficRule": {
    "type": "ALLOW"
  },
  "priority": 100,
  "enabled": true
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"name\": \"Updated Test Connection Config\",\n  \"clientIpRule\": {\n    \"type\": \"HEADER_CSV\",\n    \"name\": \"X-Custom-Header\",\n    \"index\": 1,\n    \"cardinality\": 3\n  },\n  \"headerRules\": [\n    {\n      \"name\": \"Content-Policy\",\n      \"required\": true\n    },\n    {\n      \"name\": \"Content-Type\",\n      \"required\": true\n    }\n  ],\n  \"trafficRule\": {\n    \"type\": \"ALLOW\"\n  },\n  \"priority\": 100,\n  \"enabled\": true\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}")
  .method("PUT", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "name": "Updated Test Connection Config",
    "clientIpRule": {
      "type": "HEADER_CSV",
      "name": "X-Custom-Header",
      "index": 1,
      "cardinality": 3
    },
    "headerRules": [
      {
        "name": "Content-Policy",
        "required": true
      },
      {
        "name": "Content-Type",
        "required": true
      }
    ],
    "trafficRule": {
      "type": "ALLOW"
    },
    "priority": 100,
    "enabled": true
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'PUT',
  'url': '{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "name": "Updated Test Connection Config",
    "clientIpRule": {
      "type": "HEADER_CSV",
      "name": "X-Custom-Header",
      "index": 1,
      "cardinality": 3
    },
    "headerRules": [
      {
        "name": "Content-Policy",
        "required": true
      },
      {
        "name": "Content-Type",
        "required": true
      }
    ],
    "trafficRule": {
      "type": "ALLOW"
    },
    "priority": 100,
    "enabled": true
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests
import json

url = "{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}"

payload = json.dumps({
  "name": "Updated Test Connection Config",
  "clientIpRule": {
    "type": "HEADER_CSV",
    "name": "X-Custom-Header",
    "index": 1,
    "cardinality": 3
  },
  "headerRules": [
    {
      "name": "Content-Policy",
      "required": True
    },
    {
      "name": "Content-Type",
      "required": True
    }
  ],
  "trafficRule": {
    "type": "ALLOW"
  },
  "priority": 100,
  "enabled": True
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n  "name": "Updated Test Connection Config",\n  "clientIpRule": {\n    "type": "HEADER_CSV",\n    "name": "X-Custom-Header",\n    "index": 1,\n    "cardinality": 3\n  },\n  "headerRules": [\n    {\n      "name": "Content-Policy",\n      "required": true\n    },\n    {\n      "name": "Content-Type",\n      "required": true\n    }\n  ],\n  "trafficRule": {\n    "type": "ALLOW"\n  },\n  "priority": 100,\n  "enabled": true\n}');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
require "uri"
require "json"
require "net/http"

url = URI("{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
  "name": "Updated Test Connection Config",
  "clientIpRule": {
    "type": "HEADER_CSV",
    "name": "X-Custom-Header",
    "index": 1,
    "cardinality": 3
  },
  "headerRules": [
    {
      "name": "Content-Policy",
      "required": true
    },
    {
      "name": "Content-Type",
      "required": true
    }
  ],
  "trafficRule": {
    "type": "ALLOW"
  },
  "priority": 100,
  "enabled": true
})

response = http.request(request)
puts response.read_body
let parameters = "{\n  \"name\": \"Updated Test Connection Config\",\n  \"clientIpRule\": {\n    \"type\": \"HEADER_CSV\",\n    \"name\": \"X-Custom-Header\",\n    \"index\": 1,\n    \"cardinality\": 3\n  },\n  \"headerRules\": [\n    {\n      \"name\": \"Content-Policy\",\n      \"required\": true\n    },\n    {\n      \"name\": \"Content-Type\",\n      \"required\": true\n    }\n  ],\n  \"trafficRule\": {\n    \"type\": \"ALLOW\"\n  },\n  \"priority\": 100,\n  \"enabled\": true\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/inboundTrafficPolicies/{{trafficPolicyID}}")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "PUT"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()

Example Response

200 OK

{
    "id": "278b8b5f-882f-418a-875b-d8e5d77758ec",
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "name": "Updated Test Connection Config",
    "enabled": true,
    "priority": 100,
    "clientIpRule": {
        "type": "HEADER_CSV",
        "name": "x-custom-header",
        "index": 1,
        "cardinality": 3
    },
    "headerRules": [
        {
            "name": "content-policy",
            "required": true
        },
        {
            "name": "content-type",
            "required": true
        }
    ],
    "trafficRule": {
        "type": "ALLOW"
    },
    "createdAt": "2025-10-13T15:57:30.874Z",
    "updatedAt": "2025-10-13T15:59:29.708Z",
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/inboundTrafficPolicies/278b8b5f-882f-418a-875b-d8e5d77758ec"
        }
    }
}