doc-exports/docs/apig/api-ref/CreateFeatureV2.html
Chen, Junjie c94ea402f5 APIG API 20230331 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Chen, Junjie <chenjunjie@huawei.com>
Co-committed-by: Chen, Junjie <chenjunjie@huawei.com>
2023-07-13 08:57:09 +00:00

579 lines
40 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<a name="CreateFeatureV2"></a><a name="CreateFeatureV2"></a>
<h1 class="topictitle1">Configuring a Feature for a Gateway</h1>
<div><div class="section"><h4 class="sectiontitle">Function</h4><p>This API is used to configure a feature for a gateway.</p>
<p>The following table lists the supported features and configuration examples.</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="14.285714285714285%" id="mcps1.3.1.4.1.8.1.1">Feature Name</th>
<th align="left" class="cellrowborder" valign="top" width="14.285714285714285%" id="mcps1.3.1.4.1.8.1.2">Feature Description</th>
<th align="left" class="cellrowborder" valign="top" width="14.285714285714285%" id="mcps1.3.1.4.1.8.1.3">Configuration Example</th>
<th align="left" class="cellrowborder" valign="top" width="14.285714285714285%" id="mcps1.3.1.4.1.8.1.4">Parameter Name</th>
<th align="left" class="cellrowborder" valign="top" width="14.285714285714285%" id="mcps1.3.1.4.1.8.1.5">Parameter Description</th>
<th align="left" class="cellrowborder" valign="top" width="14.285714285714285%" id="mcps1.3.1.4.1.8.1.6">Default Value</th>
<th align="left" class="cellrowborder" valign="top" width="14.285714285714285%" id="mcps1.3.1.4.1.8.1.7">Value Range</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">lts</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Reporting of Shubao access logs</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"lts","enable":true,"config": "{\"group_id\": ",\"topic_id\":\"\",\"log_group\":\"\",\"log_stream\":\"\"}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) group_id (2) topic_id (3) log_group (4) log_stream</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Log group ID. (2) Log stream ID. (3) Log group name. (4) Log stream name.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">-</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">ratelimit</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Request throttling limit configuration</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"ratelimit","enable":true,"config": "{\"api_limits\": 500}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">api_limits</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">Default request throttling limit for APIs. Set this parameter properly to meet your service requirements. A small value may constantly throttle your services.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">200 calls/second</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">11,000,000 calls/second</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">request_body_size</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Configuration of the maximum request body size</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"request_body_size","enable":true,"config": "104857600"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">request_body_size</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">The maximum body size allowed for a request.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">12 MB</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">19536 MB</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">backend_timeout</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Maximum backend timeout configuration</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"backend_timeout","enable":true,"config": "{"max_timeout": 500}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">max_timeout</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">Maximum timeout allowed for API Gateway to request the backend service.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">60,000 ms</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">1600,000 ms</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">app_token</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">app_token authentication</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"app_token","enable":true,"config": "{\"enable\": \"on\", \"app_token_expire_time\": 3600, \"app_token_uri\": \"/v1/apigw/oauth2/token\", \"refresh_token_expire_time\": 7200}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) enable (2) app_token_expire_time (3) refresh_token_expire_time (4) app_token_uri (5) app_token_key</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Whether to enable this feature. (2) Access token validity period. (3) Refresh token validity period. (4) URI for obtaining a token. (5) Token encryption key.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">(1) off (2) 3600s (3) 7200s (4) /v1/apigw/oauth2/token</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) on/off (2) 172,000s (3) 172,000s</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">app_api_key</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">app_api_key authentication</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"app_api_key","enable":true,"config": "on"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">off</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">app_basic</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">app_basic authentication</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"app_basic","enable":true,"config": "on"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">off</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">app_secret</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">app_secret authentication</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"app_secret","enable":true,"config": "on"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">off</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">app_jwt</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">app_jwt authentication</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"app_jwt","enable":true,"config": "{\"enable\": \"on\", \"auth_header\": \"Authorization\"}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) enable (2) auth_header</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Whether to enable app_jwt authentication. (2) app_jwt authentication header.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">(1) off (2) Authorization</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">public_key</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">public_key backend signatures</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"public_key","enable":true,"config": "{\"enable\": \"on\", \"public_key_uri_prefix\": \"/apigw/authadv/v2/public-key/\"}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) enable (2) public_key_uri_prefix</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Whether to enable app_jwt authentication. (2) URI prefix used for obtaining the public key.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">(1) off(2) /apigw/authadv/v2/public-key/</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">backend_token_allow</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Allowing tenants to transparently transmit tokens to the backend</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"backend_token_allow","enable":true,"config": "{\"backend_token_allow_users\": [\"user_name\"]}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">backend_token_allow_users</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">Whitelist of tenants allowed to transparently transmit tokens to the backend. The value is a regular expression of domain names.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">-</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">backend_client_certificate</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Backend two-way authentication</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"backend_client_certificate","enable":true,"config": "{\"enable\": \"on\",\"ca\": \"\",\"content\": \"\",\"key\": \"\"}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) enable (2) ca (3) content (4) key</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Whether to enable this feature. (2) CA file of two-way authentication. (3) Two-way authentication file. (4) Private key of two-way authentication.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">(1) off</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">ssl_ciphers</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">HTTPS cipher suites</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"ssl_ciphers","enable":true,"config": "config": "{\"ssl_ciphers\": [\"ECDHE-ECDSA-AES256-GCM-SHA384\"]}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">ssl_ciphers</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">Supported cipher suites. The ssl_ciphers parameter cannot be left blank and can contain only the options in the value range.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES256-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">real_ip_from_xff</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Whether to use the X-Forwarded-For header to specify source IP addresses for access control and request throttling.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"real_ip_from_xff","enable": true,"config": "{\"enable\": \"on\",\"xff_index\": 1}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) enable (2) xff_index</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Whether to enable this feature. (2) Index of the source IP address in the X-Forwarded-For header. (Negative numbers are allowed and 1 is the last index.)</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">(1) off (2) -1</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) on/off (2) Valid Int32 value</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">app_route</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Whether to allow IP address access.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"app_route","enable":true,"config": "on"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">off</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">vpc_name_modifiable</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Load balance channel name modification</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"vpc_name_modifiable","enable":true,"config": "on"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">on</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">default_group_host_trustlist</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Access to the DEFAULT group from IP addresses that are not inbound access addresses of the current gateway</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"default_group_host_trustlist","enable": true,"config": "{\"enable\":\"on\",\"hosts\":[\"123.2.2.2\",\"202.2.2.2\"]}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) enable (2) hosts</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Whether to enable this feature. (2) IP addresses that are not inbound access addresses of the current gateway.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">throttle_strategy</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Whether to enable request throttling.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"throttle_strategy","enable":true,"config": "{\"enable\": \"on\",\"strategy\": \"local\"}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) enable (2) strategy</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Whether to enable this feature. (2) Request throttling mode.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">(1) off</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) on/off (2) cluster/local</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">custom_log</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Whether to print custom request headers, query strings, and cookies in logs.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"custom_log","enable":true,"config": "{\"custom_logs\":[{\"location\":\"header\",\"name\":\"a1234\"}]}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) custom_logs (2) location (3) name</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Custom logs. (2) Location. (3) Name.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) Max. 10 items. (2) header/query/cookie</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">real_ip_header_getter</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Whether to use a custom header to obtain source IP addresses.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"real_ip_header_getter","enable":true,"config": "{\"enable\": \"on\",\"header_getter\": \"header:testIP\"}"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">(1) enable (2) header_getter</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">(1) Whether to enable this feature. (2) Custom header for obtaining source IP addresses.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">(1) off</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">(1) on/off</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.1 ">policy_cookie_param</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.2 ">Whether to support cookies in backend policy conditions.</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.3 ">{"name":"policy_cookie_param","enable":true,"config": "on"}</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.4 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.5 ">-</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.6 ">off</td>
<td class="cellrowborder" valign="top" width="14.285714285714285%" headers="mcps1.3.1.4.1.8.1.7 ">on/off</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">URI</h4><p>POST /v2/{project_id}/apigw/instances/{instance_id}/features</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Path Parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.2.3.2.5.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.2.3.2.5.1.2"><p>Mandatory</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.2.3.2.5.1.3"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="40%" id="mcps1.3.2.3.2.5.1.4"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.2.3.2.5.1.1 "><p>project_id</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.2.3.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.2.3.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.2.3.2.5.1.4 "><p>Project ID. For details about how to obtain a project ID, see "Appendix" &gt; "Obtaining a Project ID" in this document.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.2.3.2.5.1.1 "><p>instance_id</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.2.3.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.2.3.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.2.3.2.5.1.4 "><p>Gateway ID, which can be obtained from the gateway information on the APIG console.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Request Parameters</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__HeaderParameter" frame="border" border="1" rules="all"><caption><b>Table 2 </b>Request header parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.2.2.5.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.2.2.5.1.2"><p>Mandatory</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.2.2.5.1.3"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="40%" id="mcps1.3.3.2.2.5.1.4"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.2.5.1.1 "><p>X-Auth-Token</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.3.2.2.5.1.4 "><p>User token. It 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 a token.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__request_FeatureToggle" frame="border" border="1" rules="all"><caption><b>Table 3 </b>Request body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.3.2.5.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.3.2.5.1.2"><p>Mandatory</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.3.2.5.1.3"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="40%" id="mcps1.3.3.3.2.5.1.4"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.1 "><p>name</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.3.3.2.5.1.4 "><p>Feature name.</p>
<p>Minimum: <strong>1</strong></p>
<p>Maximum: <strong>64</strong></p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.1 "><p>enable</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.2 "><p>Yes</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.3 "><p>Boolean</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.3.3.2.5.1.4 "><p>Indicates whether to enable the feature.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.1 "><p>config</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.2 "><p>No</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.3.2.5.1.3 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.3.3.2.5.1.4 "><p>Parameter configuration.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Response Parameters</h4><p><strong>Status code: 201</strong></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__response_FeatureInfo" frame="border" border="1" rules="all"><caption><b>Table 4 </b>Response body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.3.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.3.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="60%" id="mcps1.3.4.3.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.1 "><p>id</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.3.2.4.1.3 "><p>Feature ID.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.1 "><p>name</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.3.2.4.1.3 "><p>Feature name.</p>
<p>Minimum: <strong>1</strong></p>
<p>Maximum: <strong>64</strong></p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.1 "><p>enable</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.2 "><p>Boolean</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.3.2.4.1.3 "><p>Indicates whether to enable the feature.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.1 "><p>config</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.3.2.4.1.3 "><p>Parameter configuration.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.1 "><p>instance_id</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.3.2.4.1.3 "><p>Gateway ID.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.1 "><p>update_time</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.3.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.3.2.4.1.3 "><p>Feature update time.</p>
</td>
</tr>
</tbody>
</table>
</div>
<p><strong>Status code: 400</strong></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__response_ErrorMsg" frame="border" border="1" rules="all"><caption><b>Table 5 </b>Response body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.5.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.5.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="60%" id="mcps1.3.4.5.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.5.2.4.1.1 "><p>error_code</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.5.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.5.2.4.1.3 "><p>Error code.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.5.2.4.1.1 "><p>error_msg</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.5.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.5.2.4.1.3 "><p>Error message.</p>
</td>
</tr>
</tbody>
</table>
</div>
<p><strong>Status code: 401</strong></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__response_ErrorMsg_1" frame="border" border="1" rules="all"><caption><b>Table 6 </b>Response body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.7.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.7.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="60%" id="mcps1.3.4.7.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.7.2.4.1.1 "><p>error_code</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.7.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.7.2.4.1.3 "><p>Error code.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.7.2.4.1.1 "><p>error_msg</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.7.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.7.2.4.1.3 "><p>Error message.</p>
</td>
</tr>
</tbody>
</table>
</div>
<p><strong>Status code: 403</strong></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__response_ErrorMsg_2" frame="border" border="1" rules="all"><caption><b>Table 7 </b>Response body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.9.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.9.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="60%" id="mcps1.3.4.9.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.9.2.4.1.1 "><p>error_code</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.9.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.9.2.4.1.3 "><p>Error code.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.9.2.4.1.1 "><p>error_msg</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.9.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.9.2.4.1.3 "><p>Error message.</p>
</td>
</tr>
</tbody>
</table>
</div>
<p><strong>Status code: 404</strong></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__response_ErrorMsg_3" frame="border" border="1" rules="all"><caption><b>Table 8 </b>Response body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.11.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.11.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="60%" id="mcps1.3.4.11.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.11.2.4.1.1 "><p>error_code</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.11.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.11.2.4.1.3 "><p>Error code.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.11.2.4.1.1 "><p>error_msg</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.11.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.11.2.4.1.3 "><p>Error message.</p>
</td>
</tr>
</tbody>
</table>
</div>
<p><strong>Status code: 500</strong></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__response_ErrorMsg_4" frame="border" border="1" rules="all"><caption><b>Table 9 </b>Response body parameters</caption><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.13.2.4.1.1"><p>Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.13.2.4.1.2"><p>Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="60%" id="mcps1.3.4.13.2.4.1.3"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.13.2.4.1.1 "><p>error_code</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.13.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.13.2.4.1.3 "><p>Error code.</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.13.2.4.1.1 "><p>error_msg</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.13.2.4.1.2 "><p>String</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.3.4.13.2.4.1.3 "><p>Error message.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Example Requests</h4><pre class="screen">{
"name" : "app_api_key",
"config" : "on",
"enable" : true
}</pre>
</div>
<div class="section"><h4 class="sectiontitle">Example Responses</h4><p><strong>Status code: 201</strong></p>
<p>Created</p>
<pre class="screen">{
"config" : "on",
"enable" : true,
"id" : "db9a9260cd3e4a16a9b5747a65d3ffaa",
"instance_id" : "eddc4d25480b4cd6b512f270a1b8b341",
"name" : "app_api_key",
"update_time" : "2020-08-24T01:17:31.041984021Z"
}</pre>
<p><strong>Status code: 400</strong></p>
<p>Bad Request</p>
<pre class="screen">{
"error_code" : "APIG.2000",
"error_msg" : "unrecognized feature app-api-key"
}</pre>
<p><strong>Status code: 401</strong></p>
<p>Unauthorized</p>
<pre class="screen">{
"error_code" : "APIG.1002",
"error_msg" : "Incorrect token or token resolution failed"
}</pre>
<p><strong>Status code: 403</strong></p>
<p>Forbidden</p>
<pre class="screen">{
"error_code" : "APIG.1005",
"error_msg" : "No permissions to request this method"
}</pre>
<p><strong>Status code: 404</strong></p>
<p>Not Found</p>
<pre class="screen">{
"error_code" : "APIG.3030",
"error_msg" : "The instance does not exist;id:eddc4d25480b4cd6b512f270a1b8b341"
}</pre>
<p><strong>Status code: 500</strong></p>
<p>Internal Server Error</p>
<pre class="screen">{
"error_code" : "APIG.9999",
"error_msg" : "System error"
}</pre>
</div>
<div class="section"><h4 class="sectiontitle">Status Codes</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="CreateFeatureV2__status_code" frame="border" border="1" rules="all"><thead align="left"><tr><th align="left" class="cellrowborder" valign="top" width="15%" id="mcps1.3.7.2.1.3.1.1"><p>Status Code</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="85%" id="mcps1.3.7.2.1.3.1.2"><p>Description</p>
</th>
</tr>
</thead>
<tbody><tr><td class="cellrowborder" valign="top" width="15%" headers="mcps1.3.7.2.1.3.1.1 "><p>201</p>
</td>
<td class="cellrowborder" valign="top" width="85%" headers="mcps1.3.7.2.1.3.1.2 "><p>Created</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="15%" headers="mcps1.3.7.2.1.3.1.1 "><p>400</p>
</td>
<td class="cellrowborder" valign="top" width="85%" headers="mcps1.3.7.2.1.3.1.2 "><p>Bad Request</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="15%" headers="mcps1.3.7.2.1.3.1.1 "><p>401</p>
</td>
<td class="cellrowborder" valign="top" width="85%" headers="mcps1.3.7.2.1.3.1.2 "><p>Unauthorized</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="15%" headers="mcps1.3.7.2.1.3.1.1 "><p>403</p>
</td>
<td class="cellrowborder" valign="top" width="85%" headers="mcps1.3.7.2.1.3.1.2 "><p>Forbidden</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="15%" headers="mcps1.3.7.2.1.3.1.1 "><p>404</p>
</td>
<td class="cellrowborder" valign="top" width="85%" headers="mcps1.3.7.2.1.3.1.2 "><p>Not Found</p>
</td>
</tr>
<tr><td class="cellrowborder" valign="top" width="15%" headers="mcps1.3.7.2.1.3.1.1 "><p>500</p>
</td>
<td class="cellrowborder" valign="top" width="85%" headers="mcps1.3.7.2.1.3.1.2 "><p>Internal Server Error</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Error Codes</h4><p>See <a href="ErrorCode.html">Error Codes</a>.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="topic_300000021.html">Gateway Feature Management</a></div>
</div>
</div>