

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Profile parameters &mdash; Traffic Control 1.8.0 documentation </title>
  

  
  
    <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
  

  
    <link rel="stylesheet" href="../../../_static/theme_overrides.css" type="text/css" />
  

  
    <link rel="top" title="Traffic Control 1.8.0 documentation" href="../../../index.html"/>
        <link rel="up" title="Traffic Ops" href="../../traffic_ops.html"/>
        <link rel="next" title="InfluxDB" href="influxdb.html"/>
        <link rel="prev" title="Profiles" href="profile.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-nav-search">
        

        
          <a href="/" class="icon icon-home"> Traffic Control
        

        
          
          <img src="../../../_static/tc_logo.png" class="logo" />
        
        </a>

        
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

        
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
        
          
          
              <ul>
<li class="toctree-l1"><a class="reference internal" href="../../../basics/index.html">CDN Basics</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../basics/content_delivery_networks.html">Content Delivery Networks</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../basics/http_11.html">HTTP 1.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../basics/caching_proxies.html">Caching Proxies</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../basics/cache_revalidation.html">Cache Control Headers and Revalidation</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../overview/index.html">Traffic Control Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../overview/introduction.html">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../overview/traffic_ops.html">Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../overview/traffic_portal.html">Traffic Portal</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../overview/traffic_router.html">Traffic Router</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../overview/traffic_monitor.html">Traffic Monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../overview/traffic_stats.html">Traffic Stats</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../overview/traffic_server.html">Traffic Server</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../overview/traffic_vault.html">Traffic Vault</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../admin/index.html">Administrator&#8217;s Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_ops_install.html">Installing Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_ops_config.html">Configuring Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_ops_using.html">Using Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_ops_extensions.html">Managing Traffic Ops Extensions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_portal.html">Traffic Portal Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_monitor.html">Traffic Monitor Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_router.html">Traffic Router Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_stats.html">Traffic Stats Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_server.html">Traffic Server Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/traffic_vault.html">Traffic Vault Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../admin/quick_howto/index.html">Quick How To Guides</a></li>
</ul>
</li>
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Developer&#8217;s Guide</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="../../traffic_ops.html">Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../traffic_portal.html">Traffic Portal</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../traffic_router.html">Traffic Router</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../traffic_monitor.html">Traffic Monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../traffic_stats.html">Traffic Stats</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../traffic_server.html">Traffic Server</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../faq/index.html">FAQ</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../faq/general.html">General</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../faq/development.html">Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../faq/administration.html">Running a Traffic Control CDN</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
</ul>

          
        
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="../../../index.html">Traffic Control</a>
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="../../../index.html">Traffic Control 1.8.0</a> &raquo;</li>
      
          <li><a href="../../index.html">Developer&#8217;s Guide</a> &raquo;</li>
      
          <li><a href="../../traffic_ops.html">Traffic Ops</a> &raquo;</li>
      
    <li>Profile parameters</li>
      <li class="wy-breadcrumbs-aside">
        
          <a href="../../../_sources/development/traffic_ops_api/v12/profile_parameter.txt" rel="nofollow"> View page source</a>
        
      </li>
  </ul>
  <hr/>
</div>
 		  
    		  <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      		  
        		  <a href="influxdb.html" class="btn btn-neutral float-right" title="InfluxDB">Next <span class="fa fa-arrow-circle-right"></span></a>
      		  
      		  
        		  <a href="profile.html" class="btn btn-neutral" title="Profiles"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      		  
    		  </div>
  		  
          <div role="main" class="document">
            
  <div class="section" id="profile-parameters">
<span id="to-api-v12-profileparameters"></span><h1>Profile parameters<a class="headerlink" href="#profile-parameters" title="Permalink to this headline">¶</a></h1>
<div class="section" id="api-1-2-profileparameters">
<span id="to-api-v12-profileparameters-route"></span><h2>/api/1.2/profileparameters<a class="headerlink" href="#api-1-2-profileparameters" title="Permalink to this headline">¶</a></h2>
<p><strong>POST /api/1.2/profileparameters</strong></p>
<blockquote>
<div><blockquote>
<div><p>Associate parameter to profile.</p>
<blockquote>
<div><p>Authentication Required: Yes</p>
<p>Role(s) Required:  admin or oper</p>
<p><strong>Request Properties</strong>
This accept two formats: single profile-parameter, profile-parameter array.</p>
<p>Single profile-parameter format:</p>
<table border="1" class="docutils">
<colgroup>
<col width="23%" />
<col width="13%" />
<col width="65%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Required</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">profileId</span></code></td>
<td>yes</td>
<td>profile id.</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">parameterId</span></code></td>
<td>yes</td>
<td>parameter id.</td>
</tr>
</tbody>
</table>
<p>Profile-parameter array format:</p>
<table border="1" class="docutils">
<colgroup>
<col width="23%" />
<col width="13%" />
<col width="65%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Required</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>&nbsp;</td>
<td>yes</td>
<td>profile-parameter array.</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">&gt;profileId</span></code></td>
<td>yes</td>
<td>profile id.</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">&gt;parameterId</span></code></td>
<td>yes</td>
<td>parameter id.</td>
</tr>
</tbody>
</table>
</div></blockquote>
</div></blockquote>
<p><strong>Request Example</strong></p>
<div class="highlight-python"><div class="highlight"><pre>Single profile-parameter format:

{
  &quot;profileId&quot;: 2,
  &quot;parameterId&quot;: 6
}

Profile-parameter array format:

[
    {
      &quot;profileId&quot;: 2,
      &quot;parameterId&quot;: 6
    },
    {
      &quot;profileId&quot;: 2,
      &quot;parameterId&quot;: 7
    },
    {
      &quot;profileId&quot;: 3,
      &quot;parameterId&quot;: 6
    }
]

    **Response Properties**

    +-------------------+---------+-----------------------------------------------------+
    |  Parameter        |  Type   |           Description                               |
    +===================+=========+=====================================================+
    | ``response``      | array   | Profile-parameter associations.                     |
    +-------------------+---------+-----------------------------------------------------+
    | ``&gt;profileId``    | string  | Profile id.                                         |
    +-------------------+---------+-----------------------------------------------------+
    | ``&gt;parameterId``  | string  | Parameter id.                                       |
    +-------------------+---------+-----------------------------------------------------+
    | ``alerts``        | array   | A collection of alert messages.                     |
    +-------------------+---------+-----------------------------------------------------+
    | ``&gt;level``        | string  | success, info, warning or error.                    |
    +-------------------+---------+-----------------------------------------------------+
    | ``&gt;text``         | string  | Alert message.                                      |
    +-------------------+---------+-----------------------------------------------------+
    | ``version``       | string  |                                                     |
    +-------------------+---------+-----------------------------------------------------+
</pre></div>
</div>
<p><strong>Response Example</strong></p>
<div class="highlight-python"><div class="highlight"><pre>{
  &quot;response&quot;:[
    {
      &quot;profileId&quot;: &quot;2&quot;,
      &quot;parameterId&quot;: &quot;6&quot;
    },
    {
      &quot;profileId&quot;: &quot;2&quot;,
      &quot;parameterId&quot;: &quot;7&quot;
    },
    {
      &quot;profileId&quot;: &quot;3&quot;,
      &quot;parameterId&quot;: &quot;6&quot;
    }
  ]
  &quot;alerts&quot;:[
    {
      &quot;level&quot;: &quot;success&quot;,
      &quot;text&quot;: &quot;Profile parameter associations were created.&quot;
    }
  ]
}
</pre></div>
</div>
</div></blockquote>
<div class="line-block">
<div class="line"><br /></div>
</div>
<p><strong>DELETE /api/1.2/profileparameters/{:profile_id}/{:parameter_id}</strong></p>
<blockquote>
<div><blockquote>
<div><p>Delete a profile parameter association.</p>
<blockquote>
<div><p>Authentication Required: Yes</p>
<p>Role(s) Required:  admin or oper</p>
<p><strong>Request Route Parameters</strong></p>
<table border="1" class="docutils">
<colgroup>
<col width="23%" />
<col width="13%" />
<col width="65%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th>
<th class="head">Required</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">profile_id</span></code></td>
<td>yes</td>
<td>profile id.</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">parameter_id</span></code></td>
<td>yes</td>
<td>parameter id.</td>
</tr>
</tbody>
</table>
<p><strong>Response Properties</strong></p>
<table border="1" class="docutils">
<colgroup>
<col width="24%" />
<col width="10%" />
<col width="66%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Type</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">alerts</span></code></td>
<td>array</td>
<td>A collection of alert messages.</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">&gt;level</span></code></td>
<td>string</td>
<td>success, info, warning or error.</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">&gt;text</span></code></td>
<td>string</td>
<td>Alert message.</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">version</span></code></td>
<td>string</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
</div></blockquote>
</div></blockquote>
<p><strong>Response Example</strong></p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">{</span>
  <span class="s">&quot;alerts&quot;</span><span class="p">:[</span>
    <span class="p">{</span>
      <span class="s">&quot;level&quot;</span><span class="p">:</span> <span class="s">&quot;success&quot;</span><span class="p">,</span>
      <span class="s">&quot;text&quot;</span><span class="p">:</span> <span class="s">&quot;Profile parameter association was deleted.&quot;</span>
    <span class="p">}</span>
  <span class="p">]</span>
<span class="p">}</span>
</pre></div>
</div>
</div></blockquote>
<div class="line-block">
<div class="line"><br /></div>
</div>
<p><strong>POST /api/1.2/profiles/name/{:name}/parameters</strong></p>
<blockquote>
<div><blockquote>
<div><p>Associate parameters to a profile. If the parameter does not exist, create it and associate to the profile. If the parameter already exists, associate it to the profile. If the parameter already associate the profile, keep the association.
If the profile does not exist, the API returns fail.</p>
<p>Authentication Required: Yes</p>
<p>Role(s) Required:  admin or oper. If there is parameter&#8217;s secure equals 1 in the request properties, need admin role.</p>
<blockquote>
<div><p><strong>Request Route Parameters</strong></p>
<table border="1" class="docutils">
<colgroup>
<col width="16%" />
<col width="14%" />
<col width="70%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th>
<th class="head">Required</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">name</span></code></td>
<td>yes</td>
<td>profile name.</td>
</tr>
</tbody>
</table>
</div></blockquote>
<p><strong>Request Properties</strong>
The request properties accept 2 formats, both single paramter and parameters array formats are acceptable.</p>
<p>single parameter format:</p>
<table border="1" class="docutils">
<colgroup>
<col width="14%" />
<col width="8%" />
<col width="7%" />
<col width="70%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th>
<th class="head">Required</th>
<th class="head">Type</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">name</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter name</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">configFile</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter config_file</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">value</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter value</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">secure</span></code></td>
<td>yes</td>
<td>integer</td>
<td>secure flag, when 1, the parameter is accessible only by admin users. Defaults to 0.</td>
</tr>
</tbody>
</table>
<p>array parameters format:</p>
<table border="1" class="docutils">
<colgroup>
<col width="14%" />
<col width="8%" />
<col width="7%" />
<col width="70%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th>
<th class="head">Required</th>
<th class="head">Type</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>&nbsp;</td>
<td>yes</td>
<td>array</td>
<td>parameters array</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">&gt;name</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter name</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">&gt;configFile</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter config_file</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">&gt;value</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter value</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">&gt;secure</span></code></td>
<td>yes</td>
<td>integer</td>
<td>secure flag, when 1, the parameter is accessible only by admin users. Defaults to 0.</td>
</tr>
</tbody>
</table>
</div></blockquote>
<p><strong>Request Example</strong></p>
<div class="highlight-python"><div class="highlight"><pre>1. single parameter format exampe:
{
    &quot;name&quot;:&quot;param1&quot;,
    &quot;configFile&quot;:&quot;configFile1&quot;,
    &quot;value&quot;:&quot;value1&quot;,
    &quot;secure&quot;:0,
}

2. array format example:
[
  {
      &quot;name&quot;:&quot;param1&quot;,
      &quot;configFile&quot;:&quot;configFile1&quot;,
      &quot;value&quot;:&quot;value1&quot;,
      &quot;secure&quot;:0,
  },
  {
      &quot;name&quot;:&quot;param2&quot;,
      &quot;configFile&quot;:&quot;configFile2&quot;,
      &quot;value&quot;:&quot;value2&quot;,
      &quot;secure&quot;:1,
  }
]
</pre></div>
</div>
<p><strong>Response Properties</strong></p>
<div class="highlight-python"><div class="highlight"><pre>+------------------+---------+--------------------------------------------------------------------------------------+
| Name             | Type    | Description                                                                          |
+==================+=========+======================================================================================+
| ``response``     |         | Parameters associated with the profile.                                              |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;profileName`` | string  | profile name                                                                         |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;profileId``   | integer | profile index                                                                        |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;parameters``  | array   | parameters array                                                                     |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;id``         | integer | parameter index                                                                      |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;name``       | string  | parameter name                                                                       |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;configFile`` | string  | parameter config_file                                                                |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;value``      | string  | parameter value                                                                      |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;secure``     | integer | secure flag, when 1, the parameter is accessible only by admin users. Defaults to 0. |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``alerts``       | array   | A collection of alert messages.                                                      |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;level``       | string  | success, info, warning or error.                                                     |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;text``        | string  | Alert message.                                                                       |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``version``      | string  |                                                                                      |
+------------------+---------+--------------------------------------------------------------------------------------+
</pre></div>
</div>
<p><strong>Response Example</strong></p>
<div class="highlight-python"><div class="highlight"><pre>{
  &quot;response&quot;:{
    &quot;profileName&quot;: &quot;CCR1&quot;,
    &quot;profileId&quot; : &quot;12&quot;,
    &quot;parameters&quot;:[
        {
            &quot;name&quot;:&quot;param1&quot;,
            &quot;configFile&quot;:&quot;configFile1&quot;
            &quot;value&quot;:&quot;value1&quot;,
            &quot;secure&quot;:&quot;0&quot;,
        },
        {
            &quot;name&quot;:&quot;param2&quot;,
            &quot;configFile&quot;:&quot;configFile2&quot;
            &quot;value&quot;:&quot;value2&quot;,
            &quot;secure&quot;:&quot;1&quot;,
        }
    ]
  }
  &quot;alerts&quot;:[
    {
      &quot;level&quot;: &quot;success&quot;,
      &quot;text&quot;: &quot;&quot;Assign parameters successfully to profile CCR1&quot;
    }
  ]
}
</pre></div>
</div>
</div></blockquote>
<div class="line-block">
<div class="line"><br /></div>
</div>
<p><strong>POST /api/1.2/profiles/id/{:id}/parameters</strong></p>
<blockquote>
<div><blockquote>
<div><p>Associate parameters to a profile. If the parameter does not exist, create it and associate to the profile. If the parameter already exists, associate it to the profile. If the parameter already associate the profile, keep the association.
If the profile does not exist, the API returns fail.</p>
<p>Authentication Required: Yes</p>
<p>Role(s) Required:  admin or oper. If there is parameter&#8217;s secure equals 1 in the request properties, need admin role.</p>
<blockquote>
<div><p><strong>Request Route Parameters</strong></p>
<table border="1" class="docutils">
<colgroup>
<col width="16%" />
<col width="14%" />
<col width="70%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th>
<th class="head">Required</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">id</span></code></td>
<td>yes</td>
<td>profile name.</td>
</tr>
</tbody>
</table>
</div></blockquote>
<p><strong>Request Properties</strong>
The request properties accept 2 formats, both single paramter and parameters array formats are acceptable.</p>
<p>single parameter format:</p>
<table border="1" class="docutils">
<colgroup>
<col width="14%" />
<col width="8%" />
<col width="7%" />
<col width="70%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th>
<th class="head">Required</th>
<th class="head">Type</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">name</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter name</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">configFile</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter config_file</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">value</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter value</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">secure</span></code></td>
<td>yes</td>
<td>integer</td>
<td>secure flag, when 1, the parameter is accessible only by admin users. Defaults to 0.</td>
</tr>
</tbody>
</table>
<p>array parameters format:</p>
<table border="1" class="docutils">
<colgroup>
<col width="14%" />
<col width="8%" />
<col width="7%" />
<col width="70%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th>
<th class="head">Required</th>
<th class="head">Type</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>&nbsp;</td>
<td>yes</td>
<td>array</td>
<td>parameters array</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">&gt;name</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter name</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">&gt;configFile</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter config_file</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">&gt;value</span></code></td>
<td>yes</td>
<td>string</td>
<td>parameter value</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">&gt;secure</span></code></td>
<td>yes</td>
<td>integer</td>
<td>secure flag, when 1, the parameter is accessible only by admin users. Defaults to 0.</td>
</tr>
</tbody>
</table>
</div></blockquote>
<p><strong>Request Example</strong></p>
<div class="highlight-python"><div class="highlight"><pre>1. single parameter format exampe:
{
    &quot;name&quot;:&quot;param1&quot;,
    &quot;configFile&quot;:&quot;configFile1&quot;,
    &quot;value&quot;:&quot;value1&quot;,
    &quot;secure&quot;:0,
}

2. array format example:
[
  {
      &quot;name&quot;:&quot;param1&quot;,
      &quot;configFile&quot;:&quot;configFile1&quot;,
      &quot;value&quot;:&quot;value1&quot;,
      &quot;secure&quot;:0,
  },
  {
      &quot;name&quot;:&quot;param2&quot;,
      &quot;configFile&quot;:&quot;configFile2&quot;,
      &quot;value&quot;:&quot;value2&quot;,
      &quot;secure&quot;:1,
  }
]
</pre></div>
</div>
<p><strong>Response Properties</strong></p>
<div class="highlight-python"><div class="highlight"><pre>+------------------+---------+--------------------------------------------------------------------------------------+
| Name             | Type    | Description                                                                          |
+==================+=========+======================================================================================+
| ``response``     |         | Parameters associated with the profile.                                              |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;profileName`` | string  | profile name                                                                         |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;profileId``   | integer | profile index                                                                        |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;parameters``  | array   | parameters array                                                                     |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;id``         | integer | parameter index                                                                      |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;name``       | string  | parameter name                                                                       |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;configFile`` | string  | parameter config_file                                                                |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;value``      | string  | parameter value                                                                      |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;&gt;secure``     | integer | secure flag, when 1, the parameter is accessible only by admin users. Defaults to 0. |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``alerts``       | array   | A collection of alert messages.                                                      |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;level``       | string  | success, info, warning or error.                                                     |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``&gt;text``        | string  | Alert message.                                                                       |
+------------------+---------+--------------------------------------------------------------------------------------+
| ``version``      | string  |                                                                                      |
+------------------+---------+--------------------------------------------------------------------------------------+
</pre></div>
</div>
<p><strong>Response Example</strong></p>
<div class="highlight-python"><div class="highlight"><pre>{
  &quot;response&quot;:{
    &quot;profileName&quot;: &quot;CCR1&quot;,
    &quot;profileId&quot; : &quot;12&quot;,
    &quot;parameters&quot;:[
        {
            &quot;name&quot;:&quot;param1&quot;,
            &quot;configFile&quot;:&quot;configFile1&quot;
            &quot;value&quot;:&quot;value1&quot;,
            &quot;secure&quot;:&quot;0&quot;,
        },
        {
            &quot;name&quot;:&quot;param2&quot;,
            &quot;configFile&quot;:&quot;configFile2&quot;
            &quot;value&quot;:&quot;value2&quot;,
            &quot;secure&quot;:&quot;1&quot;,
        }
    ]
  }
  &quot;alerts&quot;:[
    {
      &quot;level&quot;: &quot;success&quot;,
      &quot;text&quot;: &quot;&quot;Assign parameters successfully to profile CCR1&quot;
    }
  ]
}
</pre></div>
</div>
</div></blockquote>
<div class="line-block">
<div class="line"><br /></div>
</div>
</div>
</div>


          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="influxdb.html" class="btn btn-neutral float-right" title="InfluxDB">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="profile.html" class="btn btn-neutral" title="Profiles"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../../../',
            VERSION:'1.8.0',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </script>
      <script type="text/javascript" src="../../../_static/jquery.js"></script>
      <script type="text/javascript" src="../../../_static/underscore.js"></script>
      <script type="text/javascript" src="../../../_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="../../../_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>