| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| http://www.apache.org/licenses/LICENSE-2.0 |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <html> |
| <head> |
| <title>{{info.title}}-{{info.version}}</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
| <link rel="shortcut icon" href="images/nifi16.ico"/> |
| <script type="text/javascript" src="../../nifi/assets/jquery/dist/jquery.min.js"></script> |
| <script type="text/javascript"> |
| if (typeof window.jQuery === 'undefined') { |
| document.write(unescape('%3Cscript src="https://code.jquery.com/jquery-3.1.1.min.js" type="text/javascript" %3E%3C/script%3E')); |
| } |
| </script> |
| <style> |
| @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic|Noto+Serif:400,400italic,700,700italic|Droid+Sans+Mono:400"; |
| |
| html { |
| overflow-y: scroll; |
| } |
| |
| html, html a { |
| -webkit-font-smoothing: antialiased; |
| text-shadow: 1px 1px 1px rgba(0,0,0,0.004); |
| } |
| |
| body { |
| width: 62.5em; |
| margin: 0 auto; |
| display: block; |
| font-family: "Open Sans", "DejaVu Sans", sans-serif; |
| } |
| |
| div.header { |
| margin-top: 10px; |
| } |
| |
| img.logo { |
| float: left; |
| margin-right: 10px; |
| } |
| |
| div.header > div.title { |
| font-size: 30px; |
| height: 50px; |
| line-height: 50px; |
| } |
| |
| .sub-title { |
| font-style: italic; |
| color: #aaa; |
| } |
| |
| div.overview { |
| margin-top: 10px; |
| margin-bottom: 15px; |
| } |
| |
| div.endpoint { |
| margin-bottom: 10px; |
| } |
| |
| /* get */ |
| |
| div.endpoint.get { |
| border: 1px solid #174961; |
| } |
| |
| div.get div.operation-handle { |
| background-color: rgba(23, 73, 97, .15); |
| } |
| |
| div.get div.method { |
| background-color: #174961; |
| } |
| |
| div.get div.operation { |
| border-top: 1px solid #174961; |
| } |
| |
| /* post */ |
| |
| div.endpoint.post { |
| border: 1px solid #7298AC; |
| } |
| |
| div.post div.operation-handle { |
| background-color: rgba(114, 152, 172, .15); |
| } |
| |
| div.post div.method { |
| background-color: #7298AC; |
| } |
| |
| div.post div.operation { |
| border-top: 1px solid #7298AC; |
| } |
| |
| /* put */ |
| |
| div.endpoint.put { |
| border: 1px solid #063046; |
| } |
| |
| div.put div.operation-handle { |
| background-color: rgba(6, 48, 70, .15); |
| } |
| |
| div.put div.method { |
| background-color: #063046; |
| } |
| |
| div.put div.operation { |
| border-top: 1px solid #063046; |
| } |
| |
| /* delete */ |
| |
| div.endpoint.delete { |
| border: 1px solid #47758E; |
| } |
| |
| div.delete div.operation-handle { |
| background-color: rgba(71, 117, 142, .15); |
| } |
| |
| div.delete div.method { |
| background-color: #47758E; |
| } |
| |
| div.delete div.operation { |
| border-top: 1px solid #47758E; |
| } |
| |
| /* operations */ |
| |
| div.operation-handle { |
| cursor: pointer; |
| padding-right: 5px; |
| height: 22px; |
| } |
| |
| div.method { |
| float: left; |
| width: 75px; |
| color: #fff; |
| text-align: center; |
| background-color: #7098ad; |
| margin-right: 10px; |
| font-weight: bold; |
| } |
| |
| div.endpoint div.path { |
| float: left; |
| line-height: 22px; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
| |
| div.summary { |
| float: right; |
| font-size: 12px; |
| line-height: 22px; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| width: 40%; |
| text-align: right; |
| } |
| |
| div.operation { |
| padding: 5px; |
| font-size: 12px; |
| } |
| |
| div.operation > div.title { |
| font-weight: bold; |
| color: #000; |
| } |
| |
| div.operation > table { |
| margin-left: 5px; |
| margin-right: 5px; |
| } |
| |
| div.operation div.details { |
| margin-left: 5px; |
| margin-bottom: 5px; |
| color: #333; |
| } |
| |
| div.operation div.description { |
| margin-bottom: 10px; |
| } |
| |
| div.mediatype { |
| line-height: 16px; |
| } |
| |
| div.mediatype > div.title { |
| float: left; |
| width: 70px; |
| } |
| |
| div.mediatype div.title { |
| float: left; |
| } |
| |
| div.type { |
| position: fixed; |
| width: 800px; |
| height: 500px; |
| left: 50%; |
| top: 50%; |
| margin-left: -400px; |
| margin-top: -250px; |
| border: 3px solid #365C6A; |
| box-shadow: 4px 4px 6px rgba(0, 0, 0, 0.9); |
| padding: 10px; |
| background-color: #eee; |
| font-size: 12px; |
| } |
| |
| div.type-container { |
| overflow-y: auto; |
| height: 415px; |
| border-bottom: 1px solid #ccc; |
| } |
| |
| div.close { |
| border: 1px solid #aaa; |
| background-color: #ddd; |
| float: right; |
| margin-top: 10px; |
| font-weight: bold; |
| height: 25px; |
| line-height: 25px; |
| padding: 0 10px; |
| cursor: pointer; |
| } |
| |
| div.close:hover { |
| background-color: #d1d1d1; |
| } |
| |
| div.section-header > div.title { |
| font-size: 24px; |
| float: left; |
| } |
| |
| div.section-description { |
| float: right; |
| margin-top: 10px; |
| } |
| |
| div.section-endpoints { |
| margin-top: 10px; |
| } |
| |
| /* tables */ |
| |
| table { |
| background-color: #fefefe; |
| border: 1px solid #ccc; |
| border-left: 6px solid #ccc; |
| color: #555; |
| display: block; |
| margin-bottom: 12px; |
| padding: 5px 8px; |
| } |
| |
| table th { |
| font-weight: bold; |
| vertical-align:top; |
| text-align:left; |
| padding: 4px 15px; |
| border-width: 0; |
| white-space: nowrap; |
| } |
| |
| table td { |
| vertical-align:top; |
| text-align:left; |
| padding: 2px 15px; |
| border-width: 0; |
| white-space: nowrap; |
| } |
| |
| table td:last-child { |
| width: 99%; |
| white-space: normal; |
| } |
| |
| code.example { |
| background-color: #fefefe; |
| border: 1px solid #ccc; |
| border-left: 6px solid #ccc; |
| color: #555; |
| margin-bottom: 10px; |
| padding: 5px 8px; |
| white-space: pre; |
| display: block; |
| tab-size: 4; |
| -moz-tab-size: 4; |
| -o-tab-size: 4; |
| line-height: 20px |
| } |
| |
| span.nested.collapsed { |
| cursor: pointer; |
| border: 1px solid #7298AC; |
| background-color: rgba(114, 152, 172, .15); |
| padding: 1px; |
| } |
| |
| /* general */ |
| |
| .mono { |
| font-family: monospace; |
| } |
| |
| div.clear { |
| clear: both; |
| } |
| |
| .hidden { |
| display: none; |
| } |
| |
| a, .link { |
| cursor: pointer; |
| color: #1e373f; |
| font-weight: normal; |
| } |
| |
| a:hover, .link:hover { |
| color: #264c58; |
| text-decoration: underline; |
| } |
| </style> |
| <script type="text/javascript"> |
| $(document).ready(function () { |
| // hide any open type dialogs |
| $('html').on('click', function() { |
| $('div.type').hide(); |
| }).on('keydown', function(e) { |
| if (e.which === 27) { |
| $('div.type').hide(); |
| } |
| }); |
| |
| // populate all paths - this is necessary because the @key |
| // doesn't seem to reset after iterating through a nested |
| // array or object |
| $('span.path').each(function() { |
| var path = $(this); |
| var endpoint = path.parent(); |
| endpoint.find('div.path').text(path.text()); |
| }); |
| |
| // toggles the visibility of a given operation |
| $('div.operation-handle').on('click', function () { |
| $(this).next('div.operation').slideToggle(); |
| }); |
| |
| // add support for clicking to view the definition of a type |
| $('a.type-link').on('click', function(e) { |
| // hide any previously shown dialogs |
| $('div.type').hide(); |
| |
| // show the type selected |
| var link = $(this); |
| var typeId = link.text(); |
| $('#' + typeId).show(); |
| e.stopPropagation(); |
| }); |
| |
| // prevent hiding when clicking on the type dialog |
| $('div.type').on('click', function(e) { |
| e.stopPropagation(); |
| }); |
| |
| // due to lack of support for @last when iterating objects in |
| // handlebars we need to remove the last comma from each example |
| $('code.example').find('span.comma:last').remove(); |
| |
| // populate nested examples |
| $('code.example').on('click', 'span.nested', function(e) { |
| var nested = $(this).removeClass('collapsed'); |
| var nestedId = nested.find('span.nested-id'); |
| var nestedExample = nested.find('span.nested-example'); |
| |
| // get the id of the nested example |
| var typeId = nestedId.text(); |
| var example = $('#' + typeId + ' code.example').html(); |
| var depth = nestedId.parents('span.open-object').length; |
| |
| // tab over as appropriate |
| example = example.replace(/(\r\n|\r|\n)/g, function(match) { |
| var tab = '\t'; |
| for (var i = 0; i < depth - 1; i++) { |
| tab += '\t'; |
| } |
| return match + tab; |
| }); |
| |
| // copy over the example |
| nestedExample.html(example); |
| e.stopPropagation(); |
| }); |
| |
| // handle close button |
| $('div.close').on('click', function() { |
| $(this).closest('div.type').hide(); |
| }); |
| |
| // function for organizing the endpoints |
| var organizeEndpoints = function(term, container) { |
| $('div.unorganized > div.endpoints').each(function() { |
| var endpoints = $(this); |
| var path = endpoints.find('div.path').text(); |
| |
| if (term === null || path.indexOf(term) === 0) { |
| endpoints.detach().appendTo(container); |
| } |
| }); |
| }; |
| |
| // organize the endpoints |
| organizeEndpoints('/buckets', $('#bucket-endpoints')); |
| organizeEndpoints('/items', $('#item-endpoints')); |
| organizeEndpoints('/flows', $('#flow-endpoints')); |
| organizeEndpoints('/bundles', $('#bundle-endpoints')); |
| organizeEndpoints('/extensions', $('#extension-endpoints')); |
| organizeEndpoints('/extension-repository', $('#extension-repository-endpoints')); |
| organizeEndpoints('/tenants', $('#tenant-endpoints')); |
| organizeEndpoints('/policies', $('#policy-endpoints')); |
| organizeEndpoints('/access', $('#access-endpoints')); |
| |
| // handle expanding/collapsing the sections |
| $('div.section-header > div.title').on('click', function() { |
| $(this).parent('div.section-header').next('div.section-endpoints').slideToggle(); |
| }); |
| }); |
| </script> |
| </head> |
| <body> |
| <div class="header"> |
| <img class="logo" src="images/bgNifiLogo.png" alt="NiFi Logo"/> |
| <div class="title">{{basePath}}</div> |
| <div class="sub-title">{{info.title}} {{info.version}}</div> |
| <div class="clear"></div> |
| </div> |
| <div class="clear"></div> |
| <div class="overview">{{info.description}}</div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Buckets</div> |
| <div class="sub-title section-description">Bucket endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="bucket-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Items</div> |
| <div class="sub-title section-description">Item endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="item-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Flows</div> |
| <div class="sub-title section-description">Flow endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="flow-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Bundles</div> |
| <div class="sub-title section-description">Bundle endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="bundle-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Extensions</div> |
| <div class="sub-title section-description">Extension endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="extension-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Extension Repository</div> |
| <div class="sub-title section-description">Extension Repository endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="extension-repository-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Tenants</div> |
| <div class="sub-title section-description">Tenant endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="tenant-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Policies</div> |
| <div class="sub-title section-description">Policy endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="policy-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| <div class="section"> |
| <div class="section-header"> |
| <div class="title link">Access</div> |
| <div class="sub-title section-description">Access endpoints</div> |
| <div class="clear"></div> |
| </div> |
| <div id="access-endpoints" class="section-endpoints hidden"></div> |
| </div> |
| |
| <div class="unorganized hidden"> |
| {{#each paths}} |
| {{> endpoint}} |
| {{/each}} |
| </div> |
| {{#each definitions}} |
| {{> type}} |
| {{/each}} |
| </body> |
| </html> |