diff --git a/tag/2.4.0/.buildinfo b/tag/2.4.0/.buildinfo new file mode 100644 index 00000000..f04d931b --- /dev/null +++ b/tag/2.4.0/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: c142ead37e3cba0742f7bdc2011231b7 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/tag/2.4.0/_static/_sphinx_javascript_frameworks_compat.js b/tag/2.4.0/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 00000000..81415803 --- /dev/null +++ b/tag/2.4.0/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/tag/2.4.0/_static/antsibull-minimal.css b/tag/2.4.0/_static/antsibull-minimal.css new file mode 100644 index 00000000..10794e49 --- /dev/null +++ b/tag/2.4.0/_static/antsibull-minimal.css @@ -0,0 +1,4 @@ +@charset "UTF-8"; +/* Copyright (c) Ansible and contributors */ +/* GNU General Public License v3.0+ (see https://www.gnu.org/licenses/gpl-3.0.txt) */ +:root{--antsibull-links-background:#5bbdbf;--antsibull-links-background-active:#91d9db;--antsibull-links-focus-outline:#204748;--antsibull-links-text:#fff;--antsibull-table-background-header:#6ab0de;--antsibull-table-background-even:#e7f2fa;--antsibull-table-background-odd:#fff;--antsibull-table-border:#000;--antsibull-narrowtable-background:#e7f2fa;--antsibull-option-type:purple;--antsibull-option-elements:purple;--antsibull-option-required:red;--antsibull-option-version-added:#006400;--antsibull-option-aliases:#006400;--antsibull-option-default:blue;--antsibull-option-sample:blue;--antsibull-option-sample-header:#000;--antsibull-attribute-support-none:red;--antsibull-attribute-support-partial:#a5a500;--antsibull-attribute-support-full:green;--antsibull-attribute-support-na:inherit}.ansible-links{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:flex-start}.ansible-links>*{margin:2px 4px!important}.ansible-links>li{list-style:none!important}.ansible-links>li>p{display:inline}.ansible-links a{background-color:var(--antsibull-links-background);border-radius:3px;color:var(--antsibull-links-text);cursor:pointer;display:block;padding:4px 12px}.ansible-links a:active,.ansible-links a:focus,.ansible-links a:hover{background-color:var(--antsibull-links-background-active)}.ansible-links a:focus{outline:3px solid var(--antsibull-links-focus-outline)}table.documentation-table{border-bottom:1px solid var(--antsibull-table-border);border-right:1px solid var(--antsibull-table-border)}table.documentation-table th{background-color:var(--antsibull-table-background-header)}table.documentation-table td,table.documentation-table th{border-left:1px solid var(--antsibull-table-border);border-top:1px solid var(--antsibull-table-border);padding:4px}table.documentation-table td.elbow-placeholder{border-top:0;min-width:30px;width:30px}table.documentation-table td{vertical-align:top}table.documentation-table td:first-child{white-space:nowrap}table.documentation-table tr .ansibleOptionLink{display:inline-block}table.documentation-table tr .ansibleOptionLink:after{content:"🔗";opacity:0}table.documentation-table tr:hover .ansibleOptionLink:after{opacity:1}table.documentation-table tr:nth-child(odd){background-color:var(--antsibull-table-background-odd)}table.documentation-table tr:nth-child(2n){background-color:var(--antsibull-table-background-even)}table.ansible-option-table{border-color:var(--antsibull-table-border)!important;display:table;height:1px}table.ansible-option-table tr{height:100%}table.ansible-option-table td,table.ansible-option-table th{border-color:var(--antsibull-table-border)!important;border-bottom:none!important;vertical-align:top!important}table.ansible-option-table th>p{font-size:medium!important}table.ansible-option-table thead tr{background-color:var(--antsibull-table-background-header)}table.ansible-option-table tbody .row-odd td{background-color:var(--antsibull-table-background-odd)!important}table.ansible-option-table tbody .row-even td{background-color:var(--antsibull-table-background-even)!important}table.ansible-option-table ul>li>p{margin:0!important}table.ansible-option-table ul>li>div[class^=highlight]{margin-bottom:4px!important}table.ansible-option-table p.ansible-option-title{display:inline}table.ansible-option-table .ansible-option-type-line{font-size:small;margin-bottom:0}table.ansible-option-table .ansible-option-type{color:var(--antsibull-option-type)}table.ansible-option-table .ansible-option-elements{color:var(--antsibull-option-elements)}table.ansible-option-table .ansible-option-required{color:var(--antsibull-option-required)}table.ansible-option-table .ansible-option-versionadded{color:var(--antsibull-option-version-added);font-size:small}table.ansible-option-table .ansible-option-aliases{color:var(--antsibull-option-aliases);white-space:normal}table.ansible-option-table .ansible-option-line{margin-top:8px}table.ansible-option-table .ansible-option-choices-default-mark,table.ansible-option-table .ansible-option-default,table.ansible-option-table .ansible-option-default-bold{color:var(--antsibull-option-default)}table.ansible-option-table .ansible-option-sample{color:var(--antsibull-option-sample);word-wrap:break-word;word-break:break-all}table.ansible-option-table .ansible-option-sample-bold{color:var(--antsibull-option-sample-header)}table.ansible-option-table .ansible-attribute-support-none{color:var(--antsibull-attribute-support-none)}table.ansible-option-table .ansible-attribute-support-partial{color:var(--antsibull-attribute-support-partial)}table.ansible-option-table .ansible-attribute-support-full{color:var(--antsibull-attribute-support-full)}table.ansible-option-table .ansible-attribute-support-na{color:var(--antsibull-attribute-support-na)}table.ansible-option-table .ansibleOptionLink{display:inline-block}table.ansible-option-table .ansibleOptionLink:after{content:"🔗";opacity:0}table.ansible-option-table p{margin:0 0 8px}table.ansible-option-table tr:hover .ansibleOptionLink:after{opacity:1}table.ansible-option-table td{padding:0!important;white-space:normal}table.ansible-option-table td>div.ansible-option-cell{border-top:1px solid var(--antsibull-table-border);padding:8px 16px}table.ansible-option-table td:first-child{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:inherit;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}table.ansible-option-table td:first-child>div.ansible-option-cell{height:inherit;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%;white-space:nowrap}table.ansible-option-table .ansible-option-indent{border-right:1px solid var(--antsibull-table-border);margin-left:2em}table.ansible-option-table .ansible-attribute-support-label{display:none}@media (max-width:1200px){table.ansible-option-table{border:none!important;display:block;height:unset}table.ansible-option-table thead{display:none}table.ansible-option-table tbody,table.ansible-option-table td,table.ansible-option-table tr{border:none!important;display:block}table.ansible-option-table tbody .row-even td,table.ansible-option-table tbody .row-odd td{background-color:unset!important}table.ansible-option-table td>div.ansible-option-cell{border-top:none}table.ansible-option-table td:first-child>div.ansible-option-cell{background-color:var(--antsibull-narrowtable-background)!important}table.ansible-option-table td:not(:first-child){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}table.ansible-option-table td:not(:first-child)>div.ansible-option-cell{margin-left:1em}table.ansible-option-table .ansible-option-indent,table.ansible-option-table .ansible-option-indent-desc{border:none;border-right:3px solid var(--antsibull-narrowtable-background);margin-left:1em}table.ansible-option-table .ansible-attribute-support-label{display:unset}}.ansible-version-added{font-style:italic}.ansible-option a.reference.external,.ansible-option a.reference.external:hover,.ansible-option a.reference.internal,.ansible-option a.reference.internal:hover,.ansible-option-value a.reference.external,.ansible-option-value a.reference.external:hover,.ansible-option-value a.reference.internal,.ansible-option-value a.reference.internal:hover,.ansible-return-value a.reference.external,.ansible-return-value a.reference.external:hover,.ansible-return-value a.reference.internal,.ansible-return-value a.reference.internal:hover{color:unset} \ No newline at end of file diff --git a/tag/2.4.0/_static/basic.css b/tag/2.4.0/_static/basic.css new file mode 100644 index 00000000..f316efcb --- /dev/null +++ b/tag/2.4.0/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/tag/2.4.0/_static/css/ansible.css b/tag/2.4.0/_static/css/ansible.css new file mode 100644 index 00000000..8ecc337c --- /dev/null +++ b/tag/2.4.0/_static/css/ansible.css @@ -0,0 +1,491 @@ +@import 'theme.css'; +/*! minified with http://css-minify.online-domain-tools.com/ - all comments + * must have ! to preserve during minifying with that tool */ +/*! Fix for read the docs theme: + * https://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html + */ +/*! override table width restrictions */ +@media screen and (min-width: 767px) { + /*! If we ever publish to read the docs, we need to use !important for + * these two styles as read the docs itself loads their theme in a way that + * we can't otherwise override it. + */ + .wy-table-responsive table td { + white-space: normal; + } + .wy-table-responsive { + overflow: visible; + } +} +/*! + * We use the class documentation-table for attribute tables where the first + * column is the name of an attribute and the second column is the description. + */ +/*! These tables look like this: + * + * Attribute Name Description + * -------------- ----------- + * **NAME** This is a multi-line description + * str/required that can span multiple lines + * added in x.y + * With multiple paragraphs + * -------------- ----------- + * + * **NAME** is given the class .value-name + * str is given the class .value-type + * / is given the class .value-separator + * required is given the class .value-required + * added in x.y is given the class .value-added-in + */ +/*! The extra .rst-content is so this will override rtd theme */ +.rst-content table.documentation-table td { + vertical-align: top; +} +table.documentation-table td:first-child { + white-space: nowrap; + vertical-align: top; +} +table.documentation-table td:first-child p:first-child { + font-weight: 700; + display: inline; +} +/*! This is now redundant with above position-based styling */ +/*! +table.documentation-table .value-name { + font-weight: bold; + display: inline; +} +*/ +table.documentation-table .value-type { + font-size: x-small; + color: purple; + display: inline; +} +table.documentation-table .value-separator { + font-size: x-small; + display: inline; +} +table.documentation-table .value-required { + font-size: x-small; + color: red; + display: inline; +} +.value-added-in { + font-size: x-small; + font-style: italic; + color: green; + display: inline; +} +/*! Ansible-specific CSS pulled out of rtd theme for 2.9 */ +.DocSiteProduct-header { + flex: 1; + -webkit-flex: 1; + padding: 10px 20px 20px; + display: flex; + display: -webkit-flex; + flex-direction: column; + -webkit-flex-direction: column; + align-items: center; + -webkit-align-items: center; + justify-content: flex-start; + -webkit-justify-content: flex-start; + margin-left: 20px; + margin-right: 20px; + text-decoration: none; + font-weight: 400; + font-family: "Open Sans", sans-serif; +} +.DocSiteProduct-header:active, +.DocSiteProduct-header:focus, +.DocSiteProduct-header:visited { + color: #fff; +} +.DocSiteProduct-header--core { + font-size: 25px; + background-color: #5bbdbf; + border: 2px solid #5bbdbf; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + color: #fff; + padding-left: 2px; + margin-left: 2px; +} +.DocSiteProduct-headerAlign { + width: 100%; +} +.DocSiteProduct-logo { + width: 60px; + height: 60px; + margin-bottom: -9px; +} +.DocSiteProduct-logoText { + margin-top: 6px; + font-size: 25px; + text-align: left; +} +.DocSiteProduct-CheckVersionPara { + margin-left: 2px; + padding-bottom: 4px; + margin-right: 2px; + margin-bottom: 10px; +} +/*! Ansible color scheme */ +.wy-nav-top, +.wy-side-nav-search { + background-color: #5bbdbf; +} +.wy-menu-vertical header, +.wy-menu-vertical p.caption { + color: #5bbdbf; +} +.wy-menu-vertical a { + padding: 0; +} +.wy-menu-vertical a.reference.internal { + padding: 0.4045em 1.618em; +} +/*! Override sphinx rtd theme max-with of 800px */ +.wy-nav-content { + max-width: 100%; +} +/*! + * Override sphinx_rtd_theme - keeps left-nav from overwriting + * Documentation title + **/ +.wy-nav-side { + top: 45px; +} +/*! + * Ansible - changed absolute to relative to remove extraneous side scroll bar + **/ +.wy-grid-for-nav { + position: relative; +} +/*! Ansible narrow the search box */ +.wy-side-nav-search input[type="text"] { + width: 90%; + padding-left: 24px; +} +/*! Ansible - remove so highlight indenting is correct */ +.rst-content .highlighted { + padding: 0; +} +.DocSiteBanner { + display: flex; + display: -webkit-flex; + justify-content: center; + -webkit-justify-content: center; + flex-wrap: wrap; + -webkit-flex-wrap: wrap; + margin-bottom: 25px; +} +.DocSiteBanner-imgWrapper { + max-width: 100%; +} +td, +th { + min-width: 100px; +} +table { + overflow-x: auto; + max-width: 100%; +} +.documentation-table td, +.documentation-table th { + padding: 4px; + border-left: 1px solid #000; + border-top: 1px solid #000; +} +.documentation-table { + border-right: 1px solid #000; + border-bottom: 1px solid #000; +} +@media print { + * { + background: 0 0 !important; + color: #000 !important; + text-shadow: none !important; + filter: none !important; + -ms-filter: none !important; + } + #nav, + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + /*! Don't show links for images, or javascript/internal links */ + pre, + blockquote { + border: 0 solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + /*! h5bp.com/t */ + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + h2, + h3, + p { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + #google_image_div, + .DocSiteBanner { + display: none !important; + } +} +#sideBanner, +.DocSite-globalNav { + display: none; +} +.DocSite-sideNav { + display: block; + margin-bottom: 40px; +} +.DocSite-nav { + display: none; +} +.ansibleNav { + background: #000; + padding: 0 20px; + width: auto; + border-bottom: 1px solid #444; + font-size: 14px; + z-index: 1; +} +.ansibleNav ul { + list-style: none; + padding-left: 0; + margin-top: 0; +} +.ansibleNav ul li { + padding: 7px 0; + border-bottom: 1px solid #444; +} +.ansibleNav ul li:last-child { + border: none; +} +.ansibleNav ul li a { + color: #fff; + text-decoration: none; + text-transform: uppercase; + padding: 6px 0; +} +.ansibleNav ul li a:hover { + color: #5bbdbf; + background: 0 0; +} +h4 { + font-size: 105%; +} +h5 { + font-size: 90%; +} +h6 { + font-size: 80%; +} +@media screen and (min-width: 768px) { + .DocSite-globalNav { + display: block; + position: fixed; + } + #sideBanner { + display: block; + } + .DocSite-sideNav { + display: none; + } + .DocSite-nav { + flex: initial; + -webkit-flex: initial; + display: flex; + display: -webkit-flex; + flex-direction: row; + -webkit-flex-direction: row; + justify-content: flex-start; + -webkit-justify-content: flex-start; + padding: 15px; + background-color: #000; + text-decoration: none; + font-family: "Open Sans", sans-serif; + } + .DocSiteNav-logo { + width: 28px; + height: 28px; + margin-right: 8px; + margin-top: -6px; + position: fixed; + z-index: 1; + } + .DocSiteNav-title { + color: #fff; + font-size: 20px; + position: fixed; + margin-left: 40px; + margin-top: -4px; + z-index: 1; + } + .ansibleNav { + height: 45px; + width: 100%; + font-size: 13px; + padding: 0 60px 0 0; + } + .ansibleNav ul { + float: right; + display: flex; + flex-wrap: nowrap; + margin-top: 13px; + } + .ansibleNav ul li { + padding: 0; + border-bottom: none; + } + .ansibleNav ul li a { + color: #fff; + text-decoration: none; + text-transform: uppercase; + padding: 8px 13px; + } + h4 { + font-size: 105%; + } + h5 { + font-size: 90%; + } + h6 { + font-size: 80%; + } +} +@media screen and (min-width: 768px) { + #sideBanner, + .DocSite-globalNav { + display: block; + } + .DocSite-sideNav { + display: none; + } + .DocSite-nav { + flex: initial; + -webkit-flex: initial; + display: flex; + display: -webkit-flex; + flex-direction: row; + -webkit-flex-direction: row; + justify-content: flex-start; + -webkit-justify-content: flex-start; + padding: 15px; + background-color: #000; + text-decoration: none; + font-family: "Open Sans", sans-serif; + } + .DocSiteNav-logo { + width: 28px; + height: 28px; + margin-right: 8px; + margin-top: -6px; + position: fixed; + } + .DocSiteNav-title { + color: #fff; + font-size: 20px; + position: fixed; + margin-left: 40px; + margin-top: -4px; + } + .ansibleNav { + height: 45px; + font-size: 13px; + padding: 0 60px 0 0; + } + .ansibleNav ul { + float: right; + display: flex; + flex-wrap: nowrap; + margin-top: 13px; + } + .ansibleNav ul li { + padding: 0; + border-bottom: none; + } + .ansibleNav ul li a { + color: #fff; + text-decoration: none; + text-transform: uppercase; + padding: 8px 13px; + } + h4 { + font-size: 105%; + } + h5 { + font-size: 90%; + } + h6 { + font-size: 80%; + } +} +/* ansibleOptionLink is adapted from h1 .headerlink in sphinx_rtd_theme */ +/* This definition lives in the antsibull Sphinx extension; we update it here to use the icon from FontAwesome */ +/* https://github.com/ansible-community/antsibull-docs/blob/main/src/sphinx_antsibull_ext/css/antsibull-minimal.scss */ +tr .ansibleOptionLink::after { + content: "" !important; + font-family: FontAwesome; +} +tr .ansibleOptionLink { + font: normal normal normal 14px/1 FontAwesome; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +@media screen and (min-width: 767px) { + /* Move anchors a bit up so that they aren't hidden by the header bar */ + section [id] { + padding-top: 45px; + margin-top: -45px; + } + /* + * Without this, + * for example most links in the page's TOC aren't usable anymore, and tables + * sometimes overlap the text above + * */ + section a[id], section table[id] { + padding-top: 0; + margin-top: 0; + } +} + +/* Assure reading examples does not require horizontal scrolling */ +.rst-content div[class^="highlight"] pre { + white-space: pre-wrap; +} + +.rst-content dl dt { margin-bottom: 0; } + +/*! Make sure that environment variable links are blue */ +.rst-content code.xref.std-envvar { color: #2980b9; } diff --git a/tag/2.4.0/_static/css/badge_only.css b/tag/2.4.0/_static/css/badge_only.css new file mode 100644 index 00000000..c718cee4 --- /dev/null +++ b/tag/2.4.0/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/tag/2.4.0/_static/css/fonts/Roboto-Slab-Bold.woff b/tag/2.4.0/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 00000000..6cb60000 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/tag/2.4.0/_static/css/fonts/Roboto-Slab-Bold.woff2 b/tag/2.4.0/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 00000000..7059e231 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/tag/2.4.0/_static/css/fonts/Roboto-Slab-Regular.woff b/tag/2.4.0/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 00000000..f815f63f Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/tag/2.4.0/_static/css/fonts/Roboto-Slab-Regular.woff2 b/tag/2.4.0/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 00000000..f2c76e5b Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/tag/2.4.0/_static/css/fonts/fontawesome-webfont.eot b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..e9f60ca9 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/tag/2.4.0/_static/css/fonts/fontawesome-webfont.svg b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..855c845e --- /dev/null +++ b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tag/2.4.0/_static/css/fonts/fontawesome-webfont.ttf b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..35acda2f Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/tag/2.4.0/_static/css/fonts/fontawesome-webfont.woff b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..400014a4 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/tag/2.4.0/_static/css/fonts/fontawesome-webfont.woff2 b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..4d13fc60 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/tag/2.4.0/_static/css/fonts/lato-bold-italic.woff b/tag/2.4.0/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 00000000..88ad05b9 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/lato-bold-italic.woff differ diff --git a/tag/2.4.0/_static/css/fonts/lato-bold-italic.woff2 b/tag/2.4.0/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 00000000..c4e3d804 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/tag/2.4.0/_static/css/fonts/lato-bold.woff b/tag/2.4.0/_static/css/fonts/lato-bold.woff new file mode 100644 index 00000000..c6dff51f Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/lato-bold.woff differ diff --git a/tag/2.4.0/_static/css/fonts/lato-bold.woff2 b/tag/2.4.0/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 00000000..bb195043 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/lato-bold.woff2 differ diff --git a/tag/2.4.0/_static/css/fonts/lato-normal-italic.woff b/tag/2.4.0/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 00000000..76114bc0 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/lato-normal-italic.woff differ diff --git a/tag/2.4.0/_static/css/fonts/lato-normal-italic.woff2 b/tag/2.4.0/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 00000000..3404f37e Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/tag/2.4.0/_static/css/fonts/lato-normal.woff b/tag/2.4.0/_static/css/fonts/lato-normal.woff new file mode 100644 index 00000000..ae1307ff Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/lato-normal.woff differ diff --git a/tag/2.4.0/_static/css/fonts/lato-normal.woff2 b/tag/2.4.0/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 00000000..3bf98433 Binary files /dev/null and b/tag/2.4.0/_static/css/fonts/lato-normal.woff2 differ diff --git a/tag/2.4.0/_static/css/rtd-ethical-ads.css b/tag/2.4.0/_static/css/rtd-ethical-ads.css new file mode 100644 index 00000000..a146003e --- /dev/null +++ b/tag/2.4.0/_static/css/rtd-ethical-ads.css @@ -0,0 +1,4 @@ +.ethical-sidebar, +.ethical-footer { + border-radius: 0 !important; +} diff --git a/tag/2.4.0/_static/css/theme.css b/tag/2.4.0/_static/css/theme.css new file mode 100644 index 00000000..19a446a0 --- /dev/null +++ b/tag/2.4.0/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/tag/2.4.0/_static/doctools.js b/tag/2.4.0/_static/doctools.js new file mode 100644 index 00000000..4d67807d --- /dev/null +++ b/tag/2.4.0/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/tag/2.4.0/_static/documentation_options.js b/tag/2.4.0/_static/documentation_options.js new file mode 100644 index 00000000..1823c1bd --- /dev/null +++ b/tag/2.4.0/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: false, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/tag/2.4.0/_static/file.png b/tag/2.4.0/_static/file.png new file mode 100644 index 00000000..a858a410 Binary files /dev/null and b/tag/2.4.0/_static/file.png differ diff --git a/tag/2.4.0/_static/images/Ansible-Mark-RGB_Black.png b/tag/2.4.0/_static/images/Ansible-Mark-RGB_Black.png new file mode 100644 index 00000000..0b4e7219 Binary files /dev/null and b/tag/2.4.0/_static/images/Ansible-Mark-RGB_Black.png differ diff --git a/tag/2.4.0/_static/images/Ansible-Mark-RGB_Black.svg b/tag/2.4.0/_static/images/Ansible-Mark-RGB_Black.svg new file mode 100644 index 00000000..c600b6ee --- /dev/null +++ b/tag/2.4.0/_static/images/Ansible-Mark-RGB_Black.svg @@ -0,0 +1,14 @@ + + + diff --git a/tag/2.4.0/_static/images/Ansible-Mark-RGB_White.png b/tag/2.4.0/_static/images/Ansible-Mark-RGB_White.png new file mode 100644 index 00000000..5754701a Binary files /dev/null and b/tag/2.4.0/_static/images/Ansible-Mark-RGB_White.png differ diff --git a/tag/2.4.0/_static/images/Ansible-Mark-RGB_White.svg b/tag/2.4.0/_static/images/Ansible-Mark-RGB_White.svg new file mode 100644 index 00000000..2275aece --- /dev/null +++ b/tag/2.4.0/_static/images/Ansible-Mark-RGB_White.svg @@ -0,0 +1 @@ + diff --git a/tag/2.4.0/_static/jquery.js b/tag/2.4.0/_static/jquery.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/tag/2.4.0/_static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/tag/2.4.0/_static/js/html5shiv.min.js b/tag/2.4.0/_static/js/html5shiv.min.js new file mode 100644 index 00000000..cd1c674f --- /dev/null +++ b/tag/2.4.0/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/tag/2.4.0/_static/js/theme.js b/tag/2.4.0/_static/js/theme.js new file mode 100644 index 00000000..1fddb6ee --- /dev/null +++ b/tag/2.4.0/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/tag/2.4.0/_static/minus.png b/tag/2.4.0/_static/minus.png new file mode 100644 index 00000000..d96755fd Binary files /dev/null and b/tag/2.4.0/_static/minus.png differ diff --git a/tag/2.4.0/_static/plus.png b/tag/2.4.0/_static/plus.png new file mode 100644 index 00000000..7107cec9 Binary files /dev/null and b/tag/2.4.0/_static/plus.png differ diff --git a/tag/2.4.0/_static/pygments.css b/tag/2.4.0/_static/pygments.css new file mode 100644 index 00000000..fddd1811 --- /dev/null +++ b/tag/2.4.0/_static/pygments.css @@ -0,0 +1,81 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc; border: 1px solid #edff00; padding-top: 2px; border-radius: 3px; display: block } +.highlight { background: #f8f8f8; } +.highlight .c { color: #6a737d; font-style: italic } /* Comment */ +.highlight .err { color: #a61717; background-color: #e3d2d2; border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .l { color: #032f62 } /* Literal */ +.highlight .n { color: #333333 } /* Name */ +.highlight .o { color: #666666; font-weight: bold } /* Operator */ +.highlight .p { font-weight: bold } /* Punctuation */ +.highlight .ch { color: #6a737d; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #6a737d; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #6a737d; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #6a737d; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #999999; font-weight: bold; font-style: italic; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000; background-color: #ffdddd } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #aa0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000; background-color: #ddffdd } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000; font-weight: bold } /* Keyword.Type */ +.highlight .ld { color: #032f62 } /* Literal.Date */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #008080 } /* Name.Attribute */ +.highlight .nb { color: #0086b3 } /* Name.Builtin */ +.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ +.highlight .no { color: #008080 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #800080; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #555555; font-weight: bold } /* Name.Namespace */ +.highlight .nx { color: #333333 } /* Name.Other */ +.highlight .py { color: #333333 } /* Name.Property */ +.highlight .nt { color: #22863a; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #9960b5; font-weight: bold } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .pm { font-weight: bold } /* Punctuation.Marker */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #009999 } /* Literal.Number.Bin */ +.highlight .mf { color: #009999 } /* Literal.Number.Float */ +.highlight .mh { color: #009999 } /* Literal.Number.Hex */ +.highlight .mi { color: #009999 } /* Literal.Number.Integer */ +.highlight .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight .sa { color: #dd1144 } /* Literal.String.Affix */ +.highlight .sb { color: #dd1144 } /* Literal.String.Backtick */ +.highlight .sc { color: #dd1144 } /* Literal.String.Char */ +.highlight .dl { color: #dd1144 } /* Literal.String.Delimiter */ +.highlight .sd { color: #dd1144; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #dd1144 } /* Literal.String.Double */ +.highlight .se { color: #dd1144; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #dd1144 } /* Literal.String.Heredoc */ +.highlight .si { color: #dd1144; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #dd1144 } /* Literal.String.Other */ +.highlight .sr { color: #009926 } /* Literal.String.Regex */ +.highlight .s1 { color: #dd1144 } /* Literal.String.Single */ +.highlight .ss { color: #990073 } /* Literal.String.Symbol */ +.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e; font-weight: bold } /* Name.Function.Magic */ +.highlight .vc { color: #008080; font-weight: bold } /* Name.Variable.Class */ +.highlight .vg { color: #008080; font-weight: bold } /* Name.Variable.Global */ +.highlight .vi { color: #008080; font-weight: bold } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5; font-weight: bold } /* Name.Variable.Magic */ +.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/tag/2.4.0/_static/searchtools.js b/tag/2.4.0/_static/searchtools.js new file mode 100644 index 00000000..92da3f8b --- /dev/null +++ b/tag/2.4.0/_static/searchtools.js @@ -0,0 +1,619 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/tag/2.4.0/_static/sphinx_highlight.js b/tag/2.4.0/_static/sphinx_highlight.js new file mode 100644 index 00000000..8a96c69a --- /dev/null +++ b/tag/2.4.0/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/tag/2.4.0/collections/ansible/index.html b/tag/2.4.0/collections/ansible/index.html new file mode 100644 index 00000000..3ee284e8 --- /dev/null +++ b/tag/2.4.0/collections/ansible/index.html @@ -0,0 +1,166 @@ + + + + + + + + Collections in the Ansible Namespace — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

Collections in the Ansible Namespace

+

These are the collections documented here in the ansible namespace.

+ +
+
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/async_status_module.html b/tag/2.4.0/collections/ansible/windows/async_status_module.html new file mode 100644 index 00000000..317d19fc --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/async_status_module.html @@ -0,0 +1,395 @@ + + + + + + + + ansible.windows.async_status module – Obtain status of asynchronous task — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.async_status module – Obtain status of asynchronous task

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.async_status.

+
+ +
+

Synopsis

+
    +
  • This module gets the status of an asynchronous task.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+

jid

+

string / required

+

Job or task identifier

+
+

mode

+

string

+

If status, obtain the status.

+

If cleanup, clean up the async job cache (by default in ~/.ansible_async/) for the specified job jid.

+

Choices:

+
    +
  • "cleanup"

  • +
  • "status" ← (default)

  • +
+
+
+
+

Attributes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Attribute

Support

Description

+

action

+

Support: full

+

Indicates this has a corresponding action plugin so some parts of the options can be executed on the controller

+
+

async

+

Support: none

+

Supports being used with the async keyword

+
+

bypass_host_loop

+

Support: none

+

Forces a ‘global’ task that does not execute per host, this bypasses per host templating and serial, throttle and other loop considerations

+

Conditionals will work as if run_once is being used, variables used will be from the first available host

+

This action will not work normally outside of lockstep strategies

+
+

check_mode

+

Support: full

+

added in ansible.windows 2.4.0

+

Can run in check_mode and return changed status prediction without modifying target

+
+

diff_mode

+

Support: none

+

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

+
+

platform

+

Platform: windows

+

Target OS/families that can be operated against

+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.async_status

The official documentation on the ansible.builtin.async_status module.

+
+
+
+
+
+

Examples

+
- name: Asynchronous yum task
+  ansible.windows.win_command: my.exe
+  async: 1000
+  poll: 0
+  register: long_cmd
+
+- name: Wait for asynchronous job to end
+  ansible.builtin.async_status:
+    jid: '{{ long_cmd.ansible_job_id }}'
+  register: job_result
+  until: job_result.finished
+  retries: 100
+  delay: 10
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

ansible_job_id

+

string

+

The asynchronous job id

+

Returned: success

+

Sample: "360874038559.4169"

+
+

erased

+

string

+

Path to erased job file

+

Returned: when file is erased

+
+

finished

+

integer

+

Whether the asynchronous job has finished (1) or not (0)

+

Returned: always

+

Sample: 1

+
+

started

+

integer

+

Whether the asynchronous job has started (1) or not (0)

+

Returned: always

+

Sample: 1

+
+

stderr

+

string

+

Any errors returned by async_wrapper

+

Returned: always

+
+

stdout

+

string

+

Any output returned by async_wrapper

+

Returned: always

+
+
+

Authors

+
    +
  • Ansible Core Team

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/index.html b/tag/2.4.0/collections/ansible/windows/index.html new file mode 100644 index 00000000..5b6747ed --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/index.html @@ -0,0 +1,267 @@ + + + + + + + + Ansible.Windows — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

Ansible.Windows

+

Collection version 2.4.0

+ +
+

Description

+

Ansible collection for core Windows plugins.

+

Authors:

+
    +
  • Jordan Borean @jborean93

  • +
  • Matt Davis @nitzmahone

  • +
+

Supported ansible-core versions:

+
    +
  • 2.14 or newer

  • +
+ +
+
+

Communication

+ +
+
+
+
+

Plugin Index

+

These are the plugins in the ansible.windows collection:

+
+

Modules

+ +
+
+
+
+

Filter Plugins

+
    +
  • quote filter – Quotes argument(s) for various Windows shells

  • +
+
+
+
+

See also

+

List of collections with docs hosted here.

+
+
+
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/quote_filter.html b/tag/2.4.0/collections/ansible/windows/quote_filter.html new file mode 100644 index 00000000..f4a13800 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/quote_filter.html @@ -0,0 +1,309 @@ + + + + + + + + ansible.windows.quote filter – Quotes argument(s) for various Windows shells — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.quote filter – Quotes argument(s) for various Windows shells

+
+

Note

+

This filter plugin is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.quote.

+
+ +
+

Synopsis

+
    +
  • Quotes argument(s) for the various Windows command line shells.

  • +
  • Defaults to escaping arguments based on the Win32 C argv parsing rules that ansible.windows.win_command uses.

  • +
  • Using shell=’cmd’ or shell=’powershell’ can be set to escape arguments for those respective shells.

  • +
  • Each value is escaped in a way to ensure the process gets the literal argument passed in and meta chars escaped.

  • +
+
+
+

Input

+

This describes the input of the filter, the value before | ansible.windows.quote.

+ + + + + + + + + + + +

Parameter

Comments

+

Input

+

any / required

+

The string, list, or dict of values to quote.

+

A string or list of strings will be quoted.

+

When using a dict as the input, the final form will be in KEY="value" to match the MSI parameter format.

+
+
+
+

Keyword parameters

+

This describes keyword parameters of the filter. These are the values key1=value1, key2=value2 and so on in the following +example: input | ansible.windows.quote(key1=value1, key2=value2, ...)

+ + + + + + + + + + + +

Parameter

Comments

+

shell

+

string

+

The shell to quote the arguments for.

+

By default no shell is used and the arguments are quoted with the Win32 C quoting rules.

+

Choices:

+
    +
  • "None" ← (default)

  • +
  • "cmd"

  • +
  • "powershell"

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_command

Executes a command on a remote Windows node.

+
+
ansible.windows.win_shell

Execute shell commands on target hosts.

+
+
+
+
+
+

Examples

+
- name: Escape an argument for win_command
+  ansible.windows.win_command:
+    cmd: my.exe {{ argument1 | ansible.windows.quote }}
+
+- name: Escape an argument for PowerShell
+  ansible.windows.win_shell: |
+    $var = {{ argument1 | ansible.windows.quote(shell='powershell') }}
+    Write-Host $var
+
+
+
+
+

Return Value

+ + + + + + + + + + + +

Key

Description

+

Return value

+

string

+

The quoted input value(s) as a single space delimited string.

+

Returned: success

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+

Hint

+

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.

+
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/setup_module.html b/tag/2.4.0/collections/ansible/windows/setup_module.html new file mode 100644 index 00000000..dbc502f8 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/setup_module.html @@ -0,0 +1,286 @@ + + + + + + + + ansible.windows.setup module – Gathers facts about remote hosts — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.setup module – Gathers facts about remote hosts

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.setup.

+
+ +
+

Synopsis

+
    +
  • This module is automatically called by playbooks to gather useful variables about remote hosts that can be used in playbooks. It can also be executed directly by /usr/bin/ansible to check what variables are available to a host. Ansible provides many facts about the system, automatically.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

_measure_subset

+

boolean

+

For internal use

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

fact_path

+

path

+

Path used for local ansible facts (*.ps1 or *.json) - files in this dir will be run (if a ps1) or read (if a json) and their results be added to the return facts.

+

The returned fact will be named after the local file (without the extension suffix), e.g. ansible_my_fact.

+
+

gather_subset

+

list / elements=string

+

If supplied, restrict the additional facts collected to the given subset.

+

Can specify a list of values to specify a larger subset.

+

Values can also be used with an initial ! to specify that that specific subset should not be collected.

+

To avoid collecting even the min subset, specify !all,!min.

+

To collect only specific facts, use !all,!min, and specify the particular fact subsets.

+

Default: ["all"]

+
+

gather_timeout

+

integer

+

Set the default timeout in seconds for individual fact gathering.

+

Default: 10

+
+
+
+

Notes

+
+

Note

+
    +
  • More ansible facts will be added with successive releases. If facter is installed, variables from these programs will also be snapshotted into the JSON file for usage in templating. These variables are prefixed with facter_ so it’s easy to tell their source. All variables are bubbled up to the caller.

  • +
  • Some facts may be unavailable if running under a limited account.

  • +
  • For more information about delegated facts, please check https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html#delegating-facts.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.setup

The official documentation on the ansible.builtin.setup module.

+
+
+
+
+
+

Examples

+
- name: run the setup facts
+  ansible.builtin.setup:
+
+
+
+

Authors

+
    +
  • Ansible Core Team

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/slurp_module.html b/tag/2.4.0/collections/ansible/windows/slurp_module.html new file mode 100644 index 00000000..dcaa933f --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/slurp_module.html @@ -0,0 +1,302 @@ + + + + + + + + ansible.windows.slurp module – Slurps a file from remote nodes — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.slurp module – Slurps a file from remote nodes

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.slurp.

+
+ +
+

Synopsis

+
    +
  • This module works like ansible.builtin.fetch. It is used for fetching a base64- encoded blob containing the data in a remote file.

  • +
+
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+
+

src

+

aliases: path

+

path / required

+

The file on the remote system to fetch. This must be a file, not a directory.

+
+
+
+

Notes

+
+

Note

+
    +
  • This module returns an ‘in memory’ base64 encoded version of the file, take into account that this will require at least twice the RAM as the original file size.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.fetch

The official documentation on the ansible.builtin.fetch module.

+
+
ansible.builtin.slurp

The official documentation on the ansible.builtin.slurp module.

+
+
+
+
+
+

Examples

+
- name: Retrieve remote ini file on a Windows host
+  ansible.builtin.slurp:
+    src: C:\Program Files\Program\program.ini
+  register: program_conf
+
+- name: Print returned information
+  ansible.builtin.debug:
+    msg: "{{ program_conf['content'] | b64decode }}"
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + +

Key

Description

+

content

+

string

+

Encoded file content

+

Returned: success

+

Sample: "MjE3OQo="

+
+

encoding

+

string

+

Type of encoding used for file

+

Returned: success

+

Sample: "base64"

+
+

source

+

string

+

Actual path of file slurped

+

Returned: success

+

Sample: "C:\\Program Files\\Program\\program.ini"

+
+
+

Authors

+
    +
  • Ansible Core Team

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_acl_inheritance_module.html b/tag/2.4.0/collections/ansible/windows/win_acl_inheritance_module.html new file mode 100644 index 00000000..3d66f8e0 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_acl_inheritance_module.html @@ -0,0 +1,303 @@ + + + + + + + + ansible.windows.win_acl_inheritance module – Change ACL inheritance — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_acl_inheritance module – Change ACL inheritance

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_acl_inheritance.

+
+ +
+

Synopsis

+
    +
  • Change ACL (Access Control List) inheritance and optionally copy inherited ACE’s (Access Control Entry) to dedicated ACE’s or vice versa.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +

Parameter

Comments

+

path

+

string / required

+

Path to be used for changing inheritance

+

Support for registry keys have been added in ansible.windows>=1.11.0

+
+

reorganize

+

boolean

+

For state=absent, indicates if the inherited ACE’s should be copied from the parent. This is necessary (in combination with removal) for a simple ACL instead of using multiple ACE deny entries.

+

For state=present, indicates if the inherited ACE’s should be deduplicated compared to the parent. This removes complexity of the ACL structure.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

state

+

string

+

Specify whether to enable present or disable absent ACL inheritance.

+

Choices:

+
    +
  • "absent" ← (default)

  • +
  • "present"

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_acl

Set file/directory/registry/certificate permissions for a system user or group.

+
+
ansible.windows.win_file

Creates, touches or removes files or directories.

+
+
ansible.windows.win_stat

Get information about Windows files.

+
+
+
+
+
+

Examples

+
- name: Disable inherited ACE's
+  ansible.windows.win_acl_inheritance:
+    path: C:\apache
+    state: absent
+
+- name: Disable and copy inherited ACE's
+  ansible.windows.win_acl_inheritance:
+    path: C:\apache
+    state: absent
+    reorganize: true
+
+- name: Enable and remove dedicated ACE's
+  ansible.windows.win_acl_inheritance:
+    path: C:\apache
+    state: present
+    reorganize: true
+
+- name: Disable registry key inherited ACE's
+  ansible.windows.win_acl_inheritance:
+    path: HKLM:\SOFTWARE\Secrets
+    state: absent
+
+- name: Disable and copy registry key inherited ACE's
+  ansible.windows.win_acl_inheritance:
+    path: HKLM:\SOFTWARE\Secrets
+    state: absent
+    reorganize: true
+
+- name: Enable and remove registry key dedicated ACE's
+  ansible.windows.win_acl_inheritance:
+    path: HKLM:\SOFTWARE\Secrets
+    state: present
+    reorganize: true
+
+
+
+

Authors

+
    +
  • Oleg Galushko (@inorangestylee)

  • +
  • Hans-Joachim Kliemeck (@h0nIg)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_acl_module.html b/tag/2.4.0/collections/ansible/windows/win_acl_module.html new file mode 100644 index 00000000..4f509be6 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_acl_module.html @@ -0,0 +1,392 @@ + + + + + + + + ansible.windows.win_acl module – Set file/directory/registry/certificate permissions for a system user or group — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_acl module – Set file/directory/registry/certificate permissions for a system user or group

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_acl.

+
+ +
+

Synopsis

+
    +
  • Add or remove rights/permissions for a given user or group for the specified file, folder, registry key or AppPool identifies.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

follow

+

boolean

+

added in ansible.windows 1.12.0

+

Follow the symlinks and junctions to apply the ACLs to the target instead of the link.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

inherit

+

string

+

Inherit flags on the ACL rules.

+

Can be specified as a comma separated list, e.g. ContainerInherit, ObjectInherit.

+

For more information on the choices see MSDN InheritanceFlags enumeration at https://msdn.microsoft.com/en-us/library/system.security.accesscontrol.inheritanceflags.aspx.

+

Defaults to ContainerInherit, ObjectInherit for Directories.

+

Choices:

+
    +
  • "ContainerInherit"

  • +
  • "ObjectInherit"

  • +
+
+

path

+

string / required

+

The path to the file or directory.

+
+

propagation

+

string

+

Propagation flag on the ACL rules.

+

For more information on the choices see MSDN PropagationFlags enumeration at https://msdn.microsoft.com/en-us/library/system.security.accesscontrol.propagationflags.aspx.

+

Choices:

+
    +
  • "InheritOnly"

  • +
  • "None" ← (default)

  • +
  • "NoPropagateInherit"

  • +
+
+

rights

+

string / required

+

The rights/permissions that are to be allowed/denied for the specified user or group for the item at path.

+

If path is a file or directory, rights can be any right under MSDN FileSystemRights https://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemrights.aspx.

+

If path is a registry key, rights can be any right under MSDN RegistryRights https://msdn.microsoft.com/en-us/library/system.security.accesscontrol.registryrights.aspx.

+

If path is a certificate key, rights can be Read and/or FullControl. (Added in 2.2.0)

+
+

state

+

string

+

Specify whether to add present or remove absent the specified access rule.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
+
+

type

+

string / required

+

Specify whether to allow or deny the rights specified.

+

Choices:

+
    +
  • "allow"

  • +
  • "deny"

  • +
+
+

user

+

string / required

+

User or Group to add specified rights to act on src file/folder or registry key.

+
+
+
+

Notes

+
+

Note

+
    +
  • If adding ACL’s for AppPool identities, the Windows Feature “Web-Scripting-Tools” must be enabled.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_acl_inheritance

Change ACL inheritance.

+
+
ansible.windows.win_file

Creates, touches or removes files or directories.

+
+
ansible.windows.win_owner

Set owner.

+
+
ansible.windows.win_stat

Get information about Windows files.

+
+
+
+
+
+

Examples

+
- name: Restrict write and execute access to User Fed-Phil
+  ansible.windows.win_acl:
+    user: Fed-Phil
+    path: C:\Important\Executable.exe
+    type: deny
+    rights: ExecuteFile,Write
+
+- name: Add IIS_IUSRS allow rights
+  ansible.windows.win_acl:
+    path: C:\inetpub\wwwroot\MySite
+    user: IIS_IUSRS
+    rights: FullControl
+    type: allow
+    state: present
+    inherit: ContainerInherit, ObjectInherit
+    propagation: 'None'
+
+- name: Set registry key right
+  ansible.windows.win_acl:
+    path: HKCU:\Bovine\Key
+    user: BUILTIN\Users
+    rights: EnumerateSubKeys
+    type: allow
+    state: present
+    inherit: ContainerInherit, ObjectInherit
+    propagation: 'None'
+
+- name: Remove FullControl AccessRule for IIS_IUSRS
+  ansible.windows.win_acl:
+    path: C:\inetpub\wwwroot\MySite
+    user: IIS_IUSRS
+    rights: FullControl
+    type: allow
+    state: absent
+    inherit: ContainerInherit, ObjectInherit
+    propagation: 'None'
+
+- name: Deny Intern
+  ansible.windows.win_acl:
+    path: C:\Administrator\Documents
+    user: Intern
+    rights: Read,Write,Modify,FullControl,Delete
+    type: deny
+    state: present
+
+- name: Set certificate private key FullControl to IIS_IUSRS
+  ansible.windows.win_acl:
+    path: Cert:\LocalMachine\My\168ba8c488463f88c6648466a22484b6189e165f
+    user: IIS_IUSRS
+    type: allow
+    state: present
+    rights: FullControl
+
+
+
+

Authors

+
    +
  • Phil Schwartz (@schwartzmx)

  • +
  • Trond Hindenes (@trondhindenes)

  • +
  • Hans-Joachim Kliemeck (@h0nIg)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_certificate_store_module.html b/tag/2.4.0/collections/ansible/windows/win_certificate_store_module.html new file mode 100644 index 00000000..f5b9830f --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_certificate_store_module.html @@ -0,0 +1,467 @@ + + + + + + + + ansible.windows.win_certificate_store module – Manages the certificate store — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_certificate_store module – Manages the certificate store

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_certificate_store.

+
+ +
+

Synopsis

+
    +
  • Used to import/export and remove certificates and keys from the local certificate store.

  • +
  • This module is not used to create certificates and will only manage existing certs as a file or in the store.

  • +
  • It can be used to import PEM, DER, P7B, PKCS12 (PFX) certificates and export PEM, DER and PKCS12 certificates.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

file_type

+

string

+

The file type to export the certificate as when state=exported.

+

der is a binary ASN.1 encoded file.

+

pem is a base64 encoded file of a der file in the OpenSSL form.

+

pkcs12 (also known as pfx) is a binary container that contains both the certificate and private key unlike the other options.

+

When pkcs12 is set and the private key is not exportable or accessible by the current user, it will throw an exception.

+

Choices:

+
    +
  • "der" ← (default)

  • +
  • "pem"

  • +
  • "pkcs12"

  • +
+
+

key_exportable

+

boolean

+

Whether to allow the private key to be exported.

+

If false, then this module and other process will only be able to export the certificate and the private key cannot be exported.

+

Used when state=present only.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

key_storage

+

string

+

Specifies where Windows will store the private key when it is imported.

+

When set to default, the default option as set by Windows is used, typically user.

+

When set to machine, the key is stored in a path accessible by various users.

+

When set to user, the key is stored in a path only accessible by the current user.

+

Used when state=present only and cannot be changed once imported.

+

See https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509keystorageflags.aspx for more details.

+

Choices:

+
    +
  • "default" ← (default)

  • +
  • "machine"

  • +
  • "user"

  • +
+
+

password

+

string

+

The password of the pkcs12 certificate key.

+

This is used when reading a pkcs12 certificate file or the password to set when state=exported and file_type=pkcs12.

+

If the pkcs12 file has no password set or no password should be set on the exported file, do not set this option.

+
+

path

+

path

+

The path to a certificate file.

+

This is required when state is present or exported.

+

When state is absent and thumbprint is not specified, the thumbprint is derived from the certificate at this path.

+
+

state

+

string

+

If present, will ensure that the certificate at path is imported into the certificate store specified.

+

If absent, will ensure that the certificate specified by thumbprint or the thumbprint of the cert at path is removed from the store specified.

+

If exported, will ensure the file at path is a certificate specified by thumbprint.

+

When exporting a certificate, if path is a directory then the module will fail, otherwise the file will be replaced if needed.

+

Choices:

+
    +
  • "absent"

  • +
  • "exported"

  • +
  • "present" ← (default)

  • +
+
+

store_location

+

string

+

The store location to use when importing a certificate or searching for a certificate.

+

Can be set to CurrentUser or LocalMachine when store_type=system.

+

Defaults to LocalMachine when store_type=system.

+

Must be set to any service name when store_type=service.

+

Default: "LocalMachine"

+
+

store_name

+

string

+

The store name to use when importing a certificate or searching for a certificate.

+

AddressBook: The X.509 certificate store for other users

+

AuthRoot: The X.509 certificate store for third-party certificate authorities (CAs)

+

CertificateAuthority: The X.509 certificate store for intermediate certificate authorities (CAs)

+

Disallowed: The X.509 certificate store for revoked certificates

+

My: The X.509 certificate store for personal certificates

+

Root: The X.509 certificate store for trusted root certificate authorities (CAs)

+

TrustedPeople: The X.509 certificate store for directly trusted people and resources

+

TrustedPublisher: The X.509 certificate store for directly trusted publishers

+

Default: "My"

+
+

store_type

+

string

+

added in ansible.windows 1.5.0

+

The store type to manage.

+

Use system to manage locations in the system store, LocalMachine and CurrentUser.

+

Use service to manage the store of a service account specified by store_location.

+

Choices:

+
    +
  • "system" ← (default)

  • +
  • "service"

  • +
+
+

thumbprint

+

string

+

The thumbprint as a hex string to either export or remove.

+

See the examples for how to specify the thumbprint.

+
+
+
+

Notes

+
+

Note

+
    +
  • Some actions on PKCS12 certificates and keys may fail with the error the specified network password is not correct, either use CredSSP or Kerberos with credential delegation, or use become to bypass these restrictions.

  • +
  • The certificates must be located on the Windows host to be set with path.

  • +
  • When importing a certificate for usage in IIS, it is generally required to use the machine key_storage option, as both default and user will make the private key unreadable to IIS APPPOOL identities and prevent binding the certificate to the https endpoint.

  • +
+
+
+
+

Examples

+
- name: Import a certificate
+  ansible.windows.win_certificate_store:
+    path: C:\Temp\cert.pem
+    state: present
+
+- name: Import pfx certificate that is password protected
+  ansible.windows.win_certificate_store:
+    path: C:\Temp\cert.pfx
+    state: present
+    password: VeryStrongPasswordHere!
+  become: true
+  become_method: runas
+
+- name: Import pfx certificate without password and set private key as un-exportable
+  ansible.windows.win_certificate_store:
+    path: C:\Temp\cert.pfx
+    state: present
+    key_exportable: false
+  # usually you don't set this here but it is for illustrative purposes
+  vars:
+    ansible_winrm_transport: credssp
+
+- name: Remove a certificate based on file thumbprint
+  ansible.windows.win_certificate_store:
+    path: C:\Temp\cert.pem
+    state: absent
+
+- name: Remove a certificate based on thumbprint
+  ansible.windows.win_certificate_store:
+    thumbprint: BD7AF104CF1872BDB518D95C9534EA941665FD27
+    state: absent
+
+- name: Remove certificate based on thumbprint is CurrentUser/TrustedPublishers store
+  ansible.windows.win_certificate_store:
+    thumbprint: BD7AF104CF1872BDB518D95C9534EA941665FD27
+    state: absent
+    store_location: CurrentUser
+    store_name: TrustedPublisher
+
+- name: Export certificate as der encoded file
+  ansible.windows.win_certificate_store:
+    path: C:\Temp\cert.cer
+    state: exported
+    file_type: der
+
+- name: Export certificate and key as pfx encoded file
+  ansible.windows.win_certificate_store:
+    path: C:\Temp\cert.pfx
+    state: exported
+    file_type: pkcs12
+    password: AnotherStrongPass!
+  become: true
+  become_method: runas
+  become_user: SYSTEM
+
+- name: Import certificate be used by IIS
+  ansible.windows.win_certificate_store:
+    path: C:\Temp\cert.pfx
+    file_type: pkcs12
+    password: StrongPassword!
+    store_location: LocalMachine
+    key_storage: machine
+    state: present
+  become: true
+  become_method: runas
+  become_user: SYSTEM
+
+- name: Import certificate to be used for LDAPS
+  ansible.windows.win_certificate_store:
+    path: C:\Temp\cert.pfx
+    password: StrongPassword!
+    store_type: service
+    store_location: NTDS
+    key_exportable: false
+    key_storage: machine
+    state: present
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

thumbprints

+

list / elements=string

+

A list of certificate thumbprints that were touched by the module.

+

Returned: success

+

Sample: ["BC05633694E675449136679A658281F17A191087"]

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_command_module.html b/tag/2.4.0/collections/ansible/windows/win_command_module.html new file mode 100644 index 00000000..0d31d059 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_command_module.html @@ -0,0 +1,460 @@ + + + + + + + + ansible.windows.win_command module – Executes a command on a remote Windows node — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_command module – Executes a command on a remote Windows node

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_command.

+
+ +
+

Synopsis

+
    +
  • The win_command module takes the command name followed by a list of space-delimited arguments.

  • +
  • The given command will be executed on all selected nodes. It will not be processed through the shell, so variables like $env:HOME and operations like "<", ">", "|", and ";" will not work (use the ansible.windows.win_shell module if you need these features).

  • +
  • For non-Windows targets, use the ansible.builtin.command module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

_raw_params

+

string

+

The win_command module takes a free form command to run.

+

This is mutually exclusive with the cmd and argv options.

+

There is no parameter actually named ‘_raw_params’. See the examples!

+
+

argv

+

list / elements=string

+

added in ansible.windows 1.11.0

+

A list that contains the executable and arguments to run.

+

The module will attempt to quote the arguments specified based on the Win32 C command-line argument rules.

+

Not all applications use the same quoting rules so the escaping may not work, for those scenarios use cmd instead.

+
+

chdir

+

path

+

Set the specified path as the current working directory before executing a command.

+
+

cmd

+

string

+

added in ansible.windows 1.11.0

+

The command and arguments to run.

+

This is mutually exclusive with the _raw_params and argv options.

+
+

creates

+

path

+

A path or path filter pattern; when the referenced path exists on the target host, the task will be skipped.

+
+

output_encoding_override

+

string

+

This option overrides the encoding of stdout/stderr output.

+

You can use this option when you need to run a command which ignore the console’s codepage.

+

You should only need to use this option in very rare circumstances.

+

This value can be any valid encoding Name based on the output of [System.Text.Encoding]::GetEncodings(). See https://docs.microsoft.com/dotnet/api/system.text.encoding.getencodings.

+
+

removes

+

path

+

A path or path filter pattern; when the referenced path does not exist on the target host, the task will be skipped.

+
+

stdin

+

string

+

Set the stdin of the command directly to the specified value.

+
+
+
+

Notes

+
+

Note

+
    +
  • If you want to run a command through a shell (say you are using <, >, |, etc), you actually want the ansible.windows.win_shell module instead. The ansible.windows.win_command module is much more secure as it’s not affected by the user’s environment.

  • +
  • creates, removes, and chdir can be specified after the command. For instance, if you only want to run a command if a certain file does not exist, use this.

  • +
  • Do not try to use the older style free form format and the newer style cmd/argv format. See the examples for how both of these formats are defined.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.command

The official documentation on the ansible.builtin.command module.

+
+
community.windows.psexec

The official documentation on the community.windows.psexec module.

+
+
ansible.builtin.raw

The official documentation on the ansible.builtin.raw module.

+
+
community.windows.win_psexec

The official documentation on the community.windows.win_psexec module.

+
+
ansible.windows.win_shell

Execute shell commands on target hosts.

+
+
+
+
+
+

Examples

+
# Older style using the free-form and args format. The command is on the same
+# line as the module and 'args' is used to define the options for win_command.
+- name: Save the result of 'whoami' in 'whoami_out'
+  ansible.windows.win_command: whoami
+  register: whoami_out
+
+- name: Run command that only runs if folder exists and runs from a specific folder
+  ansible.windows.win_command: wbadmin -backupTarget:C:\backup\
+  args:
+    chdir: C:\somedir\
+    creates: C:\backup\
+
+- name: Run an executable and send data to the stdin for the executable
+  ansible.windows.win_command: powershell.exe -
+  args:
+    stdin: Write-Host test
+
+# Newer style using module options. The command and other arguments are
+# defined as module options and are indended like another other module.
+- name: Run the 'whoami' executable with the '/all' argument
+  ansible.windows.win_command:
+    cmd: whoami.exe /all
+
+- name: Run executable in 'C:\Program Files' with a custom chdir
+  ansible.windows.win_command:
+    # When using cmd, the arguments need to be quoted manually
+    cmd: '"C:\Program Files\My Application\run.exe" "argument 1" -force'
+    chdir: C:\Windows\TEMP
+
+- name: Run executable using argv and have win_command escape the spaces as needed
+  ansible.windows.win_command:
+    # When using argv, each entry is quoted in the module
+    argv:
+      - C:\Program Files\My Application\run.exe
+      - argument 1
+      - -force
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

cmd

+

string

+

The command executed by the task

+

Returned: always

+

Sample: "rabbitmqctl join_cluster rabbit@main"

+
+

delta

+

string

+

The command execution delta time

+

Returned: always

+

Sample: "0:00:00.325771"

+
+

end

+

string

+

The command execution end time

+

Returned: always

+

Sample: "2016-02-25 09:18:26.755339"

+
+

msg

+

boolean

+

changed

+

Returned: always

+

Sample: true

+
+

rc

+

integer

+

The command return code (0 means success)

+

Returned: always

+

Sample: 0

+
+

start

+

string

+

The command execution start time

+

Returned: always

+

Sample: "2016-02-25 09:18:26.429568"

+
+

stderr

+

string

+

The command standard error

+

Returned: always

+

Sample: "ls: cannot access foo: No such file or directory"

+
+

stderr_lines

+

list / elements=string

+

The command standard error split in lines

+

Returned: always

+

Sample: ["['ls: cannot access foo: No such file or directory']"]

+
+

stdout

+

string

+

The command standard output

+

Returned: always

+

Sample: "Clustering node rabbit@slave1 with rabbit@main ..."

+
+

stdout_lines

+

list / elements=string

+

The command standard output split in lines

+

Returned: always

+

Sample: ["Clustering node rabbit@slave1 with rabbit@main ..."]

+
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_copy_module.html b/tag/2.4.0/collections/ansible/windows/win_copy_module.html new file mode 100644 index 00000000..0833cb35 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_copy_module.html @@ -0,0 +1,484 @@ + + + + + + + + ansible.windows.win_copy module – Copies files to remote locations on windows hosts — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_copy module – Copies files to remote locations on windows hosts

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_copy.

+
+ +
+

Synopsis

+
    +
  • The win_copy module copies a file on the local box to remote windows locations.

  • +
  • For non-Windows targets, use the ansible.builtin.copy module instead.

  • +
+
+

Note

+

This module has a corresponding action plugin.

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

backup

+

boolean

+

Determine whether a backup should be created.

+

When set to true, create a backup file including the timestamp information so you can get the original file back if you somehow clobbered it incorrectly.

+

No backup is taken when remote_src=False and multiple files are being copied.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

content

+

string

+

When used instead of src, sets the contents of a file directly to the specified value.

+

This is for simple values, for anything complex or with formatting please switch to the ansible.windows.win_template module.

+
+

decrypt

+

boolean

+

This option controls the autodecryption of source files using vault.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

dest

+

path / required

+

Remote absolute path where the file should be copied to.

+

If src is a directory, this must be a directory too.

+

Use \ for path separators or \\ when in “double quotes”.

+

If dest ends with \ then source or the contents of source will be copied to the directory without renaming.

+

If dest is a nonexistent path, it will only be created if dest ends with “/” or “\”, or src is a directory.

+

If src and dest are files and if the parent directory of dest doesn’t exist, then the task will fail.

+
+

force

+

boolean

+

If set to true, the file will only be transferred if the content is different than destination.

+

If set to false, the file will only be transferred if the destination does not exist.

+

If set to false, no checksuming of the content is performed which can help improve performance on larger files.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

local_follow

+

boolean

+

This flag indicates that filesystem links in the source tree, if they exist, should be followed.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

remote_src

+

boolean

+

If false, it will search for src at originating/controller machine.

+

If true, it will go to the remote/target machine for the src.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

src

+

path

+

Local path to a file to copy to the remote server; can be absolute or relative.

+

If path is a directory, it is copied (including the source folder name) recursively to dest.

+

If path is a directory and ends with “/”, only the inside contents of that directory are copied to the destination. Otherwise, if it does not end with “/”, the directory itself with all contents is copied.

+

If path is a file and dest ends with “\”, the file is copied to the folder with the same filename.

+

Required unless using content.

+
+
+
+

Notes

+
+

Note

+
    +
  • Currently win_copy does not support copying symbolic links from both local to remote and remote to remote.

  • +
  • It is recommended that backslashes \ are used instead of / when dealing with remote paths.

  • +
  • Because win_copy runs over WinRM, it is not a very efficient transfer mechanism. If sending large files consider hosting them on a web service and using ansible.windows.win_get_url instead.

  • +
  • When using become with a user that is not an Administrator, the remote temp directory must be set to one that is accessible to both the become and connection user with ansible_remote_tmp. See the examples for more information.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.assemble

The official documentation on the ansible.builtin.assemble module.

+
+
ansible.builtin.copy

The official documentation on the ansible.builtin.copy module.

+
+
ansible.windows.win_get_url

Downloads file from HTTP, HTTPS, or FTP to node.

+
+
community.windows.win_robocopy

The official documentation on the community.windows.win_robocopy module.

+
+
+
+
+
+

Examples

+
- name: Copy a single file
+  ansible.windows.win_copy:
+    src: /srv/myfiles/foo.conf
+    dest: C:\Temp\renamed-foo.conf
+
+- name: Copy a single file, but keep a backup
+  ansible.windows.win_copy:
+    src: /srv/myfiles/foo.conf
+    dest: C:\Temp\renamed-foo.conf
+    backup: true
+
+- name: Copy a single file keeping the filename
+  ansible.windows.win_copy:
+    src: /src/myfiles/foo.conf
+    dest: C:\Temp\
+
+- name: Copy folder to C:\Temp (results in C:\Temp\temp_files)
+  ansible.windows.win_copy:
+    src: files/temp_files
+    dest: C:\Temp
+
+- name: Copy folder contents recursively
+  ansible.windows.win_copy:
+    src: files/temp_files/
+    dest: C:\Temp
+
+- name: Copy a single file where the source is on the remote host
+  ansible.windows.win_copy:
+    src: C:\Temp\foo.txt
+    dest: C:\ansible\foo.txt
+    remote_src: true
+
+- name: Copy a folder recursively where the source is on the remote host
+  ansible.windows.win_copy:
+    src: C:\Temp
+    dest: C:\ansible
+    remote_src: true
+
+- name: Set the contents of a file
+  ansible.windows.win_copy:
+    content: abc123
+    dest: C:\Temp\foo.txt
+
+- name: Copy a single file as another user
+  ansible.windows.win_copy:
+    src: NuGet.config
+    dest: '%AppData%\NuGet\NuGet.config'
+  vars:
+    ansible_become_user: user
+    ansible_become_password: pass
+    # The tmp dir must be set when using win_copy as another user
+    # This ensures the become user will have permissions for the operation
+    # Make sure to specify a folder both the ansible_user and the become_user have access to (i.e not %TEMP% which is user specific and requires Admin)
+    ansible_remote_tmp: 'c:\tmp'
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

backup_file

+

string

+

Name of the backup file that was created.

+

Returned: if backup=yes

+

Sample: "C:\\Path\\To\\File.txt.11540.20150212-220915.bak"

+
+

checksum

+

string

+

SHA1 checksum of the file after running copy.

+

Returned: success, src is a file

+

Sample: "6e642bb8dd5c2e027bf21dd923337cbb4214f827"

+
+

dest

+

string

+

Destination file/path.

+

Returned: changed

+

Sample: "C:\\Temp\\"

+
+

operation

+

string

+

Whether a single file copy took place or a folder copy.

+

Returned: success

+

Sample: "file_copy"

+
+

original_basename

+

string

+

Basename of the copied file.

+

Returned: changed, src is a file

+

Sample: "foo.txt"

+
+

size

+

integer

+

Size of the target, after execution.

+

Returned: changed, src is a file

+

Sample: 1220

+
+

src

+

string

+

Source file used for the copy on the target machine.

+

Returned: changed

+

Sample: "/home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source"

+
+
+

Authors

+
    +
  • Jon Hawkesworth (@jhawkesworth)

  • +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_dns_client_module.html b/tag/2.4.0/collections/ansible/windows/win_dns_client_module.html new file mode 100644 index 00000000..8b74e544 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_dns_client_module.html @@ -0,0 +1,267 @@ + + + + + + + + ansible.windows.win_dns_client module – Configures DNS lookup on Windows hosts — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_dns_client module – Configures DNS lookup on Windows hosts

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_dns_client.

+
+ +
+

Synopsis

+ +
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+

adapter_names

+

list / elements=string / required

+

Adapter name or list of adapter names for which to manage DNS settings (’*’ is supported as a wildcard value).

+

The adapter name used is the connection caption in the Network Control Panel or the InterfaceAlias of Get-DnsClientServerAddress.

+
+
+
+
+

dns_servers

+

aliases: ipv4_addresses, ip_addresses, addresses

+

list / elements=string / required

+

Single or ordered list of DNS servers (IPv4 and IPv6 addresses) to configure for lookup.

+

An empty list will configure the adapter to use the DHCP-assigned values on connections where DHCP is enabled, or disable DNS lookup on statically-configured connections.

+

IPv6 DNS servers can only be set on Windows Server 2012 or newer, older hosts can only set IPv4 addresses.

+
+
+
+

Examples

+
- name: Set a single address on the adapter named Ethernet
+  ansible.windows.win_dns_client:
+    adapter_names: Ethernet
+    dns_servers: 192.168.34.5
+
+- name: Set multiple lookup addresses on all visible adapters (usually physical adapters that are in the Up state), with debug logging to a file
+  ansible.windows.win_dns_client:
+    adapter_names: '*'
+    dns_servers:
+      - 192.168.34.5
+      - 192.168.34.6
+    log_path: C:\dns_log.txt
+
+- name: Set IPv6 DNS servers on the adapter named Ethernet
+  ansible.windows.win_dns_client:
+    adapter_names: Ethernet
+    dns_servers:
+      - '2001:db8::2'
+      - '2001:db8::3'
+
+- name: Configure all adapters whose names begin with Ethernet to use DHCP-assigned DNS values
+  ansible.windows.win_dns_client:
+    adapter_names: 'Ethernet*'
+    dns_servers: []
+
+
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
  • Brian Scholer (@briantist)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_domain_controller_module.html b/tag/2.4.0/collections/ansible/windows/win_domain_controller_module.html new file mode 100644 index 00000000..ba1fa006 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_domain_controller_module.html @@ -0,0 +1,453 @@ + + + + + + + + ansible.windows.win_domain_controller module – Manage domain controller/member server state for a Windows host — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_domain_controller module – Manage domain controller/member server state for a Windows host

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_domain_controller.

+
+ +
+

DEPRECATED

+
+
Removed in:
+

version 3.0.0

+
+
Why:
+

This module has been moved into the microsoft.ad collection.

+
+
Alternative:
+

Use the microsoft.ad.domain_controller module instead.

+
+
+
+
+

Synopsis

+
    +
  • Ensure that a Windows Server 2012+ host is configured as a domain controller or demoted to member server.

  • +
  • This module may require subsequent use of the ansible.windows.win_reboot action if changes are made.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

database_path

+

path

+

The path to a directory on a fixed disk of the Windows host where the domain database will be created..

+

If not set then the default path is %SYSTEMROOT%\NTDS.

+
+

dns_domain_name

+

string

+

When state is domain_controller, the DNS name of the domain for which the targeted Windows host should be a DC.

+
+

domain_admin_password

+

string / required

+

Password for the specified domain_admin_user.

+
+

domain_admin_user

+

string / required

+

Username of a domain admin for the target domain (necessary to promote or demote a domain controller).

+
+

domain_log_path

+

path

+

Specified the fully qualified, non-UNC path to a directory on a fixed disk of the local computer that will contain the domain log files.

+
+

install_dns

+

boolean

+

Whether to install the DNS service when creating the domain controller.

+

If not specified then the -InstallDns option is not supplied to Install-ADDSDomainController command, see https://docs.microsoft.com/en-us/powershell/module/addsdeployment/install-addsdomaincontroller.

+

Choices:

+
    +
  • false

  • +
  • true

  • +
+
+

install_media_path

+

path

+

The path to a directory on a fixed disk of the Windows host where the Install From Media IFC data will be used.

+

See the Install using IFM guide for more information.

+
+

local_admin_password

+

string

+

Password to be assigned to the local Administrator user (required when state is member_server).

+
+

log_path

+

string

+

The path to log any debug information when running the module.

+

This option is deprecated and should not be used, it will be removed on the major release after 2022-07-01.

+

This does not relate to the -LogPath paramter of the install controller cmdlet.

+
+

read_only

+

boolean

+

Whether to install the domain controller as a read only replica for an existing domain.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

safe_mode_password

+

string

+

Safe mode password for the domain controller (required when state is domain_controller).

+
+

site_name

+

string

+

Specifies the name of an existing site where you can place the new domain controller.

+

This option is required when read_only is true.

+
+

state

+

string / required

+

Whether the target host should be a domain controller or a member server.

+

Choices:

+
    +
  • "domain_controller"

  • +
  • "member_server"

  • +
+
+

sysvol_path

+

path

+

The path to a directory on a fixed disk of the Windows host where the Sysvol folder will be created.

+

If not set then the default path is %SYSTEMROOT%\SYSVOL.

+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_domain

Ensures the existence of a Windows domain.

+
+
community.windows.win_domain_computer

The official documentation on the community.windows.win_domain_computer module.

+
+
community.windows.win_domain_group

The official documentation on the community.windows.win_domain_group module.

+
+
ansible.windows.win_domain_membership

Manage domain/workgroup membership for a Windows host.

+
+
community.windows.win_domain_user

The official documentation on the community.windows.win_domain_user module.

+
+
+
+
+
+

Examples

+
- name: Ensure a server is a domain controller
+  ansible.windows.win_domain_controller:
+    dns_domain_name: ansible.vagrant
+    domain_admin_user: testguy@ansible.vagrant
+    domain_admin_password: password123!
+    safe_mode_password: password123!
+    state: domain_controller
+
+# note that without an action wrapper, in the case where a DC is demoted,
+# the task will fail with a 401 Unauthorized, because the domain credential
+# becomes invalid to fetch the final output over WinRM. This requires win_async
+# with credential switching (or other clever credential-switching
+# mechanism to get the output and trigger the required reboot)
+- name: Ensure a server is not a domain controller
+  ansible.windows.win_domain_controller:
+    domain_admin_user: testguy@ansible.vagrant
+    domain_admin_password: password123!
+    local_admin_password: password123!
+    state: member_server
+
+- name: Promote server as a read only domain controller
+  ansible.windows.win_domain_controller:
+    dns_domain_name: ansible.vagrant
+    domain_admin_user: testguy@ansible.vagrant
+    domain_admin_password: password123!
+    safe_mode_password: password123!
+    state: domain_controller
+    read_only: true
+    site_name: London
+
+- name: Promote server with custom paths
+  ansible.windows.win_domain_controller:
+    dns_domain_name: ansible.vagrant
+    domain_admin_user: testguy@ansible.vagrant
+    domain_admin_password: password123!
+    safe_mode_password: password123!
+    state: domain_controller
+    sysvol_path: D:\SYSVOL
+    database_path: D:\NTDS
+    domain_log_path: D:\NTDS
+  register: dc_promotion
+
+- name: Reboot after promotion
+  ansible.windows.win_reboot:
+  when: dc_promotion.reboot_required
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

reboot_required

+

boolean

+

True if changes were made that require a reboot.

+

Returned: always

+

Sample: true

+
+
+
+

Status

+
    +
  • This module will be removed in version 3.0.0. +[deprecated]

  • +
  • For more information see DEPRECATED.

  • +
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_domain_membership_module.html b/tag/2.4.0/collections/ansible/windows/win_domain_membership_module.html new file mode 100644 index 00000000..86d9e59e --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_domain_membership_module.html @@ -0,0 +1,384 @@ + + + + + + + + ansible.windows.win_domain_membership module – Manage domain/workgroup membership for a Windows host — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_domain_membership module – Manage domain/workgroup membership for a Windows host

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_domain_membership.

+
+ +
+

DEPRECATED

+
+
Removed in:
+

version 3.0.0

+
+
Why:
+

This module has been moved into the microsoft.ad collection.

+
+
Alternative:
+

Use the microsoft.ad.membership module instead.

+
+
+
+
+

Synopsis

+
    +
  • Manages domain membership or workgroup membership for a Windows host. Also supports hostname changes.

  • +
  • This module may require subsequent use of the ansible.windows.win_reboot action if changes are made.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

dns_domain_name

+

string

+

When state is domain, the DNS name of the domain to which the targeted Windows host should be joined.

+
+

domain_admin_password

+

string

+

Password for the specified domain_admin_user.

+
+

domain_admin_user

+

string / required

+

Username of a domain admin for the target domain (required to join or leave the domain).

+
+

domain_ou_path

+

string

+

The desired OU path for adding the computer object.

+

This is only used when adding the target host to a domain, if it is already a member then it is ignored.

+
+

hostname

+

string

+

The desired hostname for the Windows host.

+
+

state

+

string

+

Whether the target host should be a member of a domain or workgroup.

+

Choices:

+
    +
  • "domain"

  • +
  • "workgroup"

  • +
+
+

workgroup_name

+

string

+

When state is workgroup, the name of the workgroup that the Windows host should be in.

+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_domain

Ensures the existence of a Windows domain.

+
+
ansible.windows.win_domain_controller

Manage domain controller/member server state for a Windows host.

+
+
community.windows.win_domain_computer

The official documentation on the community.windows.win_domain_computer module.

+
+
community.windows.win_domain_group

The official documentation on the community.windows.win_domain_group module.

+
+
community.windows.win_domain_user

The official documentation on the community.windows.win_domain_user module.

+
+
ansible.windows.win_group

Add and remove local groups.

+
+
ansible.windows.win_group_membership

Manage Windows local group membership.

+
+
ansible.windows.win_user

Manages local Windows user accounts.

+
+
+
+
+
+

Examples

+
# host should be a member of domain ansible.vagrant; module will ensure the hostname is mydomainclient
+# and will use the passed credentials to join domain if necessary.
+# Ansible connection should use local credentials if possible.
+# If a reboot is required, the second task will trigger one and wait until the host is available.
+- name: Play to join the hsots to a domain
+  hosts: winclient
+  gather_facts: false
+  tasks:
+    - name: Join host to the ansible.vagrant domain
+      ansible.windows.win_domain_membership:
+        dns_domain_name: ansible.vagrant
+        hostname: mydomainclient
+        domain_admin_user: testguy@ansible.vagrant
+        domain_admin_password: password123!
+        domain_ou_path: "OU=Windows,OU=Servers,DC=ansible,DC=vagrant"
+        state: domain
+      register: domain_state
+
+    - name: Reboot host after domain join
+      ansible.windows.win_reboot:
+      when: domain_state.reboot_required
+
+# Host should be in workgroup mywg- module will use the passed credentials to clean-unjoin domain if possible.
+# Ansible connection should use local credentials if possible.
+# The domain admin credentials can be sourced from a vault-encrypted variable
+- name: Play to set the hosts workgroup
+  hosts: winclient
+  gather_facts: false
+  tasks:
+    - name: Set workgroup to mywg
+      ansible.windows.win_domain_membership:
+        workgroup_name: mywg
+        domain_admin_user: '{{ win_domain_admin_user }}'
+        domain_admin_password: '{{ win_domain_admin_password }}'
+        state: workgroup
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

reboot_required

+

boolean

+

True if changes were made that require a reboot.

+

Returned: always

+

Sample: true

+
+
+
+

Status

+
    +
  • This module will be removed in version 3.0.0. +[deprecated]

  • +
  • For more information see DEPRECATED.

  • +
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_domain_module.html b/tag/2.4.0/collections/ansible/windows/win_domain_module.html new file mode 100644 index 00000000..a4edccd2 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_domain_module.html @@ -0,0 +1,413 @@ + + + + + + + + ansible.windows.win_domain module – Ensures the existence of a Windows domain — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_domain module – Ensures the existence of a Windows domain

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_domain.

+
+ +
+

DEPRECATED

+
+
Removed in:
+

version 3.0.0

+
+
Why:
+

This module has been moved into the microsoft.ad collection.

+
+
Alternative:
+

Use the microsoft.ad.domain module instead.

+
+
+
+
+

Synopsis

+
    +
  • Ensure that the domain named by dns_domain_name exists and is reachable.

  • +
  • If the domain is not reachable, the domain is created in a new forest on the target Windows Server 2012R2+ host.

  • +
  • This module may require subsequent use of the ansible.windows.win_reboot action if changes are made.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

create_dns_delegation

+

boolean

+

Whether to create a DNS delegation that references the new DNS server that you install along with the domain controller.

+

Valid for Active Directory-integrated DNS only.

+

The default is computed automatically based on the environment.

+

Choices:

+
    +
  • false

  • +
  • true

  • +
+
+

database_path

+

path

+

The path to a directory on a fixed disk of the Windows host where the domain database will be created.

+

If not set then the default path is %SYSTEMROOT%\NTDS.

+
+

dns_domain_name

+

string / required

+

The DNS name of the domain which should exist and be reachable or reside on the target Windows host.

+
+

domain_mode

+

string

+

Specifies the domain functional level of the first domain in the creation of a new forest.

+

The domain functional level cannot be lower than the forest functional level, but it can be higher.

+

The default is automatically computed and set.

+

Choices:

+
    +
  • "Win2003"

  • +
  • "Win2008"

  • +
  • "Win2008R2"

  • +
  • "Win2012"

  • +
  • "Win2012R2"

  • +
  • "WinThreshold"

  • +
+
+

domain_netbios_name

+

string

+

The NetBIOS name for the root domain in the new forest.

+

For NetBIOS names to be valid for use with this parameter they must be single label names of 15 characters or less, if not it will fail.

+

If this parameter is not set, then the default is automatically computed from the value of the domain_name parameter.

+
+

forest_mode

+

string

+

Specifies the forest functional level for the new forest.

+

The default forest functional level in Windows Server is typically the same as the version you are running.

+

Choices:

+
    +
  • "Win2003"

  • +
  • "Win2008"

  • +
  • "Win2008R2"

  • +
  • "Win2012"

  • +
  • "Win2012R2"

  • +
  • "WinThreshold"

  • +
+
+

install_dns

+

boolean

+

Whether to install the DNS service when creating the domain controller.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

log_path

+

path

+

Specifies the fully qualified, non-UNC path to a directory on a fixed disk of the local computer where the log file for this operation is written.

+

If not set then the default path is %SYSTEMROOT%\NTDS.

+
+

safe_mode_password

+

string / required

+

Safe mode password for the domain controller.

+
+

sysvol_path

+

path

+

The path to a directory on a fixed disk of the Windows host where the Sysvol file will be created.

+

If not set then the default path is %SYSTEMROOT%\SYSVOL.

+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_domain_controller

Manage domain controller/member server state for a Windows host.

+
+
community.windows.win_domain_computer

The official documentation on the community.windows.win_domain_computer module.

+
+
community.windows.win_domain_group

The official documentation on the community.windows.win_domain_group module.

+
+
ansible.windows.win_domain_membership

Manage domain/workgroup membership for a Windows host.

+
+
community.windows.win_domain_user

The official documentation on the community.windows.win_domain_user module.

+
+
+
+
+
+

Examples

+
- name: Create new domain in a new forest on the target host
+  ansible.windows.win_domain:
+    dns_domain_name: ansible.vagrant
+    safe_mode_password: password123!
+
+- name: Create new Windows domain in a new forest with specific parameters
+  ansible.windows.win_domain:
+    create_dns_delegation: false
+    database_path: C:\Windows\NTDS
+    dns_domain_name: ansible.vagrant
+    domain_mode: Win2012R2
+    domain_netbios_name: ANSIBLE
+    forest_mode: Win2012R2
+    safe_mode_password: password123!
+    sysvol_path: C:\Windows\SYSVOL
+  register: domain_install
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

reboot_required

+

boolean

+

True if changes were made that require a reboot.

+

Returned: always

+

Sample: true

+
+
+
+

Status

+
    +
  • This module will be removed in version 3.0.0. +[deprecated]

  • +
  • For more information see DEPRECATED.

  • +
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_dsc_module.html b/tag/2.4.0/collections/ansible/windows/win_dsc_module.html new file mode 100644 index 00000000..cfcc4444 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_dsc_module.html @@ -0,0 +1,399 @@ + + + + + + + + ansible.windows.win_dsc module – Invokes a PowerShell DSC configuration — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_dsc module – Invokes a PowerShell DSC configuration

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_dsc.

+
+ +
+

Synopsis

+
    +
  • Configures a resource using PowerShell DSC.

  • +
  • Requires PowerShell version 5.0 or newer.

  • +
  • Most of the options for this module are dynamic and will vary depending on the DSC Resource specified in resource_name.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +

Parameter

Comments

+

free_form

+

string / required

+

The ansible.windows.win_dsc module takes in multiple free form options based on the DSC resource being invoked by resource_name.

+

There is no option actually named free_form so see the examples.

+

This module will try and convert the option to the correct type required by the DSC resource and throw a warning if it fails.

+

If the type of the DSC resource option is a CimInstance or CimInstance[], this means the value should be a dictionary or list of dictionaries based on the values required by that option.

+

If the type of the DSC resource option is a PSCredential then there needs to be 2 options set in the Ansible task definition suffixed with _username and _password.

+

If the type of the DSC resource option is an array, then a list should be provided but a comma separated string also work. Use a list where possible as no escaping is required and it works with more complex types list CimInstance[].

+

If the type of the DSC resource option is a DateTime, you should use a string in the form of an ISO 8901 string to ensure the exact date is used.

+
+

module_version

+

string

+

Can be used to configure the exact version of the DSC resource to be invoked.

+

Useful if the target node has multiple versions installed of the module containing the DSC resource.

+

If not specified, the module will follow standard PowerShell convention and use the highest version available.

+

Default: "latest"

+
+

resource_name

+

string / required

+

The name of the DSC Resource to use.

+

Must be accessible to PowerShell using any of the default paths.

+
+
+
+

Notes

+
+

Note

+
    +
  • By default there are a few builtin resources that come with PowerShell 5.0, See https://docs.microsoft.com/en-us/powershell/scripting/dsc/resources/resources for more information on these resources.

  • +
  • Custom DSC resources can be installed with community.windows.win_psmodule using the name option.

  • +
  • The DSC engine run’s each task as the SYSTEM account, any resources that need to be accessed with a different account need to have PsDscRunAsCredential set.

  • +
  • To see the valid options for a DSC resource, run the module with -vvv to show the possible module invocation. Default values are not shown in this output but are applied within the DSC engine.

  • +
  • The DSC engine requires the HTTP WSMan listener to be online and its port configured as the default listener for HTTP. This is set up by default but if a custom HTTP port is used or only a HTTPS listener is present then the module will fail. See the examples for a way to check this out in PowerShell.

  • +
  • The Local Configuration Manager LCM on the targeted host in question should be disabled to avoid any conflicts with resources being applied by this module. See https://devblogs.microsoft.com/powershell/invoking-powershell-dsc-resources-directly/ for more information on hwo to disable LCM.

  • +
+
+
+
+

Examples

+
- name: Verify the WSMan HTTP listener is active and configured correctly
+  ansible.windows.win_shell: |
+    $port = (Get-Item -LiteralPath WSMan:\localhost\Client\DefaultPorts\HTTP).Value
+    $onlinePorts = @(Get-ChildItem -LiteralPath WSMan:\localhost\Listener |
+        Where-Object { 'Transport=HTTP' -in $_.Keys } |
+        Get-ChildItem |
+        Where-Object Name -eq Port |
+        Select-Object -ExpandProperty Value)
+
+    if ($port -notin $onlinePorts) {
+        "The default client port $port is not set up as a WSMan HTTP listener, win_dsc will not work."
+    }
+
+- name: Extract zip file
+  ansible.windows.win_dsc:
+    resource_name: Archive
+    Ensure: Present
+    Path: C:\Temp\zipfile.zip
+    Destination: C:\Temp\Temp2
+
+- name: Install a Windows feature with the WindowsFeature resource
+  ansible.windows.win_dsc:
+    resource_name: WindowsFeature
+    Name: telnet-client
+
+- name: Edit HKCU reg key under specific user
+  ansible.windows.win_dsc:
+    resource_name: Registry
+    Ensure: Present
+    Key: HKEY_CURRENT_USER\ExampleKey
+    ValueName: TestValue
+    ValueData: TestData
+    PsDscRunAsCredential_username: '{{ ansible_user }}'
+    PsDscRunAsCredential_password: '{{ ansible_password }}'
+  no_log: true
+
+- name: Create file with multiple attributes
+  ansible.windows.win_dsc:
+    resource_name: File
+    DestinationPath: C:\ansible\dsc
+    Attributes: # can also be a comma separated string, e.g. 'Hidden, System'
+      - Hidden
+      - System
+    Ensure: Present
+    Type: Directory
+
+- name: Call DSC resource with DateTime option
+  ansible.windows.win_dsc:
+    resource_name: DateTimeResource
+    DateTimeOption: '2019-02-22T13:57:31.2311892+00:00'
+
+# more complex example using custom DSC resource and dict values
+- name: Setup the xWebAdministration module
+  ansible.windows.win_psmodule:
+    name: xWebAdministration
+    state: present
+
+- name: Create IIS Website with Binding and Authentication options
+  ansible.windows.win_dsc:
+    resource_name: xWebsite
+    Ensure: Present
+    Name: DSC Website
+    State: Started
+    PhysicalPath: C:\inetpub\wwwroot
+    BindingInfo: # Example of a CimInstance[] DSC parameter (list of dicts)
+      - Protocol: https
+        Port: 1234
+        CertificateStoreName: MY
+        CertificateThumbprint: C676A89018C4D5902353545343634F35E6B3A659
+        HostName: DSCTest
+        IPAddress: '*'
+        SSLFlags: '1'
+      - Protocol: http
+        Port: 4321
+        IPAddress: '*'
+    AuthenticationInfo: # Example of a CimInstance DSC parameter (dict)
+      Anonymous: false
+      Basic: true
+      Digest: false
+      Windows: true
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + +

Key

Description

+

module_version

+

string

+

The version of the dsc resource/module used.

+

Returned: always

+

Sample: "1.0.1"

+
+

reboot_required

+

boolean

+

Flag returned from the DSC engine indicating whether or not the machine requires a reboot for the invoked changes to take effect.

+

Returned: always

+

Sample: true

+
+

verbose_set

+

list / elements=string

+

The verbose output as a list from executing the DSC Set method.

+

Returned: Ansible verbosity is -vvv or greater and a change occurred

+

Sample: ["Perform operation 'Invoke CimMethod' with the following parameters, ", "[SERVER]: LCM: [Start Set ] [[File]DirectResourceAccess]", "Operation 'Invoke CimMethod' complete."]

+
+

verbose_test

+

list / elements=string

+

The verbose output as a list from executing the DSC test method.

+

Returned: Ansible verbosity is -vvv or greater

+

Sample: ["Perform operation 'Invoke CimMethod' with the following parameters, ", "[SERVER]: LCM: [Start Test ] [[File]DirectResourceAccess]", "Operation 'Invoke CimMethod' complete."]

+
+
+

Authors

+
    +
  • Trond Hindenes (@trondhindenes)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_environment_module.html b/tag/2.4.0/collections/ansible/windows/win_environment_module.html new file mode 100644 index 00000000..4b683b55 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_environment_module.html @@ -0,0 +1,372 @@ + + + + + + + + ansible.windows.win_environment module – Modify environment variables on windows hosts — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_environment module – Modify environment variables on windows hosts

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_environment.

+
+ +
+

Synopsis

+
    +
  • Uses .net Environment to set or remove environment variables and can set at User, Machine or Process level.

  • +
  • User level environment variables will be set, but not available until the user has logged off and on again.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

level

+

string / required

+

The level at which to set the environment variable.

+

Use machine to set for all users.

+

Use user to set for the current user that ansible is connected as.

+

Use process to set for the current process. Probably not that useful.

+

Choices:

+
    +
  • "machine"

  • +
  • "process"

  • +
  • "user"

  • +
+
+

name

+

string

+

The name of the environment variable. Required when state=absent.

+
+

state

+

string

+

Set to present to ensure environment variable is set.

+

Set to absent to ensure it is removed.

+

When using variables, do not set this option.

+

Choices:

+
    +
  • "absent"

  • +
  • "present"

  • +
+
+

value

+

string

+

The value to store in the environment variable.

+

Must be set when state=present and cannot be an empty string.

+

Should be omitted for state=absent and variables.

+
+

variables

+

dictionary

+

added in ansible.windows 1.3.0

+

A dictionary where multiple environment variables can be defined at once.

+

Not valid when state is set. Variables with a value will be set (present) and variables with an empty value will be unset (absent).

+

level applies to all vars defined this way.

+
+
+
+

Notes

+
+

Note

+
    +
  • This module is best-suited for setting the entire value of an environment variable. For safe element-based management of path-like environment vars, use the ansible.windows.win_path module.

  • +
  • This module does not broadcast change events. This means that the minority of windows applications which can have their environment changed without restarting will not be notified and therefore will need restarting to pick up new environment settings. User level environment variables will require the user to log out and in again before they become available.

  • +
  • In the return, before_value and value will be set to the last values when using variables. It’s best to use values in that case if you need to find a specific variable’s before and after values.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_path

Manage Windows path environment variables.

+
+
+
+
+
+

Examples

+
- name: Set an environment variable for all users
+  ansible.windows.win_environment:
+    state: present
+    name: TestVariable
+    value: Test value
+    level: machine
+
+- name: Remove an environment variable for the current user
+  ansible.windows.win_environment:
+    state: absent
+    name: TestVariable
+    level: user
+
+- name: Set several variables at once
+  ansible.windows.win_environment:
+    level: machine
+    variables:
+      TestVariable: Test value
+      CUSTOM_APP_VAR: 'Very important value'
+      ANOTHER_VAR: '{{ my_ansible_var }}'
+
+- name: Set and remove multiple variables at once
+  ansible.windows.win_environment:
+    level: user
+    variables:
+      TestVariable: Test value
+      CUSTOM_APP_VAR: 'Very important value'
+      ANOTHER_VAR: '{{ my_ansible_var }}'
+      UNWANTED_VAR: ''  # < this will be removed
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + +

Key

Description

+

before_value

+

string

+

the value of the environment key before a change, this is null if it didn’t exist

+

Returned: always

+

Sample: "C:\\Windows\\System32"

+
+

value

+

string

+

the value the environment key has been set to, this is null if removed

+

Returned: always

+

Sample: "C:\\Program Files\\jdk1.8"

+
+

values

+

dictionary

+

added in ansible.windows 1.3.0

+

dictionary of before and after values; each key is a variable name, each value is another dict with before, after, and changed keys

+

Returned: always

+
+
+

Authors

+
    +
  • Jon Hawkesworth (@jhawkesworth)

  • +
  • Brian Scholer (@briantist)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_feature_module.html b/tag/2.4.0/collections/ansible/windows/win_feature_module.html new file mode 100644 index 00000000..cbc10786 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_feature_module.html @@ -0,0 +1,423 @@ + + + + + + + + ansible.windows.win_feature module – Installs and uninstalls Windows Features on Windows Server — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_feature module – Installs and uninstalls Windows Features on Windows Server

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_feature.

+
+ +
+

Synopsis

+
    +
  • Installs or uninstalls Windows Roles or Features on Windows Server.

  • +
  • This module uses the Add/Remove-WindowsFeature Cmdlets on Windows 2008 R2 and Install/Uninstall-WindowsFeature Cmdlets on Windows 2012, which are not available on client os machines.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

include_management_tools

+

boolean

+

Adds the corresponding management tools to the specified feature.

+

Not supported in Windows 2008 R2 and will be ignored.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

include_sub_features

+

boolean

+

Adds all subfeatures of the specified feature.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

name

+

list / elements=string / required

+

Names of roles or features to install as a single feature or a comma-separated list of features.

+

To list all available features use the PowerShell command Get-WindowsFeature.

+
+

source

+

string

+

Specify a source to install the feature from.

+

Not supported in Windows 2008 R2 and will be ignored.

+

Can either be {driveletter}:\sources\sxs or \\{IP}\share\sources\sxs.

+
+

state

+

string

+

State of the features or roles on the system.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
+
+
+
+

See Also

+
+

See also

+
+
chocolatey.chocolatey.win_chocolatey

The official documentation on the chocolatey.chocolatey.win_chocolatey module.

+
+
ansible.windows.win_package

Installs/uninstalls an installable package.

+
+
+
+
+
+

Examples

+
- name: Install IIS (Web-Server only)
+  ansible.windows.win_feature:
+    name: Web-Server
+    state: present
+
+- name: Install IIS (Web-Server and Web-Common-Http)
+  ansible.windows.win_feature:
+    name:
+      - Web-Server
+      - Web-Common-Http
+    state: present
+
+- name: Install NET-Framework-Core from file
+  ansible.windows.win_feature:
+    name: NET-Framework-Core
+    source: C:\Temp\iso\sources\sxs
+    state: present
+
+- name: Install IIS Web-Server with sub features and management tools
+  ansible.windows.win_feature:
+    name: Web-Server
+    state: present
+    include_sub_features: true
+    include_management_tools: true
+  register: win_feature
+
+- name: Reboot if installing Web-Server feature requires it
+  ansible.windows.win_reboot:
+  when: win_feature.reboot_required
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

exitcode

+

string

+

The stringified exit code from the feature installation/removal command.

+

Returned: always

+

Sample: "Success"

+
+

feature_result

+

complex

+

List of features that were installed or removed.

+

Returned: success

+
+

display_name

+

string

+

Feature display name.

+

Returned: always

+

Sample: "Telnet Client"

+
+

id

+

integer

+

A list of KB article IDs that apply to the update.

+

Returned: always

+

Sample: 44

+
+

message

+

list / elements=string

+

Any messages returned from the feature subsystem that occurred during installation or removal of this feature.

+

Returned: always

+

Sample: []

+
+

reboot_required

+

boolean

+

True when the target server requires a reboot as a result of installing or removing this feature.

+

Returned: always

+

Sample: true

+
+

restart_needed

+

boolean

+

DEPRECATED in Ansible 2.4 (refer to reboot_required instead). True when the target server requires a reboot as a result of installing or removing this feature.

+

Returned: always

+

Sample: true

+
+

skip_reason

+

string

+

The reason a feature installation or removal was skipped.

+

Returned: always

+

Sample: "NotSkipped"

+
+

success

+

boolean

+

If the feature installation or removal was successful.

+

Returned: always

+

Sample: true

+
+

reboot_required

+

boolean

+

True when the target server indicates a reboot is required (no further updates can be installed until after a reboot).

+

This my be true even if not change had occurred as the value is derived from the server state.

+

Returned: success

+

Sample: true

+
+
+

Authors

+
    +
  • Paul Durivage (@angstwad)

  • +
  • Trond Hindenes (@trondhindenes)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_file_module.html b/tag/2.4.0/collections/ansible/windows/win_file_module.html new file mode 100644 index 00000000..18897e4c --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_file_module.html @@ -0,0 +1,288 @@ + + + + + + + + ansible.windows.win_file module – Creates, touches or removes files or directories — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_file module – Creates, touches or removes files or directories

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_file.

+
+ +
+

Synopsis

+
    +
  • Creates (empty) files, updates file modification stamps of existing files, and can create or remove directories.

  • +
  • Unlike ansible.builtin.file, does not modify ownership, permissions or manipulate links.

  • +
  • For non-Windows targets, use the ansible.builtin.file module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+
+
+

path

+

aliases: dest, name

+

path / required

+

Path to the file being managed.

+
+

state

+

string

+

If directory, all immediate subdirectories will be created if they do not exist.

+

If file, the file will NOT be created if it does not exist, see the ansible.windows.win_copy or ansible.windows.win_template module if you want that behavior.

+

If absent, directories will be recursively deleted, and files will be removed.

+

If touch, an empty file will be created if the path does not exist, while an existing file or directory will receive updated file access and modification times (similar to the way touch works from the command line).

+

Choices:

+
    +
  • "absent"

  • +
  • "directory"

  • +
  • "file"

  • +
  • "touch"

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.file

The official documentation on the ansible.builtin.file module.

+
+
ansible.windows.win_acl

Set file/directory/registry/certificate permissions for a system user or group.

+
+
ansible.windows.win_acl_inheritance

Change ACL inheritance.

+
+
ansible.windows.win_owner

Set owner.

+
+
ansible.windows.win_stat

Get information about Windows files.

+
+
+
+
+
+

Examples

+
- name: Touch a file (creates if not present, updates modification time if present)
+  ansible.windows.win_file:
+    path: C:\Temp\foo.conf
+    state: touch
+
+- name: Remove a file, if present
+  ansible.windows.win_file:
+    path: C:\Temp\foo.conf
+    state: absent
+
+- name: Create directory structure
+  ansible.windows.win_file:
+    path: C:\Temp\folder\subfolder
+    state: directory
+
+- name: Remove directory structure
+  ansible.windows.win_file:
+    path: C:\Temp
+    state: absent
+
+
+
+

Authors

+
    +
  • Jon Hawkesworth (@jhawkesworth)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_find_module.html b/tag/2.4.0/collections/ansible/windows/win_find_module.html new file mode 100644 index 00000000..f1063951 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_find_module.html @@ -0,0 +1,741 @@ + + + + + + + + ansible.windows.win_find module – Return a list of files based on specific criteria — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_find module – Return a list of files based on specific criteria

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_find.

+
+ +
+

Synopsis

+
    +
  • Return a list of files based on specified criteria.

  • +
  • Multiple criteria are AND’d together.

  • +
  • For non-Windows targets, use the ansible.builtin.find module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

age

+

string

+

Select files or folders whose age is equal to or greater than the specified time.

+

Use a negative age to find files equal to or less than the specified time.

+

You can choose seconds, minutes, hours, days or weeks by specifying the first letter of an of those words (e.g., “2s”, “10d”, 1w”).

+
+

age_stamp

+

string

+

Choose the file property against which we compare age.

+

The default attribute we compare with is the last modification time.

+

Choices:

+
    +
  • "atime"

  • +
  • "ctime"

  • +
  • "mtime" ← (default)

  • +
+
+

checksum_algorithm

+

string

+

Algorithm to determine the checksum of a file.

+

Will throw an error if the host is unable to use specified algorithm.

+

Choices:

+
    +
  • "md5"

  • +
  • "sha1" ← (default)

  • +
  • "sha256"

  • +
  • "sha384"

  • +
  • "sha512"

  • +
+
+

depth

+

integer

+

added in ansible.windows 2.0.0

+

Set the maximum number of levels to descend into.

+

Setting recurse to false will override this value, which is effectively depth 1.

+

Default depth is unlimited.

+
+

file_type

+

string

+

Type of file to search for.

+

Choices:

+
    +
  • "directory"

  • +
  • "file" ← (default)

  • +
+
+

follow

+

boolean

+

Set this to true to follow symlinks in the path.

+

This needs to be used in conjunction with recurse.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

get_checksum

+

boolean

+

Whether to return a checksum of the file in the return info (default sha1), use checksum_algorithm to change from the default.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

hidden

+

boolean

+

Set this to include hidden files or folders.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

paths

+

list / elements=string / required

+

List of paths of directories to search for files or folders in.

+

This can be supplied as a single path or a list of paths.

+
+
+
+

patterns

+

aliases: regex, regexp

+

list / elements=string

+

One or more (powershell or regex) patterns to compare filenames with.

+

The type of pattern matching is controlled by use_regex option.

+

The patterns restrict the list of files or folders to be returned based on the filenames.

+

For a file to be matched it only has to match with one pattern in a list provided.

+
+

recurse

+

boolean

+

Will recursively descend into the directory looking for files or folders.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

size

+

string

+

Select files or folders whose size is equal to or greater than the specified size.

+

Use a negative value to find files equal to or less than the specified size.

+

You can specify the size with a suffix of the byte type i.e. kilo = k, mega = m…

+

Size is not evaluated for symbolic links.

+
+

use_regex

+

boolean

+

Will set patterns to run as a regex check if set to true.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • When scanning directories with a large number of files containing lots of data it is recommended to set get_checksum=false. This will speed up the time it takes to scan the folders as getting a checksum needs to read the contents of every file it returns.

  • +
+
+
+
+

Examples

+
- name: Find files in path
+  ansible.windows.win_find:
+    paths: D:\Temp
+
+- name: Find hidden files in path
+  ansible.windows.win_find:
+    paths: D:\Temp
+    hidden: true
+
+- name: Find files in multiple paths
+  ansible.windows.win_find:
+    paths:
+      - C:\Temp
+      - D:\Temp
+
+- name: Find files in directory while searching recursively
+  ansible.windows.win_find:
+    paths: D:\Temp
+    recurse: true
+
+- name: Find files in directory while following symlinks
+  ansible.windows.win_find:
+    paths: D:\Temp
+    recurse: true
+    follow: true
+
+- name: Find files with .log and .out extension using powershell wildcards
+  ansible.windows.win_find:
+    paths: D:\Temp
+    patterns: ['*.log', '*.out']
+
+- name: Find files in path based on regex pattern
+  ansible.windows.win_find:
+    paths: D:\Temp
+    patterns: out_\d{8}-\d{6}.log
+
+- name: Find files older than 1 day
+  ansible.windows.win_find:
+    paths: D:\Temp
+    age: 86400
+
+- name: Find files older than 1 day based on create time
+  ansible.windows.win_find:
+    paths: D:\Temp
+    age: 86400
+    age_stamp: ctime
+
+- name: Find files older than 1 day with unit syntax
+  ansible.windows.win_find:
+    paths: D:\Temp
+    age: 1d
+
+- name: Find files newer than 1 hour
+  ansible.windows.win_find:
+    paths: D:\Temp
+    age: -3600
+
+- name: Find files newer than 1 hour with unit syntax
+  ansible.windows.win_find:
+    paths: D:\Temp
+    age: -1h
+
+- name: Find files larger than 1MB
+  ansible.windows.win_find:
+    paths: D:\Temp
+    size: 1048576
+
+- name: Find files larger than 1GB with unit syntax
+  ansible.windows.win_find:
+    paths: D:\Temp
+    size: 1g
+
+- name: Find files smaller than 1MB
+  ansible.windows.win_find:
+    paths: D:\Temp
+    size: -1048576
+
+- name: Find files smaller than 1GB with unit syntax
+  ansible.windows.win_find:
+    paths: D:\Temp
+    size: -1g
+
+- name: Find folders/symlinks in multiple paths
+  ansible.windows.win_find:
+    paths:
+      - C:\Temp
+      - D:\Temp
+    file_type: directory
+
+- name: Find files and return SHA256 checksum of files found
+  ansible.windows.win_find:
+    paths: C:\Temp
+    get_checksum: true
+    checksum_algorithm: sha256
+
+- name: Find files and do not return the checksum
+  ansible.windows.win_find:
+    paths: C:\Temp
+    get_checksum: false
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

examined

+

integer

+

The number of files/folders that was checked.

+

Returned: always

+

Sample: 10

+
+

files

+

complex

+

Information on the files/folders that match the criteria returned as a list of dictionary elements for each file matched. The entries are sorted by the path value alphabetically.

+

Returned: success

+
+

attributes

+

string

+

attributes of the file at path in raw form.

+

Returned: success, path exists

+

Sample: "Archive, Hidden"

+
+

checksum

+

string

+

The checksum of a file based on checksum_algorithm specified.

+

Returned: success, path exists, path is a file, get_checksum == True

+

Sample: "09cb79e8fc7453c84a07f644e441fd81623b7f98"

+
+

creationtime

+

float

+

The create time of the file represented in seconds since epoch.

+

Returned: success, path exists

+

Sample: 1477984205.15

+
+

exists

+

boolean

+

Whether the file exists, will always be true for ansible.windows.win_find.

+

Returned: success, path exists

+

Sample: true

+
+

extension

+

string

+

The extension of the file at path.

+

Returned: success, path exists, path is a file

+

Sample: ".ps1"

+
+

filename

+

string

+

The name of the file.

+

Returned: success, path exists

+

Sample: "temp"

+
+

hlnk_targets

+

list / elements=string

+

List of other files pointing to the same file (hard links), excludes the current file.

+

Returned: success, path exists

+

Sample: ["C:\\temp\\file.txt", "C:\\Windows\\update.log"]

+
+

isarchive

+

boolean

+

If the path is ready for archiving or not.

+

Returned: success, path exists

+

Sample: true

+
+

isdir

+

boolean

+

If the path is a directory or not.

+

Returned: success, path exists

+

Sample: true

+
+

ishidden

+

boolean

+

If the path is hidden or not.

+

Returned: success, path exists

+

Sample: true

+
+

isjunction

+

boolean

+

If the path is a junction point.

+

Returned: success, path exists

+

Sample: true

+
+

islnk

+

boolean

+

If the path is a symbolic link.

+

Returned: success, path exists

+

Sample: true

+
+

isreadonly

+

boolean

+

If the path is read only or not.

+

Returned: success, path exists

+

Sample: true

+
+

isreg

+

boolean

+

If the path is a regular file or not.

+

Returned: success, path exists

+

Sample: true

+
+

isshared

+

boolean

+

If the path is shared or not.

+

Returned: success, path exists

+

Sample: true

+
+

lastaccesstime

+

float

+

The last access time of the file represented in seconds since epoch.

+

Returned: success, path exists

+

Sample: 1477984205.15

+
+

lastwritetime

+

float

+

The last modification time of the file represented in seconds since epoch.

+

Returned: success, path exists

+

Sample: 1477984205.15

+
+

lnk_source

+

string

+

The target of the symlink normalized for the remote filesystem.

+

Returned: success, path exists, path is a symbolic link or junction point

+

Sample: "C:\\temp"

+
+

lnk_target

+

string

+

The target of the symlink. Note that relative paths remain relative, will return null if not a link.

+

Returned: success, path exists, path is a symbolic link or junction point

+

Sample: "temp"

+
+ +

integer

+

Number of links to the file (hard links)

+

Returned: success, path exists

+

Sample: 1

+
+

owner

+

string

+

The owner of the file.

+

Returned: success, path exists

+

Sample: "BUILTIN\\Administrators"

+
+

path

+

string

+

The full absolute path to the file.

+

Returned: success, path exists

+

Sample: "C:\\temp\\file.txt"

+
+

sharename

+

string

+

The name of share if folder is shared.

+

Returned: success, path exists, path is a directory and isshared == True

+

Sample: "file-share"

+
+

size

+

integer

+

The size in bytes of the file.

+

Returned: success, path exists, path is a file

+

Sample: 1024

+
+

matched

+

integer

+

The number of files/folders that match the criteria.

+

Returned: always

+

Sample: 2

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_get_url_module.html b/tag/2.4.0/collections/ansible/windows/win_get_url_module.html new file mode 100644 index 00000000..4c15706f --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_get_url_module.html @@ -0,0 +1,621 @@ + + + + + + + + ansible.windows.win_get_url module – Downloads file from HTTP, HTTPS, or FTP to node — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_get_url module – Downloads file from HTTP, HTTPS, or FTP to node

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_get_url.

+
+ +
+

Synopsis

+
    +
  • Downloads files from HTTP, HTTPS, or FTP to the remote server.

  • +
  • The remote server must have direct access to the remote resource.

  • +
  • For non-Windows targets, use the ansible.builtin.get_url module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

checksum

+

string

+

If a checksum is passed to this parameter, the digest of the destination file will be calculated after it is downloaded to ensure its integrity and verify that the transfer completed successfully.

+

This option cannot be set with checksum_url.

+
+

checksum_algorithm

+

string

+

Specifies the hashing algorithm used when calculating the checksum of the remote and destination file.

+

Choices:

+
    +
  • "md5"

  • +
  • "sha1" ← (default)

  • +
  • "sha256"

  • +
  • "sha384"

  • +
  • "sha512"

  • +
+
+

checksum_url

+

string

+

Specifies a URL that contains the checksum values for the resource at url.

+

Like checksum, this is used to verify the integrity of the remote transfer.

+

This option cannot be set with checksum.

+
+

client_cert

+

string

+

The path to the client certificate (.pfx) that is used for X509 authentication. This path can either be the path to the pfx on the filesystem or the PowerShell certificate path Cert:\CurrentUser\My\<thumbprint>.

+

The WinRM connection must be authenticated with CredSSP or become is used on the task if the certificate file is not password protected.

+

Other authentication types can set client_cert_password when the cert is password protected.

+
+

client_cert_password

+

string

+

The password for client_cert if the cert is password protected.

+
+

dest

+

path / required

+

The location to save the file at the URL.

+

Be sure to include a filename and extension as appropriate.

+
+

follow_redirects

+

string

+

Whether or the module should follow redirects.

+

all will follow all redirect.

+

none will not follow any redirect.

+

safe will follow only “safe” redirects, where “safe” means that the client is only doing a GET or HEAD on the URI to which it is being redirected.

+

When following a redirected URL, the Authorization header and any credentials set will be dropped and not redirected.

+

Choices:

+
    +
  • "all"

  • +
  • "none"

  • +
  • "safe" ← (default)

  • +
+
+

force

+

boolean

+

If true, will download the file every time and replace the file if the contents change. If false, will only download the file if it does not exist or the remote file has been modified more recently than the local file.

+

This works by sending an http HEAD request to retrieve last modified time of the requested resource, so for this to work, the remote web server must support HEAD requests.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

force_basic_auth

+

boolean

+

By default the authentication header is only sent when a webservice responses to an initial request with a 401 status. Since some basic auth services do not properly send a 401, logins will fail.

+

This option forces the sending of the Basic authentication header upon the original request.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

headers

+

dictionary

+

Extra headers to set on the request.

+

This should be a dictionary where the key is the header name and the value is the value for that header.

+
+

http_agent

+

string

+

Header to identify as, generally appears in web server logs.

+

This is set to the User-Agent header on a HTTP request.

+

Default: "ansible-httpget"

+
+

maximum_redirection

+

integer

+

Specify how many times the module will redirect a connection to an alternative URI before the connection fails.

+

If set to 0 or follow_redirects is set to none, or safe when not doing a GET or HEAD it prevents all redirection.

+

Default: 50

+
+

proxy_password

+

string

+

The password for proxy_username.

+
+

proxy_url

+

string

+

An explicit proxy to use for the request.

+

By default, the request will use the IE defined proxy unless use_proxy is set to no.

+
+

proxy_use_default_credential

+

boolean

+

Uses the current user’s credentials when authenticating with a proxy host protected with NTLM, Kerberos, or Negotiate authentication.

+

Proxies that use Basic auth will still require explicit credentials through the proxy_username and proxy_password options.

+

The module will only have access to the user’s credentials if using become with a password, you are connecting with SSH using a password, or connecting with WinRM using CredSSP or Kerberos with delegation.

+

If not using become or a different auth method to the ones stated above, there will be no default credentials available and no proxy authentication will occur.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

proxy_username

+

string

+

The username to use for proxy authentication.

+
+

url

+

string / required

+

The full URL of a file to download.

+
+
+

url_method

+

aliases: method

+

string

+

The HTTP Method of the request.

+
+

url_password

+

string

+

The password for url_username.

+
+
+

url_timeout

+

aliases: timeout

+

integer

+

Specifies how long the request can be pending before it times out (in seconds).

+

Set to 0 to specify an infinite timeout.

+

Default: 30

+
+

url_username

+

string

+

The username to use for authentication.

+
+

use_default_credential

+

boolean

+

Uses the current user’s credentials when authenticating with a server protected with NTLM, Kerberos, or Negotiate authentication.

+

Sites that use Basic auth will still require explicit credentials through the url_username and url_password options.

+

The module will only have access to the user’s credentials if using become with a password, you are connecting with SSH using a password, or connecting with WinRM using CredSSP or Kerberos with delegation.

+

If not using become or a different auth method to the ones stated above, there will be no default credentials available and no authentication will occur.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

use_proxy

+

boolean

+

If no, it will not use the proxy defined in IE for the current user.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

validate_certs

+

boolean

+

If no, SSL certificates will not be validated.

+

This should only be used on personally controlled sites using self-signed certificates.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • If your URL includes an escaped slash character (%2F) this module will convert it to a real slash. This is a result of the behaviour of the System.Uri class as described in the documentation.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.get_url

The official documentation on the ansible.builtin.get_url module.

+
+
ansible.builtin.uri

The official documentation on the ansible.builtin.uri module.

+
+
ansible.windows.win_uri

Interacts with webservices.

+
+
community.windows.win_inet_proxy

The official documentation on the community.windows.win_inet_proxy module.

+
+
+
+
+
+

Examples

+
- name: Download earthrise.jpg to specified path
+  ansible.windows.win_get_url:
+    url: http://www.example.com/earthrise.jpg
+    dest: C:\Users\RandomUser\earthrise.jpg
+
+- name: Download earthrise.jpg to specified path only if modified
+  ansible.windows.win_get_url:
+    url: http://www.example.com/earthrise.jpg
+    dest: C:\Users\RandomUser\earthrise.jpg
+    force: false
+
+- name: Download earthrise.jpg to specified path through a proxy server.
+  ansible.windows.win_get_url:
+    url: http://www.example.com/earthrise.jpg
+    dest: C:\Users\RandomUser\earthrise.jpg
+    proxy_url: http://10.0.0.1:8080
+    proxy_username: username
+    proxy_password: password
+
+- name: Download file from FTP with authentication
+  ansible.windows.win_get_url:
+    url: ftp://server/file.txt
+    dest: '%TEMP%\ftp-file.txt'
+    url_username: ftp-user
+    url_password: ftp-password
+
+- name: Download src with sha256 checksum url
+  ansible.windows.win_get_url:
+    url: http://www.example.com/earthrise.jpg
+    dest: C:\temp\earthrise.jpg
+    checksum_url: http://www.example.com/sha256sum.txt
+    checksum_algorithm: sha256
+    force: true
+
+- name: Download src with sha256 checksum url
+  ansible.windows.win_get_url:
+    url: http://www.example.com/earthrise.jpg
+    dest: C:\temp\earthrise.jpg
+    checksum: a97e6837f60cec6da4491bab387296bbcd72bdba
+    checksum_algorithm: sha1
+    force: true
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

checksum_dest

+

string

+

<algorithm> checksum of the file after the download

+

Returned: success and dest has been downloaded

+

Sample: "6e642bb8dd5c2e027bf21dd923337cbb4214f827"

+
+

checksum_src

+

string

+

<algorithm> checksum of the remote resource

+

Returned: force=true or dest did not exist

+

Sample: "6e642bb8dd5c2e027bf21dd923337cbb4214f827"

+
+

dest

+

string

+

destination file/path

+

Returned: always

+

Sample: "C:\\Users\\RandomUser\\earthrise.jpg"

+
+

elapsed

+

float

+

The elapsed seconds between the start of poll and the end of the module.

+

Returned: always

+

Sample: 2.1406487

+
+

msg

+

string

+

Error message, or HTTP status message from web-server

+

Returned: always

+

Sample: "OK"

+
+

size

+

integer

+

size of the dest file

+

Returned: success

+

Sample: 1220

+
+

status_code

+

integer

+

HTTP status code

+

Returned: always

+

Sample: 200

+
+

url

+

string

+

requested url

+

Returned: always

+

Sample: "http://www.example.com/earthrise.jpg"

+
+
+

Authors

+
    +
  • Paul Durivage (@angstwad)

  • +
  • Takeshi Kuramochi (@tksarah)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_group_membership_module.html b/tag/2.4.0/collections/ansible/windows/win_group_membership_module.html new file mode 100644 index 00000000..c0addbbd --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_group_membership_module.html @@ -0,0 +1,340 @@ + + + + + + + + ansible.windows.win_group_membership module – Manage Windows local group membership — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_group_membership module – Manage Windows local group membership

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_group_membership.

+
+ +
+

Synopsis

+
    +
  • Allows the addition and removal of local, service and domain users, and domain groups from a local group.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +

Parameter

Comments

+

members

+

list / elements=string / required

+

A list of members to ensure are present/absent from the group.

+

Accepts local users as .\username, and SERVERNAME\username.

+

Accepts domain users and groups as DOMAIN\username and username@DOMAIN.

+

Accepts service users as NT AUTHORITY\username.

+

Accepts all local, domain and service user types as username, favoring domain lookups when in a domain.

+
+

name

+

string / required

+

Name of the local group to manage membership on.

+
+

state

+

string

+

Desired state of the members in the group.

+

When state is pure, only the members specified will exist, and all other existing members not specified are removed.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
  • "pure"

  • +
+
+
+
+

See Also

+
+

See also

+
+
community.windows.win_domain_group

The official documentation on the community.windows.win_domain_group module.

+
+
ansible.windows.win_domain_membership

Manage domain/workgroup membership for a Windows host.

+
+
ansible.windows.win_group

Add and remove local groups.

+
+
+
+
+
+

Examples

+
- name: Add a local and domain user to a local group
+  ansible.windows.win_group_membership:
+    name: Remote Desktop Users
+    members:
+      - NewLocalAdmin
+      - DOMAIN\TestUser
+    state: present
+
+- name: Remove a domain group and service user from a local group
+  ansible.windows.win_group_membership:
+    name: Backup Operators
+    members:
+      - DOMAIN\TestGroup
+      - NT AUTHORITY\SYSTEM
+    state: absent
+
+- name: Ensure only a domain user exists in a local group
+  ansible.windows.win_group_membership:
+    name: Remote Desktop Users
+    members:
+      - DOMAIN\TestUser
+    state: pure
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + +

Key

Description

+

added

+

list / elements=string

+

A list of members added when state is present or pure; this is empty if no members are added.

+

Returned: success and state is present

+

Sample: ["SERVERNAME\\NewLocalAdmin", "DOMAIN\\TestUser"]

+
+

members

+

list / elements=string

+

A list of all local group members at completion; this is empty if the group contains no members.

+

Returned: success

+

Sample: ["DOMAIN\\TestUser", "SERVERNAME\\NewLocalAdmin"]

+
+

name

+

string

+

The name of the target local group.

+

Returned: always

+

Sample: "Administrators"

+
+

removed

+

list / elements=string

+

A list of members removed when state is absent or pure; this is empty if no members are removed.

+

Returned: success and state is absent

+

Sample: ["DOMAIN\\TestGroup", "NT AUTHORITY\\SYSTEM"]

+
+
+

Authors

+
    +
  • Andrew Saraceni (@andrewsaraceni)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_group_module.html b/tag/2.4.0/collections/ansible/windows/win_group_module.html new file mode 100644 index 00000000..db6beaf0 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_group_module.html @@ -0,0 +1,273 @@ + + + + + + + + ansible.windows.win_group module – Add and remove local groups — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_group module – Add and remove local groups

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_group.

+
+ +
+

Synopsis

+
    +
  • Add and remove local groups.

  • +
  • For non-Windows targets, please use the ansible.builtin.group module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +

Parameter

Comments

+

description

+

string

+

Description of the group.

+
+

name

+

string / required

+

Name of the group.

+
+

state

+

string

+

Create or remove the group.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.group

The official documentation on the ansible.builtin.group module.

+
+
community.windows.win_domain_group

The official documentation on the community.windows.win_domain_group module.

+
+
ansible.windows.win_group_membership

Manage Windows local group membership.

+
+
+
+
+
+

Examples

+
- name: Create a new group
+  ansible.windows.win_group:
+    name: deploy
+    description: Deploy Group
+    state: present
+
+- name: Remove a group
+  ansible.windows.win_group:
+    name: deploy
+    state: absent
+
+
+
+

Authors

+
    +
  • Chris Hoffman (@chrishoffman)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_hostname_module.html b/tag/2.4.0/collections/ansible/windows/win_hostname_module.html new file mode 100644 index 00000000..198ed331 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_hostname_module.html @@ -0,0 +1,280 @@ + + + + + + + + ansible.windows.win_hostname module – Manages local Windows computer name — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_hostname module – Manages local Windows computer name

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_hostname.

+
+ +
+

Synopsis

+
    +
  • Manages local Windows computer name.

  • +
  • A reboot is required for the computer name to take effect.

  • +
+
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+

name

+

string / required

+

The hostname to set for the computer.

+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_dns_client

Configures DNS lookup on Windows hosts.

+
+
+
+
+
+

Examples

+
- name: Change the hostname to sample-hostname
+  ansible.windows.win_hostname:
+    name: sample-hostname
+  register: res
+
+- name: Reboot
+  ansible.windows.win_reboot:
+  when: res.reboot_required
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + +

Key

Description

+

old_name

+

string

+

The original hostname that was set before it was changed.

+

Returned: always

+

Sample: "old_hostname"

+
+

reboot_required

+

boolean

+

Whether a reboot is required to complete the hostname change.

+

Returned: always

+

Sample: true

+
+
+

Authors

+
    +
  • Ripon Banik (@riponbanik)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_optional_feature_module.html b/tag/2.4.0/collections/ansible/windows/win_optional_feature_module.html new file mode 100644 index 00000000..d4f1182b --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_optional_feature_module.html @@ -0,0 +1,328 @@ + + + + + + + + ansible.windows.win_optional_feature module – Manage optional Windows features — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_optional_feature module – Manage optional Windows features

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_optional_feature.

+
+ +
+

Synopsis

+
    +
  • Install or uninstall optional Windows features on non-Server Windows.

  • +
  • This module uses the Enable-WindowsOptionalFeature and Disable-WindowsOptionalFeature cmdlets.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

include_parent

+

boolean

+

Whether to enable the parent feature and the parent’s dependencies.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

name

+

list / elements=string / required

+

The name(s) of the feature to install.

+

This relates to FeatureName in the Powershell cmdlet.

+

To list all available features use the PowerShell command Get-WindowsOptionalFeature.

+
+

source

+

string

+

Specify a source to install the feature from.

+

Can either be {driveletter}:\sources\sxs or \\{IP}\share\sources\sxs.

+
+

state

+

string

+

Whether to ensure the feature is absent or present on the system.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
+
+
+
+

See Also

+
+

See also

+
+
chocolatey.chocolatey.win_chocolatey

The official documentation on the chocolatey.chocolatey.win_chocolatey module.

+
+
ansible.windows.win_feature

Installs and uninstalls Windows Features on Windows Server.

+
+
ansible.windows.win_package

Installs/uninstalls an installable package.

+
+
+
+
+
+

Examples

+
- name: Install .Net 3.5
+  ansible.windows.win_optional_feature:
+    name: NetFx3
+    state: present
+
+- name: Install .Net 3.5 from source
+  ansible.windows.win_optional_feature:
+    name: NetFx3
+    source: \\share01\win10\sources\sxs
+    state: present
+
+- name: Install Microsoft Subsystem for Linux
+  ansible.windows.win_optional_feature:
+    name: Microsoft-Windows-Subsystem-Linux
+    state: present
+  register: wsl_status
+
+- name: Reboot if installing Linux Subsytem as feature requires it
+  ansible.windows.win_reboot:
+  when: wsl_status.reboot_required
+
+- name: Install multiple features in one task
+  ansible.windows.win_optional_feature:
+    name:
+      - NetFx3
+      - Microsoft-Windows-Subsystem-Linux
+    state: present
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

reboot_required

+

boolean

+

True when the target server requires a reboot to complete updates

+

Returned: success

+

Sample: true

+
+
+

Authors

+
    +
  • Carson Anderson (@rcanderson23)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_owner_module.html b/tag/2.4.0/collections/ansible/windows/win_owner_module.html new file mode 100644 index 00000000..f735073f --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_owner_module.html @@ -0,0 +1,273 @@ + + + + + + + + ansible.windows.win_owner module – Set owner — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_owner module – Set owner

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_owner.

+
+ +
+

Synopsis

+
    +
  • Set owner of files or directories.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +

Parameter

Comments

+

path

+

path / required

+

Path to be used for changing owner.

+
+

recurse

+

boolean

+

Indicates if the owner should be changed recursively.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

user

+

string / required

+

Name to be used for changing owner.

+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_acl

Set file/directory/registry/certificate permissions for a system user or group.

+
+
ansible.windows.win_file

Creates, touches or removes files or directories.

+
+
ansible.windows.win_stat

Get information about Windows files.

+
+
+
+
+
+

Examples

+
- name: Change owner of path
+  ansible.windows.win_owner:
+    path: C:\apache
+    user: apache
+    recurse: true
+
+- name: Set the owner of root directory
+  ansible.windows.win_owner:
+    path: C:\apache
+    user: SYSTEM
+    recurse: false
+
+
+
+

Authors

+
    +
  • Hans-Joachim Kliemeck (@h0nIg)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_package_module.html b/tag/2.4.0/collections/ansible/windows/win_package_module.html new file mode 100644 index 00000000..6a92b583 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_package_module.html @@ -0,0 +1,776 @@ + + + + + + + + ansible.windows.win_package module – Installs/uninstalls an installable package — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_package module – Installs/uninstalls an installable package

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_package.

+
+ +
+

Synopsis

+
    +
  • Installs or uninstalls software packages for Windows.

  • +
  • Supports .exe, .msi, .msp, .appx, .appxbundle, .msix, and .msixbundle.

  • +
  • These packages can be sourced from the local file system, network file share or a url.

  • +
  • See provider for more info on each package type that is supported.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

arguments

+

any

+

Any arguments the installer needs to either install or uninstall the package.

+

If the package is an MSI do not supply the /qn, /log or /norestart arguments.

+

This is only used for the msi, msp, and registry providers.

+

Can be a list of arguments and the module will escape the arguments as necessary, it is recommended to use a string when dealing with MSI packages due to the unique escaping issues with msiexec.

+

When using a list of arguments each item in the list is considered to be a single argument. As such, if an argument in the list contains a space then Ansible will quote this to ensure that this is seen by Windows as a single argument. Should this behaviour not be what is required, the argument should be split into two separate list items. See the examples section for more detail.

+
+

chdir

+

path

+

Set the specified path as the current working directory before installing or uninstalling a package.

+

This is only used for the msi, msp, and registry providers.

+
+

client_cert

+

string

+

The path to the client certificate (.pfx) that is used for X509 authentication. This path can either be the path to the pfx on the filesystem or the PowerShell certificate path Cert:\CurrentUser\My\<thumbprint>.

+

The WinRM connection must be authenticated with CredSSP or become is used on the task if the certificate file is not password protected.

+

Other authentication types can set client_cert_password when the cert is password protected.

+
+

client_cert_password

+

string

+

The password for client_cert if the cert is password protected.

+
+

creates_path

+

path

+

Will check the existence of the path specified and use the result to determine whether the package is already installed.

+

You can use this in conjunction with product_id and other creates_*.

+
+

creates_service

+

string

+

Will check the existing of the service specified and use the result to determine whether the package is already installed.

+

You can use this in conjunction with product_id and other creates_*.

+
+

creates_version

+

string

+

Will check the file version property of the file at creates_path and use the result to determine whether the package is already installed.

+

creates_path MUST be set and is a file.

+

You can use this in conjunction with product_id and other creates_*.

+
+

expected_return_code

+

list / elements=integer

+

One or more return codes from the package installation that indicates success.

+

The return codes are read as a signed integer, any values greater than 2147483647 need to be represented as the signed equivalent, i.e. 4294967295 is -1.

+

To convert a unsigned number to the signed equivalent you can run “[Int32](“0x{0:X}” -f ([UInt32]3221225477))”.

+

A return code of 3010 usually means that a reboot is required, the reboot_required return value is set if the return code is 3010.

+

This is only used for the msi, msp, and registry providers.

+

Default: [0, 3010]

+
+

follow_redirects

+

string

+

Whether or the module should follow redirects.

+

all will follow all redirect.

+

none will not follow any redirect.

+

safe will follow only “safe” redirects, where “safe” means that the client is only doing a GET or HEAD on the URI to which it is being redirected.

+

When following a redirected URL, the Authorization header and any credentials set will be dropped and not redirected.

+

Choices:

+
    +
  • "all"

  • +
  • "none"

  • +
  • "safe" ← (default)

  • +
+
+

force_basic_auth

+

boolean

+

By default the authentication header is only sent when a webservice responses to an initial request with a 401 status. Since some basic auth services do not properly send a 401, logins will fail.

+

This option forces the sending of the Basic authentication header upon the original request.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

headers

+

dictionary

+

Extra headers to set on the request.

+

This should be a dictionary where the key is the header name and the value is the value for that header.

+
+

http_agent

+

string

+

Header to identify as, generally appears in web server logs.

+

This is set to the User-Agent header on a HTTP request.

+

Default: "ansible-httpget"

+
+

log_path

+

path

+

Specifies the path to a log file that is persisted after a package is installed or uninstalled.

+

This is only used for the msi or msp provider.

+

When omitted, a temporary log file is used instead for those providers.

+

This is only valid for MSI files, use arguments for the registry provider.

+
+

maximum_redirection

+

integer

+

Specify how many times the module will redirect a connection to an alternative URI before the connection fails.

+

If set to 0 or follow_redirects is set to none, or safe when not doing a GET or HEAD it prevents all redirection.

+

Default: 50

+
+

path

+

string

+

Location of the package to be installed or uninstalled.

+

This package can either be on the local file system, network share or a url.

+

When state=present, product_id is not set and the path is a URL, this file will always be downloaded to a temporary directory for idempotency checks, otherwise the file will only be downloaded if the package has not been installed based on the product_id checks.

+

If state=present then this value MUST be set.

+

If state=absent then this value does not need to be set if product_id is.

+
+

product_id

+

string

+

The product id of the installed packaged.

+

This is used for checking whether the product is already installed and getting the uninstall information if state=absent.

+

For msi packages, this is the ProductCode (GUID) of the package. This can be found under the same registry paths as the registry provider.

+

For msp packages, this is the PatchCode (GUID) of the package which can found under the Details -> Revision number of the file’s properties.

+

For msix packages, this is the Name or PackageFullName of the package found under the Get-AppxPackage cmdlet.

+

For registry (exe) packages, this is the registry key name under the registry paths specified in provider.

+

This value is ignored if path is set to a local accesible file path and the package is not an exe.

+

This SHOULD be set when the package is an exe, or the path is a url or a network share and credential delegation is not being used. The creates_* options can be used instead but is not recommended.

+
+

provider

+

string

+

Set the package provider to use when searching for a package.

+

The auto provider will select the proper provider if path otherwise it scans all the other providers based on the product_id.

+

The msi provider scans for MSI packages installed on a machine wide and current user context based on the ProductCode of the MSI.

+

The msix provider is used to install .appx, .msix, .appxbundle, or .msixbundle packages. These packages are only installed or removed on the current use. The host must be set to allow sideloaded apps or in developer mode. See the examples for how to enable this. If a package is already installed but path points to an updated package, this will be installed over the top of the existing one.

+

The msp provider scans for all MSP patches installed on a machine wide and current user context based on the PatchCode of the MSP. A msp will be applied or removed on all msi products that it applies to and is installed. If the patch is obsoleted or superseded then no action will be taken.

+

The registry provider is used for traditional exe installers and uses the following registry path to determine if a product was installed; HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall, HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall, and HKCU:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall.

+

Choices:

+
    +
  • "auto" ← (default)

  • +
  • "msi"

  • +
  • "msix"

  • +
  • "msp"

  • +
  • "registry"

  • +
+
+

proxy_password

+

string

+

The password for proxy_username.

+
+

proxy_url

+

string

+

An explicit proxy to use for the request.

+

By default, the request will use the IE defined proxy unless use_proxy is set to no.

+
+

proxy_use_default_credential

+

boolean

+

Uses the current user’s credentials when authenticating with a proxy host protected with NTLM, Kerberos, or Negotiate authentication.

+

Proxies that use Basic auth will still require explicit credentials through the proxy_username and proxy_password options.

+

The module will only have access to the user’s credentials if using become with a password, you are connecting with SSH using a password, or connecting with WinRM using CredSSP or Kerberos with delegation.

+

If not using become or a different auth method to the ones stated above, there will be no default credentials available and no proxy authentication will occur.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

proxy_username

+

string

+

The username to use for proxy authentication.

+
+

state

+

string

+

Whether to install or uninstall the package.

+

The module uses product_id to determine whether the package is installed or not.

+

For all providers but auto, the path can be used for idempotency checks if it is locally accesible filesystem path.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
+
+

url_method

+

string

+

The HTTP Method of the request.

+
+

url_password

+

string

+

The password for url_username.

+
+

url_timeout

+

integer

+

Specifies how long the request can be pending before it times out (in seconds).

+

Set to 0 to specify an infinite timeout.

+

Default: 30

+
+

url_username

+

string

+

The username to use for authentication.

+
+

use_default_credential

+

boolean

+

Uses the current user’s credentials when authenticating with a server protected with NTLM, Kerberos, or Negotiate authentication.

+

Sites that use Basic auth will still require explicit credentials through the url_username and url_password options.

+

The module will only have access to the user’s credentials if using become with a password, you are connecting with SSH using a password, or connecting with WinRM using CredSSP or Kerberos with delegation.

+

If not using become or a different auth method to the ones stated above, there will be no default credentials available and no authentication will occur.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

use_proxy

+

boolean

+

If no, it will not use the proxy defined in IE for the current user.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

validate_certs

+

boolean

+

If no, SSL certificates will not be validated.

+

This should only be used on personally controlled sites using self-signed certificates.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

wait_for_children

+

boolean

+

added in ansible.windows 1.3.0

+

The module will wait for the process it spawns to finish but any processes spawned in that child process as ignored.

+

Set to true to wait for all descendent processes to finish before the module returns.

+

This is useful if the install/uninstaller is just a wrapper which then calls the actual installer as its own child process. When this option is true then the module will wait for both processes to finish before returning.

+

This should not be required for most installers and setting to true could result in the module not returning until the process it is waiting for has been stopped manually.

+

Requires Windows Server 2012 or Windows 8 or newer to use.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • When state=absent and the product is an exe, the path may be different from what was used to install the package originally. If path is not set then the path used will be what is set under QuietUninstallString or UninstallString in the registry for that product_id.

  • +
  • By default all msi installs and uninstalls will be run with the arguments /log, /qn, /norestart.

  • +
  • All the installation checks under product_id and creates_* add together, if one fails then the program is considered to be absent.

  • +
+
+
+
+

See Also

+
+

See also

+
+
chocolatey.chocolatey.win_chocolatey

The official documentation on the chocolatey.chocolatey.win_chocolatey module.

+
+
community.windows.win_hotfix

The official documentation on the community.windows.win_hotfix module.

+
+
ansible.windows.win_updates

Download and install Windows updates.

+
+
community.windows.win_inet_proxy

The official documentation on the community.windows.win_inet_proxy module.

+
+
+
+
+
+

Examples

+
- name: Install the Visual C thingy
+  ansible.windows.win_package:
+    path: http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe
+    product_id: '{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}'
+    arguments: /install /passive /norestart
+
+- name: Install Visual C thingy with list of arguments instead of a string
+  ansible.windows.win_package:
+    path: http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe
+    product_id: '{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}'
+    arguments:
+      - /install
+      - /passive
+      - /norestart
+
+- name: Install MSBuild thingy with arguments split to prevent quotes
+  ansible.windows.win_package:
+    path: https://download.visualstudio.microsoft.com/download/pr/9665567e-f580-4acd-85f2-bc94a1db745f/vs_BuildTools.exe
+    product_id: '{D1437F51-786A-4F57-A99C-F8E94FBA1BD8}'
+    arguments:
+      - --norestart
+      - --passive
+      - --wait
+      - --add
+      - Microsoft.Net.Component.4.6.1.TargetingPack
+      - --add
+      - Microsoft.Net.Component.4.6.TargetingPack
+
+- name: Install Remote Desktop Connection Manager from msi with a permanent log
+  ansible.windows.win_package:
+    path: https://download.microsoft.com/download/A/F/0/AF0071F3-B198-4A35-AA90-C68D103BDCCF/rdcman.msi
+    product_id: '{0240359E-6A4C-4884-9E94-B397A02D893C}'
+    state: present
+    log_path: D:\logs\vcredist_x64-exe-{{lookup('pipe', 'date +%Y%m%dT%H%M%S')}}.log
+
+- name: Install Application from msi with multiple properties for installer
+  ansible.windows.win_package:
+    path: C:\temp\Application.msi
+    state: present
+    arguments: >-
+      SERVICE=1
+      DBNAME=ApplicationDB
+      DBSERVER=.\SQLEXPRESS
+      INSTALLDIR="C:\Program Files (x86)\App lication\App Server"
+
+- name: Install Microsoft® SQL Server® 2019 Express (DPAPI example)
+  ansible.windows.win_package:
+    path: C:\temp\SQLEXPR_x64_ENU\SETUP.EXE
+    product_id: Microsoft SQL Server SQL2019
+    arguments:
+      - SAPWD=VeryHardPassword
+      - /ConfigurationFile=C:\temp\configuration.ini
+  become: true
+  vars:
+    ansible_become_method: runas
+    ansible_become_user: "{{ user }}"
+    ansible_become_pass: "{{ password }}"
+
+- name: Uninstall Remote Desktop Connection Manager
+  ansible.windows.win_package:
+    product_id: '{0240359E-6A4C-4884-9E94-B397A02D893C}'
+    state: absent
+
+- name: Install Remote Desktop Connection Manager locally omitting the product_id
+  ansible.windows.win_package:
+    path: C:\temp\rdcman.msi
+    state: present
+
+- name: Uninstall Remote Desktop Connection Manager from local MSI omitting the product_id
+  ansible.windows.win_package:
+    path: C:\temp\rdcman.msi
+    state: absent
+
+# 7-Zip exe doesn't use a guid for the Product ID
+- name: Install 7zip from a network share with specific credentials
+  ansible.windows.win_package:
+    path: \\domain\programs\7z.exe
+    product_id: 7-Zip
+    arguments: /S
+    state: present
+  become: true
+  become_method: runas
+  become_flags: logon_type=new_credential logon_flags=netcredentials_only
+  vars:
+    ansible_become_user: DOMAIN\User
+    ansible_become_password: Password
+
+- name: Install 7zip and use a file version for the installation check
+  ansible.windows.win_package:
+    path: C:\temp\7z.exe
+    creates_path: C:\Program Files\7-Zip\7z.exe
+    creates_version: 16.04
+    state: present
+
+- name: Uninstall 7zip from the exe
+  ansible.windows.win_package:
+    path: C:\Program Files\7-Zip\Uninstall.exe
+    product_id: 7-Zip
+    arguments: /S
+    state: absent
+
+- name: Uninstall 7zip without specifying the path
+  ansible.windows.win_package:
+    product_id: 7-Zip
+    arguments: /S
+    state: absent
+
+- name: Install application and override expected return codes
+  ansible.windows.win_package:
+    path: https://download.microsoft.com/download/1/6/7/167F0D79-9317-48AE-AEDB-17120579F8E2/NDP451-KB2858728-x86-x64-AllOS-ENU.exe
+    product_id: '{7DEBE4EB-6B40-3766-BB35-5CBBC385DA37}'
+    arguments: '/q /norestart'
+    state: present
+    expected_return_code: [0, 666, 3010]
+
+- name: Install a .msp patch
+  ansible.windows.win_package:
+    path: C:\Patches\Product.msp
+    state: present
+
+- name: Remove a .msp patch
+  ansible.windows.win_package:
+    product_id: '{AC76BA86-A440-FFFF-A440-0C13154E5D00}'
+    state: absent
+
+- name: Enable installation of 3rd party MSIX packages
+  ansible.windows.win_regedit:
+    path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock
+    name: AllowAllTrustedApps
+    data: 1
+    type: dword
+    state: present
+
+- name: Install an MSIX package for the current user
+  ansible.windows.win_package:
+    path: C:\Installers\Calculator.msix  # Can be .appx, .msixbundle, or .appxbundle
+    state: present
+
+- name: Uninstall an MSIX package using the product_id
+  ansible.windows.win_package:
+    product_id: InputApp
+    state: absent
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

log

+

string

+

The contents of the MSI or MSP log.

+

Returned: installation/uninstallation failure for MSI or MSP packages

+

Sample: "Installation completed successfully"

+
+

rc

+

integer

+

The return code of the package process.

+

Returned: change occurred

+

Sample: 0

+
+

reboot_required

+

boolean

+

Whether a reboot is required to finalise package. This is set to true if the executable return code is 3010.

+

Returned: always

+

Sample: true

+
+

stderr

+

string

+

The stderr stream of the package process.

+

Returned: failure during install or uninstall

+

Sample: "Failed to install program"

+
+

stdout

+

string

+

The stdout stream of the package process.

+

Returned: failure during install or uninstall

+

Sample: "Installing program"

+
+
+

Authors

+
    +
  • Trond Hindenes (@trondhindenes)

  • +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_path_module.html b/tag/2.4.0/collections/ansible/windows/win_path_module.html new file mode 100644 index 00000000..695d840a --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_path_module.html @@ -0,0 +1,300 @@ + + + + + + + + ansible.windows.win_path module – Manage Windows path environment variables — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_path module – Manage Windows path environment variables

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_path.

+
+ +
+

Synopsis

+
    +
  • Allows element-based ordering, addition, and removal of Windows path environment variables.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

elements

+

list / elements=string / required

+

A single path element, or a list of path elements (ie, directories) to add or remove.

+

When multiple elements are included in the list (and state is present), the elements are guaranteed to appear in the same relative order in the resultant path value.

+

Variable expansions (eg, %VARNAME%) are allowed, and are stored unexpanded in the target path element.

+

Any existing path elements not mentioned in elements are always preserved in their current order.

+

New path elements are appended to the path, and existing path elements may be moved closer to the end to satisfy the requested ordering.

+

Paths are compared in a case-insensitive fashion, and trailing backslashes are ignored for comparison purposes. However, note that trailing backslashes in YAML require quotes.

+
+

name

+

string

+

Target path environment variable name.

+

Default: "PATH"

+
+

scope

+

string

+

The level at which the environment variable specified by name should be managed (either for the current user or global machine scope).

+

Choices:

+
    +
  • "machine" ← (default)

  • +
  • "user"

  • +
+
+

state

+

string

+

Whether the path elements specified in elements should be present or absent.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • This module is for modifying individual elements of path-like environment variables. For general-purpose management of other environment vars, use the ansible.windows.win_environment module.

  • +
  • This module does not broadcast change events. This means that the minority of windows applications which can have their environment changed without restarting will not be notified and therefore will need restarting to pick up new environment settings.

  • +
  • User level environment variables will require an interactive user to log out and in again before they become available.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_environment

Modify environment variables on windows hosts.

+
+
+
+
+
+

Examples

+
- name: Ensure that system32 and Powershell are present on the global system path, and in the specified order
+  ansible.windows.win_path:
+    elements:
+      - '%SystemRoot%\system32'
+      - '%SystemRoot%\system32\WindowsPowerShell\v1.0'
+
+- name: Ensure that C:\Program Files\MyJavaThing is not on the current user's CLASSPATH
+  ansible.windows.win_path:
+    name: CLASSPATH
+    elements: C:\Program Files\MyJavaThing
+    scope: user
+    state: absent
+
+
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_ping_module.html b/tag/2.4.0/collections/ansible/windows/win_ping_module.html new file mode 100644 index 00000000..25cc3352 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_ping_module.html @@ -0,0 +1,275 @@ + + + + + + + + ansible.windows.win_ping module – A windows version of the classic ping module — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_ping module – A windows version of the classic ping module

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_ping.

+
+ +
+

Synopsis

+
    +
  • Checks management connectivity of a windows host.

  • +
  • This is NOT ICMP ping, this is just a trivial test module.

  • +
  • For non-Windows targets, use the ansible.builtin.ping module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+

data

+

string

+

Alternate data to return instead of ‘pong’.

+

If this parameter is set to crash, the module will cause an exception.

+

Default: "pong"

+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.ping

The official documentation on the ansible.builtin.ping module.

+
+
+
+
+
+

Examples

+
# Test connectivity to a windows host
+# ansible winserver -m ansible.windows.win_ping
+
+- name: Example from an Ansible Playbook
+  ansible.windows.win_ping:
+
+- name: Induce an exception to see what happens
+  ansible.windows.win_ping:
+    data: crash
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

ping

+

string

+

Value provided with the data parameter.

+

Returned: success

+

Sample: "pong"

+
+
+

Authors

+
    +
  • Chris Church (@cchurch)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_powershell_module.html b/tag/2.4.0/collections/ansible/windows/win_powershell_module.html new file mode 100644 index 00000000..d181404c --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_powershell_module.html @@ -0,0 +1,859 @@ + + + + + + + + ansible.windows.win_powershell module – Run PowerShell scripts — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_powershell module – Run PowerShell scripts

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_powershell.

+
+

New in ansible.windows 1.5.0

+ +
+

Synopsis

+ +
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

arguments

+

list / elements=string

+

A list of arguments to pass to executable when running a script in another PowerShell process.

+

These are not arguments to pass to script, use parameters for that purpose.

+
+

chdir

+

string

+

The PowerShell location to set when starting the script.

+

This can be a location in any of the PowerShell providers.

+

The default location is dependent on many factors, if relative paths are used then set this option.

+
+

creates

+

string

+

A path or path filter pattern; when the referenced path exists on the target host, the task will be skipped.

+
+

depth

+

integer

+

How deep the return values are serialized for result, output, and information[x].message_data.

+

This also controls the depth of the diff output set by $Ansible.Diff.

+

Setting this to a higher value can dramatically increase the amount of data that needs to be returned.

+

Default: 2

+
+

error_action

+

string

+

The $ErrorActionPreference to set before executing script.

+

silently_continue will ignore any errors and exceptions raised.

+

continue is the default behaviour in PowerShell, errors are present in the error return value but only terminating exceptions will stop the script from continuing and set it as failed.

+

stop will treat errors like exceptions, will stop the script and set it as failed.

+

Choices:

+
    +
  • "silently_continue"

  • +
  • "continue" ← (default)

  • +
  • "stop"

  • +
+
+

executable

+

string

+

A custom PowerShell executable to run the script in.

+

When not defined the script will run in the current module PowerShell interpreter.

+

Both the remote PowerShell and the one specified by executable must be running on PowerShell v5.1 or newer.

+

Setting this value may change the values returned in the output return value depending on the underlying .NET type.

+
+

parameters

+

dictionary

+

Parameters to pass into the script as key value pairs.

+

The key corresponds to the parameter name and the value is the value for that parameter.

+
+

removes

+

string

+

A path or path filter pattern; when the referenced path does not exist on the target host, the task will be skipped.

+
+

script

+

string / required

+

The PowerShell script to run.

+
+

sensitive_parameters

+

list / elements=dictionary

+

Parameters to pass into the script as a SecureString or PSCredential.

+

Each sensitive value will be marked with no_log to ensure they are not exposed in the module invocation args logs.

+

The value suboption can be used to create a SecureString value while username and password can be used to create a PSCredential value.

+
+

name

+

string / required

+

The name of the parameter to pass this value to.

+
+

password

+

string

+

The Password for the PSCredential value.

+

This is mutually exclusive with value and must be set when username is provided.

+
+

username

+

string

+

The UserName for the PSCredential value.

+

This is mutually exclusive with value.

+

This value is NOT added to the no_log list.

+
+

value

+

string

+

The string to pass as a SecureString of the parameter specified by name.

+

This is mutually exclusive with username and password.

+
+
+
+

Notes

+
+

Note

+
    +
  • The module is set as failed when a terminating exception is throw, or error_action=stop and a normal error record is raised.

  • +
  • The output values are processed using a custom filter and while it mostly matches the ConvertTo-Json result the following value types are different.

  • +
  • DateTime will be an ISO 8601 string in UTC, DateTimeOffset will have the offset as specified by the value.

  • +
  • Enum will contain a dictionary with Type, String, Value being the type name, string representation and raw integer value respectively.

  • +
  • Type will contain a dictionary with Name, FullName, AssemblyQualifiedName, BaseType being the type name, the type name including the namespace, the full assembly name the type was defined in and the base type it derives from.

  • +
  • The script has access to the $Ansible variable where it can set Result, Changed, Failed, Diff, or access Tmpdir.

  • +
  • $Ansible.Result is a value that is returned back to the controller as is.

  • +
  • $Ansible.Diff was added in the 1.12.0 release of ansible.windows and is a dictionary that is set to the diff result that can be interepreted by Ansible.

  • +
  • $Ansible.Changed can be set to true or false to reflect whether the module made a change or not. By default this is set to true.

  • +
  • $Ansible.Failed can be set to true if the script wants to return the failure back to the controller.

  • +
  • $Ansible.Tmpdir is the path to a temporary directory to use as a scratch location that is cleaned up after the module has finished.

  • +
  • $Ansible.Verbosity reveals Ansible’s verbosity level for this play. Allows the script to set VerbosePreference/DebugPreference based on verbosity. Added in 1.9.0.

  • +
  • Any host/console direct output like Write-Host or [Console]::WriteLine is not considered an output object, they are returned as a string in host_out and host_err.

  • +
  • Any output stream object is instead returned as a list in output. This is true not only for Write-Output and its built-in alias echo, but also for implicit output; i.e. Write-Output "foo" and "foo" give the same result.

  • +
  • The module will skip running the script when in check mode unless the script defines [CmdletBinding(SupportsShouldProcess]).

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_command

Executes a command on a remote Windows node.

+
+
ansible.windows.win_shell

Execute shell commands on target hosts.

+
+
+
+
+
+

Examples

+
- name: Run basic PowerShell script
+  ansible.windows.win_powershell:
+    script: |
+      echo "Hello World"
+
+- name: Run PowerShell script with parameters
+  ansible.windows.win_powershell:
+    script: |
+      [CmdletBinding()]
+      param (
+          [String]
+          $Path,
+
+          [Switch]
+          $Force
+      )
+
+      New-Item -Path $Path -ItemType Directory -Force:$Force
+    parameters:
+      Path: C:\temp
+      Force: true
+
+- name: Run PowerShell script that modifies the module changed result
+  ansible.windows.win_powershell:
+    script: |
+      if (Get-Service -Name test -ErrorAction SilentlyContinue) {
+          Remove-Service -Name test
+      }
+      else {
+          $Ansible.Changed = $false
+      }
+
+- name: Run PowerShell script in PowerShell 7
+  ansible.windows.win_powershell:
+    script: |
+      $PSVersionTable.PSVersion.Major
+    executable: pwsh.exe
+    arguments:
+      - -ExecutionPolicy
+      - ByPass
+  register: pwsh_output
+  failed_when:
+    - pwsh_output.output[0] != 7
+
+- name: Run code in check mode
+  ansible.windows.win_powershell:
+    script: |
+      [CmdletBinding(SupportsShouldProcess)]
+      param ()
+
+      # Use $Ansible to detect check mode
+      if ($Ansible.CheckMode) {
+          echo 'running in check mode'
+      }
+      else {
+          echo 'running in normal mode'
+      }
+
+      # Use builtin ShouldProcess (-WhatIf)
+      if ($PSCmdlet.ShouldProcess('target')) {
+          echo 'also running in normal mode'
+      }
+      else {
+          echo 'also running in check mode'
+      }
+  check_mode: true
+
+- name: Return a failure back to Ansible
+  ansible.windows.win_powershell:
+    script: |
+      if (Test-Path C:\bad.file) {
+          $Ansible.Failed = $true
+      }
+
+- name: Define when the script made a change or not
+  ansible.windows.win_powershell:
+    script: |
+      if ((Get-Item WSMan:\localhost\Service\Auth\Basic).Value -eq 'true') {
+          Set-Item WSMan:\localhost\Service\Auth\Basic -Value false
+      }
+      else {
+          $Ansible.Changed = $true
+      }
+
+- name: Define when to enable Verbose/Debug output
+  ansible.windows.win_powershell:
+    script: |
+      if ($Ansible.Verbosity -ge 3) {
+          $VerbosePreference = "Continue"
+      }
+      if ($Ansible.Verbosity -eq 5) {
+          $DebugPreference = "Continue"
+      }
+      Write-Output "Hello World!"
+      Write-Verbose "Hello World!"
+      Write-Debug "Hello World!"
+
+- name: Set sensitive parameter value as SecureString parameter
+  ansible.windows.win_powershell:
+    script: |
+      param(
+          [string]$Uri,
+          [SecureString]$Token
+      )
+
+      Invoke-WebRequest -Uri $Uri -Token $Token
+    parameters:
+      Uri: foo
+    sensitive_parameters:
+      - name: Token
+        value: '{{ sensitive_value }}'
+
+- name: Set credential parameter
+  ansible.windows.win_powershell:
+    script: |
+      param(
+          [string]$Uri,
+          [PSCredential]$Credential
+      )
+
+      Invoke-WebRequest -Uri $Uri -Credential $Credential
+    parameters:
+      Uri: foo
+    sensitive_parameters:
+      - name: Credential
+        username: CredUserName
+        password: '{{ sensitive_value }}'
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

debug

+

list / elements=string

+

A list of warning messages created by the script.

+

Debug messages only appear when $DebugPreference = 'Continue'.

+

Returned: always

+

Sample: ["debug record"]

+
+

error

+

list / elements=dictionary

+

A list of error records created by the script.

+

Returned: always

+
+

category_info

+

dictionary

+

More information about the error record.

+

Returned: success

+
+

activity

+

string

+

Description of the operation which encountered the error.

+

Returned: always

+

Sample: "Write-Error"

+
+

category

+

string

+

The category name of the error record.

+

Returned: always

+

Sample: "NotSpecified"

+
+

category_id

+

integer

+

The integer representation of the category.

+

Returned: always

+

Sample: 0

+
+

reason

+

string

+

Description of the error.

+

Returned: always

+

Sample: "WriteErrorException"

+
+

target_name

+

string

+

Description of the target object.

+

Can be an empty string if no target was specified.

+

Returned: always

+

Sample: "C:\\Windows"

+
+

target_type

+

string

+

Description of the type of the target object.

+

Can be an empty string if no target object was specified.

+

Returned: always

+

Sample: "String"

+
+

error_details

+

dictionary

+

Additional details about an ErrorRecord.

+

Can be null if there are not additional details.

+

Returned: success

+
+

message

+

string

+

Message for the error record.

+

Returned: always

+

Sample: "Specific error message"

+
+
+

string

+

Recommended action in the even that this error occurs.

+

This is empty unless the code which generates the error adds this explicitly.

+

Returned: always

+

Sample: "Delete file"

+
+

exception

+

dictionary

+

Details about the exception behind the error record.

+

Returned: success

+
+ +

string

+

A link to the help details for the exception.

+

May not be set as it’s dependent on whether the .NET exception class provides this info.

+

Returned: always

+

Sample: "http://docs.ansible.com/"

+
+

hresult

+

integer

+

The signed integer assigned to this exception.

+

May not be set as it’s dependent on whether the .NET exception class provides this info.

+

Returned: always

+

Sample: -1

+
+

inner_exception

+

dictionary

+

The inner exception details if there is one present.

+

The dict contains the same keys as a normal exception.

+

Returned: always

+
+

message

+

string

+

The exception message.

+

Returned: always

+

Sample: "The method ran into an error"

+
+

source

+

string

+

Name of the application or object that causes the error.

+

This may be an empty string as it’s dependent on the code that raises the exception.

+

Returned: always

+

Sample: "C:\\Windows"

+
+

type

+

string

+

The full .NET type of the Exception class.

+

Returned: always

+

Sample: "System.Exception"

+
+

fully_qualified_error_id

+

string

+

The unique identifier for the error condition

+

May be null if no id was specified when the record was created.

+

Returned: always

+

Sample: "ParameterBindingFailed"

+
+

output

+

string

+

The formatted error record message as typically seen in a PowerShell console.

+

Returned: always

+

Sample: "Write-Error \"error\" : error\n    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException\n    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException\n"

+
+

pipeline_iteration_info

+

list / elements=integer

+

The status of the pipeline when this record was created.

+

The values are 0 index based.

+

Each element entry represents the command index in a pipeline statement.

+

The value of each element represents the pipeline input idx in that command.

+

For Example 'C:\Windows', 'C:\temp' | Get-ChildItem | Get-Item, [1, 2, 9] represents an error occured with the 2nd output, 3rd, and 9th output of the 1st, 2nd, and 3rd command in that pipeline respectively.

+

Returned: always

+

Sample: [0, 0]

+
+

script_stack_trace

+

string

+

The script stack trace for the error record.

+

Returned: always

+

Sample: "at <ScriptBlock>, <No file>: line 1"

+
+

target_object

+

any

+

The object which the error occured.

+

May be null if no object was specified when the record was created.

+

Type type of this object depends on the error record itself.

+

If the value is a complex type, it will follow the depth limit specified.

+

Returned: always

+

Sample: "C:\\Windows"

+
+

host_err

+

string

+

The strings written to the host error output, typically the stderr.

+

This is not the same as objects sent to the error stream in PowerShell.

+

Returned: always

+

Sample: "Error 1\nError 2"

+
+

host_out

+

string

+

The strings written to the host output, typically the stdout.

+

This is not the same as objects sent to the output stream in PowerShell.

+

Returned: always

+

Sample: "Line 1\nLine 2"

+
+

information

+

list / elements=dictionary

+

A list of information records created by the script.

+

The information stream was only added in PowerShell v5, older versions will always have an empty list as a value.

+

Returned: always

+
+

message_data

+

complex

+

Message data associated with the record.

+

The value here can be of any type.

+

Returned: always

+

Sample: "information record"

+
+

source

+

string

+

The source of the record.

+

Returned: always

+

Sample: "Write-Information"

+
+

tags

+

list / elements=string

+

A list of tags associated with the record.

+

Returned: always

+

Sample: ["Host"]

+
+

time_generated

+

string

+

The time the record was generated.

+

This is the time in UTC as an ISO 8601 formatted string.

+

Returned: always

+

Sample: "2021-02-11T04:46:00.4694240Z"

+
+

output

+

list / elements=string

+

A list containing all the objects outputted by the script.

+

The list elements can be anything as it is based on what was ran.

+

Returned: always

+

Sample: ["output 1", 2, ["inner list"], {"key": "value"}, "None"]

+
+

result

+

complex

+

The values that were set by $Ansible.Result in the script.

+

Defaults to an empty dict but can be set to anything by the script.

+

Returned: always

+

Sample: {"key": "value", "other key": 1}

+
+

verbose

+

list / elements=string

+

A list of warning messages created by the script.

+

Verbose messages only appear when $VerbosePreference = 'Continue'.

+

Returned: always

+

Sample: ["verbose record"]

+
+

warning

+

list / elements=string

+

A list of warning messages created by the script.

+

Warning messages only appear when $WarningPreference = 'Continue'.

+

Returned: always

+

Sample: ["warning record"]

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_reboot_module.html b/tag/2.4.0/collections/ansible/windows/win_reboot_module.html new file mode 100644 index 00000000..dd7445f1 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_reboot_module.html @@ -0,0 +1,382 @@ + + + + + + + + ansible.windows.win_reboot module – Reboot a windows machine — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_reboot module – Reboot a windows machine

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_reboot.

+
+ +
+

Synopsis

+
    +
  • Unconditionally reboot a Windows machine, wait for it to go down, come back up, and respond to commands.

  • +
  • For non-Windows targets, use the ansible.builtin.reboot module instead.

  • +
+
+

Note

+

This module has a corresponding action plugin.

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

boot_time_command

+

string

+

Command to run that returns a unique string indicating the last time the system was booted.

+

Setting this to a command that has different output each time it is run will cause the task to fail.

+

Default: "(Get-CimInstance -ClassName Win32_OperatingSystem -Property LastBootUpTime).LastBootUpTime.ToFileTime()"

+
+
+

connect_timeout

+

aliases: connect_timeout_sec

+

float

+

Maximum seconds to wait for a single successful TCP connection to the WinRM endpoint before trying again.

+

Default: 5.0

+
+

msg

+

string

+

Message to display to users.

+

Default: "Reboot initiated by Ansible"

+
+
+

post_reboot_delay

+

aliases: post_reboot_delay_sec

+

float

+

Seconds to wait after the reboot command was successful before attempting to validate the system rebooted successfully.

+

This is useful if you want wait for something to settle despite your connection already working.

+

Default: 0.0

+
+
+

pre_reboot_delay

+

aliases: pre_reboot_delay_sec

+

float

+

Seconds to wait before reboot. Passed as a parameter to the reboot command.

+

The minimum version is 2 seconds and cannot be set lower.

+

Default: 2.0

+
+
+

reboot_timeout

+

aliases: reboot_timeout_sec

+

float

+

Maximum seconds to wait for machine to re-appear on the network and respond to a test command.

+

This timeout is evaluated separately for both reboot verification and test command success so maximum clock time is actually twice this value.

+

Default: 600.0

+
+

test_command

+

string

+

Command to expect success for to determine the machine is ready for management.

+

By default this test command is a custom one to detect when the Windows Logon screen is up and ready to accept credentials. Using a custom command will replace this behaviour and just run the command specified.

+
+
+
+

Notes

+
+

Note

+ +
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.reboot

The official documentation on the ansible.builtin.reboot module.

+
+
+
+
+
+

Examples

+
- name: Reboot the machine with all defaults
+  ansible.windows.win_reboot:
+
+- name: Reboot a slow machine that might have lots of updates to apply
+  ansible.windows.win_reboot:
+    reboot_timeout: 3600
+
+# Install a Windows feature and reboot if necessary
+- name: Install IIS Web-Server
+  ansible.windows.win_feature:
+    name: Web-Server
+  register: iis_install
+
+- name: Reboot when Web-Server feature requires it
+  ansible.windows.win_reboot:
+  when: iis_install.reboot_required
+
+# One way to ensure the system is reliable, is to set WinRM to a delayed startup
+- name: Ensure WinRM starts when the system has settled and is ready to work reliably
+  ansible.windows.win_service:
+    name: WinRM
+    start_mode: delayed
+
+# Additionally, you can add a delay before running the next task
+- name: Reboot a machine that takes time to settle after being booted
+  ansible.windows.win_reboot:
+    post_reboot_delay: 120
+
+# Or you can make win_reboot validate exactly what you need to work before running the next task
+- name: Validate that the netlogon service has started, before running the next task
+  ansible.windows.win_reboot:
+    test_command: 'exit (Get-Service -Name Netlogon).Status -ne "Running"'
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + +

Key

Description

+

elapsed

+

float

+

The number of seconds that elapsed waiting for the system to be rebooted.

+

Returned: always

+

Sample: 23.2

+
+

rebooted

+

boolean

+

True if the machine was rebooted.

+

Returned: always

+

Sample: true

+
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_reg_stat_module.html b/tag/2.4.0/collections/ansible/windows/win_reg_stat_module.html new file mode 100644 index 00000000..0792b830 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_reg_stat_module.html @@ -0,0 +1,360 @@ + + + + + + + + ansible.windows.win_reg_stat module – Get information about Windows registry keys — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_reg_stat module – Get information about Windows registry keys

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_reg_stat.

+
+ +
+

Synopsis

+
    +
  • Like ansible.windows.win_file, ansible.windows.win_reg_stat will return whether the key/property exists.

  • +
  • It also returns the sub keys and properties of the key specified.

  • +
  • If specifying a property name through property, it will return the information specific for that property.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + +

Parameter

Comments

+
+
+
+

name

+

aliases: entry, value, property

+

string

+

The registry property name to get information for, the return json will not include the sub_keys and properties entries for the key specified.

+

Set to an empty string to target the registry key’s (Default) property value.

+
+
+

path

+

aliases: key

+

string / required

+

The full registry key path including the hive to search for.

+
+
+
+

Notes

+
+

Note

+
    +
  • The properties return value will contain an empty string key "" that refers to the key’s Default value. If the value has not been set then this key is not returned.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_regedit

Add, change, or remove registry keys and values.

+
+
community.windows.win_regmerge

The official documentation on the community.windows.win_regmerge module.

+
+
+
+
+
+

Examples

+
- name: Obtain information about a registry key using short form
+  ansible.windows.win_reg_stat:
+    path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion
+  register: current_version
+
+- name: Obtain information about a registry key property
+  ansible.windows.win_reg_stat:
+    path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion
+    name: CommonFilesDir
+  register: common_files_dir
+
+- name: Obtain the registry key's (Default) property
+  ansible.windows.win_reg_stat:
+    path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion
+    name: ''
+  register: current_version_default
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

changed

+

boolean

+

Whether anything was changed.

+

Returned: always

+

Sample: true

+
+

exists

+

boolean

+

States whether the registry key/property exists.

+

Returned: success and path/property exists

+

Sample: true

+
+

properties

+

dictionary

+

A dictionary containing all the properties and their values in the registry key.

+

Returned: success, path exists and property not specified

+

Sample: {"": {"raw_value": "", "type": "REG_SZ", "value": ""}, "binary_property": {"raw_value": ["0x01", "0x16"], "type": "REG_BINARY", "value": [1, 22]}, "multi_string_property": {"raw_value": ["a", "b"], "type": "REG_MULTI_SZ", "value": ["a", "b"]}}

+
+

raw_value

+

string

+

Returns the raw value of the registry property, REG_EXPAND_SZ has no string expansion, REG_BINARY or REG_NONE is in hex 0x format. REG_NONE, this value is a hex string in the 0x format.

+

Returned: success, path/property exists and property specified

+

Sample: "%ProgramDir%\\\\Common Files"

+
+

sub_keys

+

list / elements=string

+

A list of all the sub keys of the key specified.

+

Returned: success, path exists and property not specified

+

Sample: ["AppHost", "Casting", "DateTime"]

+
+

type

+

string

+

The property type.

+

Returned: success, path/property exists and property specified

+

Sample: "REG_EXPAND_SZ"

+
+

value

+

string

+

The value of the property.

+

Returned: success, path/property exists and property specified

+

Sample: "C:\\\\Program Files\\\\Common Files"

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_regedit_module.html b/tag/2.4.0/collections/ansible/windows/win_regedit_module.html new file mode 100644 index 00000000..f9ebf441 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_regedit_module.html @@ -0,0 +1,461 @@ + + + + + + + + ansible.windows.win_regedit module – Add, change, or remove registry keys and values — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_regedit module – Add, change, or remove registry keys and values

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_regedit.

+
+ +
+

Synopsis

+ +
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

data

+

any

+

Value of the registry entry name in path.

+

If not specified then the value for the property will be null for the corresponding type.

+

Binary and None data should be expressed in a yaml byte array or as comma separated hex values.

+

An easy way to generate this is to run regedit.exe and use the export option to save the registry values to a file.

+

In the exported file, binary value will look like hex:be,ef,be,ef, the hex: prefix is optional.

+

DWORD and QWORD values should either be represented as a decimal number or a hex value.

+

Multistring values should be passed in as a list.

+

See the examples for more details on how to format this data.

+
+

delete_key

+

boolean

+

When state is ‘absent’ then this will delete the entire key.

+

If false then it will only clear out the ‘(Default)’ property for that key.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

hive

+

path

+

A path to a hive key like C:\Users\Default\NTUSER.DAT to load in the registry.

+

This hive is loaded under the HKLM:\ANSIBLE key which can then be used in name like any other path.

+

This can be used to load the default user profile registry hive or any other hive saved as a file.

+

Using this function requires the user to have the SeRestorePrivilege and SeBackupPrivilege privileges enabled.

+
+
+
+

name

+

aliases: entry, value

+

string

+

Name of the registry entry in the above path parameters.

+

If not provided, or empty then the ‘(Default)’ property for the key will be used.

+
+
+

path

+

aliases: key

+

string / required

+

Name of the registry path.

+

Should be in one of the following registry hives: HKCC, HKCR, HKCU, HKLM, HKU.

+
+

state

+

string

+

The state of the registry entry.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
+
+
+

type

+

aliases: datatype

+

string

+

The registry value data type.

+

Choices:

+
    +
  • "none"

  • +
  • "binary"

  • +
  • "dword"

  • +
  • "expandstring"

  • +
  • "multistring"

  • +
  • "string" ← (default)

  • +
  • "qword"

  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • Check-mode -C/--check and diff output -D/--diff are supported, so that you can test every change against the active configuration before applying changes.

  • +
  • Beware that some registry hives (HKEY_USERS in particular) do not allow to create new registry paths in the root folder.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_reg_stat

Get information about Windows registry keys.

+
+
community.windows.win_regmerge

The official documentation on the community.windows.win_regmerge module.

+
+
+
+
+
+

Examples

+
- name: Create registry path MyCompany
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+
+- name: Add or update registry path MyCompany, with entry 'hello', and containing 'world'
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    name: hello
+    data: world
+
+- name: Add or update registry path MyCompany, with dword entry 'hello', and containing 1337 as the decimal value
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    name: hello
+    data: 1337
+    type: dword
+
+- name: Add or update registry path MyCompany, with dword entry 'hello', and containing 0xff2500ae as the hex value
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    name: hello
+    data: 0xff2500ae
+    type: dword
+
+- name: Add or update registry path MyCompany, with binary entry 'hello', and containing binary data in hex-string format
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    name: hello
+    data: hex:be,ef,be,ef,be,ef,be,ef,be,ef
+    type: binary
+
+- name: Add or update registry path MyCompany, with binary entry 'hello', and containing binary data in yaml format
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    name: hello
+    data: [0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef]
+    type: binary
+
+- name: Add or update registry path MyCompany, with expand string entry 'hello'
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    name: hello
+    data: '%appdata%\local'
+    type: expandstring
+
+- name: Add or update registry path MyCompany, with multi string entry 'hello'
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    name: hello
+    data: ['hello', 'world']
+    type: multistring
+
+- name: Disable keyboard layout hotkey for all users (changes existing)
+  ansible.windows.win_regedit:
+    path: HKU:\.DEFAULT\Keyboard Layout\Toggle
+    name: Layout Hotkey
+    data: 3
+    type: dword
+
+- name: Disable language hotkey for current users (adds new)
+  ansible.windows.win_regedit:
+    path: HKCU:\Keyboard Layout\Toggle
+    name: Language Hotkey
+    data: 3
+    type: dword
+
+- name: Remove registry path MyCompany (including all entries it contains)
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    state: absent
+    delete_key: true
+
+- name: Clear the existing (Default) entry at path MyCompany
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    state: absent
+    delete_key: false
+
+- name: Remove entry 'hello' from registry path MyCompany
+  ansible.windows.win_regedit:
+    path: HKCU:\Software\MyCompany
+    name: hello
+    state: absent
+
+- name: Change default mouse trailing settings for new users
+  ansible.windows.win_regedit:
+    path: HKLM:\ANSIBLE\Control Panel\Mouse
+    name: MouseTrails
+    data: 10
+    type: string
+    state: present
+    hive: C:\Users\Default\NTUSER.dat
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + +

Key

Description

+

data_changed

+

boolean

+

Whether this invocation changed the data in the registry value.

+

Returned: success

+

Sample: false

+
+

data_type_changed

+

boolean

+

Whether this invocation changed the datatype of the registry value.

+

Returned: success

+

Sample: true

+
+
+

Authors

+
    +
  • Adam Keech (@smadam813)

  • +
  • Josh Ludwig (@joshludwig)

  • +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_service_info_module.html b/tag/2.4.0/collections/ansible/windows/win_service_info_module.html new file mode 100644 index 00000000..295dc602 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_service_info_module.html @@ -0,0 +1,664 @@ + + + + + + + + ansible.windows.win_service_info module – Gather information about Windows services — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_service_info module – Gather information about Windows services

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_service_info.

+
+ +
+

Synopsis

+
    +
  • Gather information about all or a specific installed Windows service(s).

  • +
+
+
+

Parameters

+ + + + + + + + + + + +

Parameter

Comments

+

name

+

string

+

If specified, this is used to match the name or display_name of the Windows service to get the info for.

+

Can be a wildcard to match multiple services but the wildcard will only be matched on the name of the service and not display_name.

+

If omitted then all services will returned.

+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_service

Manage and query Windows services.

+
+
+
+
+
+

Examples

+
- name: Get info for all installed services
+  ansible.windows.win_service_info:
+  register: service_info
+
+- name: Get info for a single service
+  ansible.windows.win_service_info:
+    name: WinRM
+  register: service_info
+
+- name: Get info for a service using its display name
+  ansible.windows.win_service_info:
+    name: Windows Remote Management (WS-Management)
+
+- name: Find all services that start with 'win'
+  ansible.windows.win_service_info:
+    name: win*
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

exists

+

boolean

+

Whether any services were found based on the criteria specified.

+

Returned: always

+

Sample: true

+
+

services

+

list / elements=dictionary

+

A list of service(s) that were found based on the criteria.

+

Will be an empty list if no services were found.

+

Returned: always

+
+

checkpoint

+

integer

+

A check-point value that the service increments periodically to report its progress.

+

Returned: success

+

Sample: 0

+
+

controls_accepted

+

list / elements=string

+

A list of controls that the service can accept.

+

Common controls are stop, pause_continue, shutdown.

+

Returned: success

+

Sample: ["stop", "shutdown"]

+
+

dependencies

+

list / elements=string

+

A list of services by their name that this service is dependent on.

+

Returned: success

+

Sample: ["HTTP", "RPCSS"]

+
+

dependency_of

+

list / elements=string

+

A list of services by their name that depend on this service.

+

Returned: success

+

Sample: ["upnphost", "WMPNetworkSvc"]

+
+

description

+

string

+

The description of the service.

+

Returned: success

+

Sample: "Example description of the Windows service."

+
+

desktop_interact

+

boolean

+

Whether the service can interact with the desktop, only valid for services running as SYSTEM.

+

Returned: success

+

Sample: false

+
+

display_name

+

string

+

The display name to be used by SCM to identify the service.

+

Returned: success

+

Sample: "Windows Remote Management (WS-Management)"

+
+

error_control

+

string

+

The action to take if a service fails to start.

+

Common values are critical, ignore, normal, severe.

+

Returned: success

+

Sample: "normal"

+
+

failure_action_on_non_crash_failure

+

boolean

+

Controls when failure actions are fired based on how the service was stopped.

+

Returned: success

+

Sample: false

+
+

failure_actions

+

list / elements=dictionary

+

A list of failure actions to run in the event of a failure.

+

Returned: success

+
+

delay_ms

+

integer

+

The time to wait, in milliseconds, before performing the specified action.

+

Returned: success

+

Sample: 120000

+
+

type

+

string

+

The action that will be performed.

+

Common values are none, reboot, restart, run_command.

+

Returned: success

+

Sample: "run_command"

+
+

failure_command

+

string

+

The command line that will be run when a run_command failure action is fired.

+

Returned: success

+

Sample: "runme.exe"

+
+

failure_reboot_msg

+

string

+

The message to be broadcast to server users before rebooting when a reboot failure action is fired.

+

Returned: success

+

Sample: "Service failed, rebooting host."

+
+

failure_reset_period_sec

+

integer

+

The time, in seconds, after which to reset the failure count to zero.

+

Returned: success

+

Sample: 86400

+
+

launch_protection

+

string

+

The protection type of the service.

+

Common values are none, windows, windows_light, or antimalware_light.

+

Returned: success

+

Sample: "none"

+
+

load_order_group

+

string

+

The name of the load ordering group to which the service belongs.

+

Will be an empty string if it does not belong to any group.

+

Returned: success

+

Sample: "My group"

+
+

name

+

string

+

The name of the service.

+

Returned: success

+

Sample: "WinRM"

+
+

path

+

string

+

The path to the service binary and any arguments used when starting the service.

+

The binary part can be quoted to ensure any spaces in path are not treated as arguments.

+

Returned: success

+

Sample: "C:\\Windows\\System32\\svchost.exe -k netsvcs -p"

+
+

pre_shutdown_timeout_ms

+

integer

+

The preshutdown timeout out value in milliseconds.

+

Returned: success

+

Sample: 10000

+
+

preferred_node

+

integer

+

The node number for the preferred node.

+

This will be null if the Windows host has no NUMA configuration.

+

Returned: success

+

Sample: 0

+
+

process_id

+

integer

+

The process identifier of the running service.

+

Returned: success

+

Sample: 5135

+
+

required_privileges

+

list / elements=string

+

A list of privileges that the service requires and will run with

+

Returned: success

+

Sample: ["SeBackupPrivilege", "SeRestorePrivilege"]

+
+

service_exit_code

+

integer

+

A service-specific error code that is set while the service is starting or stopping.

+

Returned: success

+

Sample: 0

+
+

service_flags

+

list / elements=string

+

Shows more information about the behaviour of a running service.

+

Currently the only flag that can be set is runs_in_system_process.

+

Returned: success

+

Sample: ["runs_in_system_process"]

+
+

service_type

+

string

+

The type of service.

+

Common types are win32_own_process, win32_share_process, user_own_process, user_share_process, kernel_driver.

+

Returned: success

+

Sample: "win32_own_process"

+
+

sid_info

+

string

+

The behavior of how the service’s access token is generated and how to add the service SID to the token.

+

Common values are none, restricted, or unrestricted.

+

Returned: success

+

Sample: "none"

+
+

start_mode

+

string

+

When the service is set to start.

+

Common values are auto, manual, disabled, delayed.

+

Returned: success

+

Sample: "auto"

+
+

state

+

string

+

The current running state of the service.

+

Common values are stopped, start_pending, stop_pending, started, continue_pending, pause_pending, paused.

+

Returned: success

+

Sample: "started"

+
+

triggers

+

list / elements=dictionary

+

A list of triggers defined for the service.

+

Returned: success

+
+

action

+

string

+

The action to perform once triggered, can be start_service or stop_service.

+

Returned: success

+

Sample: "start_service"

+
+

data_items

+

list / elements=dictionary

+

A list of trigger data items that contain trigger specific data.

+

A trigger can contain 0 or multiple data items.

+

Returned: success

+
+

data

+

complex

+

The trigger data item value.

+

Can be a string, list of string, int, or base64 string of binary data.

+

Returned: success

+

Sample: "named pipe"

+
+

type

+

string

+

The type of data for the trigger.

+

Common values are string, binary, level, keyword_any, or keyword_all.

+

Returned: success

+

Sample: "string"

+
+

sub_type

+

string

+

The trigger event sub type that is specific to each type.

+

Common values are named_pipe_event, domain_join, domain_leave, firewall_port_open, and others.

+

Returned: success

+
+

sub_type_guid

+

string

+

The guid which represents the trigger sub type.

+

Returned: success

+

Sample: "1ce20aba-9851-4421-9430-1ddeb766e809"

+
+

type

+

string

+

The trigger event type.

+

Common values are custom, rpc_interface_event, domain_join, group_policy, and others.

+

Returned: success

+

Sample: "domain_join"

+
+

username

+

string

+

The username used to run the service.

+

Can be null for user services and certain driver services.

+

Returned: success

+

Sample: "NT AUTHORITY\\SYSTEM"

+
+

wait_hint_ms

+

integer

+

The estimated time in milliseconds required for a pending start, stop, pause,or continue operations.

+

Returned: success

+

Sample: 0

+
+

win32_exitcode

+

integer

+

The error code returned from the service binary once it has stopped.

+

When set to 1066 then a service specific error is returned on service_exit_code.

+

Returned: success

+

Sample: 0

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_service_module.html b/tag/2.4.0/collections/ansible/windows/win_service_module.html new file mode 100644 index 00000000..e1ba2727 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_service_module.html @@ -0,0 +1,844 @@ + + + + + + + + ansible.windows.win_service module – Manage and query Windows services — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_service module – Manage and query Windows services

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_service.

+
+ +
+

Synopsis

+ +
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

dependencies

+

list / elements=string

+

A list of service dependencies to set for this particular service.

+

This should be a list of service names and not the display name of the service.

+

This works by dependency_action to either add/remove or set the services in this list.

+
+

dependency_action

+

string

+

Used in conjunction with dependency to either add the dependencies to the existing service dependencies.

+

Remove the dependencies to the existing dependencies.

+

Set the dependencies to only the values in the list replacing the existing dependencies.

+

Choices:

+
    +
  • "add"

  • +
  • "remove"

  • +
  • "set" ← (default)

  • +
+
+

description

+

string

+

The description to set for the service.

+
+

desktop_interact

+

boolean

+

Whether to allow the service user to interact with the desktop.

+

This can only be set to true when using the LocalSystem username.

+

This can only be set to true when the service_type is win32_own_process or win32_share_process.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

display_name

+

string

+

The display name to set for the service.

+
+

error_control

+

string

+

The severity of the error and action token if the service fails to start.

+

A new service defaults to normal.

+

critical will log the error and restart the system with the last-known good configuration. If the startup fails on reboot then the system will fail to operate.

+

ignore ignores the error.

+

normal logs the error in the event log but continues.

+

severe is like critical but a failure on the last-known good configuration reboot startup will be ignored.

+

Choices:

+
    +
  • "critical"

  • +
  • "ignore"

  • +
  • "normal"

  • +
  • "severe"

  • +
+
+

failure_actions

+

list / elements=dictionary

+

A list of failure actions the service controller should take on each failure of a service.

+

The service manager will run the actions from first to last defined until the service starts. If failure_reset_period_sec has been exceeded then the failure actions will restart from the beginning.

+

If all actions have been performed the the service manager will repeat the last service defined.

+

The existing actions will be replaced with the list defined in the task if there is a mismatch with any of them.

+

Set to an empty list to delete all failure actions on a service otherwise an omitted or null value preserves the existing actions on the service.

+
+
+

delay_ms

+

aliases: delay

+

any

+

The time to wait, in milliseconds, before performing the specified action.

+

Default: 0

+
+

type

+

string / required

+

The action to be performed.

+

none will perform no action, when used this should only be set as the last action.

+

reboot will reboot the host, when used this should only be set as the last action as the reboot will reset the action list back to the beginning.

+

restart will restart the service.

+

run_command will run the command specified by failure_command.

+

Choices:

+
    +
  • "none"

  • +
  • "reboot"

  • +
  • "restart"

  • +
  • "run_command"

  • +
+
+

failure_actions_on_non_crash_failure

+

boolean

+

Controls whether failure actions will be performed on non crash failures or not.

+

Choices:

+
    +
  • false

  • +
  • true

  • +
+
+

failure_command

+

string

+

The command to run for a run_command failure action.

+

Set to an empty string to remove the command.

+
+

failure_reboot_msg

+

string

+

The message to be broadcast to users logged on the host for a reboot failure action.

+

Set to an empty string to remove the message.

+
+
+

failure_reset_period_sec

+

aliases: failure_reset_period

+

any

+

The time in seconds after which the failure action list resets back to the start of the list if there are no failures.

+

To set this value, failure_actions must have at least 1 action present.

+

Specify '0xFFFFFFFF' to set an infinite reset period.

+
+

force_dependent_services

+

boolean

+

If true, stopping or restarting a service with dependent services will force the dependent services to stop or restart also.

+

If false, stopping or restarting a service with dependent services may fail.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

load_order_group

+

string

+

The name of the load ordering group of which this service is a member.

+

Specify an empty string to remove the existing load order group of a service.

+
+

name

+

string / required

+

Name of the service.

+

If only the name parameter is specified, the module will report on whether the service exists or not without making any changes.

+
+

password

+

string

+

The password to set the service to start as.

+

This and the username argument should be supplied together when using a local or domain account.

+

If omitted then the password will continue to use the existing value password set.

+

If specifying LocalSystem, NetworkService, LocalService, the NT SERVICE, or a gMSA this field can be omitted as those accounts have no password.

+
+

path

+

string

+

The path to the executable to set for the service.

+
+
+

pre_shutdown_timeout_ms

+

aliases: pre_shutdown_timeout

+

any

+

The time in which the service manager waits after sending a preshutdown notification to the service until it proceeds to continue with the other shutdown actions.

+
+

required_privileges

+

list / elements=string

+

A list of privileges the service must have when starting up.

+

When set the service will only have the privileges specified on its access token.

+

The username of the service must already have the privileges assigned.

+

The existing privileges will be replace with the list defined in the task if there is a mismatch with any of them.

+

Set to an empty list to remove all required privileges, otherwise an omitted or null value will keep the existing privileges.

+

See privilege text constants for a list of privilege constants that can be used.

+
+

service_type

+

string

+

The type of service.

+

The default type of a new service is win32_own_process.

+

desktop_interact can only be set if the service type is win32_own_process or win32_share_process.

+

Choices:

+
    +
  • "user_own_process"

  • +
  • "user_share_process"

  • +
  • "win32_own_process"

  • +
  • "win32_share_process"

  • +
+
+

sid_info

+

string

+

Used to define the behaviour of the service’s access token groups.

+

none will not add any groups to the token.

+

restricted will add the NT SERVICE\<service name> SID to the access token’s groups and restricted groups.

+

unrestricted will add the NT SERVICE\<service name> SID to the access token’s groups.

+

Choices:

+
    +
  • "none"

  • +
  • "restricted"

  • +
  • "unrestricted"

  • +
+
+

start_mode

+

string

+

Set the startup type for the service.

+

A newly created service will default to auto.

+

Choices:

+
    +
  • "auto"

  • +
  • "delayed"

  • +
  • "disabled"

  • +
  • "manual"

  • +
+
+

state

+

string

+

The desired state of the service.

+

started/stopped/absent/paused are idempotent actions that will not run commands unless necessary.

+

restarted will always bounce the service.

+

Only services that support the paused state can be paused, you can check the return value can_pause_and_continue.

+

You can only pause a service that is already started.

+

A newly created service will default to stopped.

+

Choices:

+
    +
  • "absent"

  • +
  • "paused"

  • +
  • "started"

  • +
  • "stopped"

  • +
  • "restarted"

  • +
+
+

update_password

+

string

+

When set to always and password is set, the module will always report a change and set the password.

+

Set to on_create to only set the password if the module needs to create the service.

+

If username was specified and the service changed to that username then password will also be changed if specified.

+

The current default is on_create but this behaviour may change in the future, it is best to be explicit here.

+

Choices:

+
    +
  • "always"

  • +
  • "on_create"

  • +
+
+

username

+

string

+

The username to set the service to start as.

+

Can also be set to LocalSystem or SYSTEM to use the SYSTEM account.

+

A newly created service will default to LocalSystem.

+

If using a custom user account, it must have the SeServiceLogonRight granted to be able to start up. You can use the ansible.windows.win_user_right module to grant this user right for you.

+

Set to NT SERVICE\service name to run as the NT SERVICE account for that service.

+

This can also be a gMSA in the form DOMAIN\gMSA$.

+
+
+
+

Notes

+
+

Note

+
    +
  • This module historically returning information about the service in its return values. These should be avoided in favour of the ansible.windows.win_service_info module.

  • +
  • Most of the options in this module are non-driver services that you can view in SCManager. While you can edit driver services, not all functionality may be available.

  • +
  • The user running the module must have the following access rights on the service to be able to use it with this module - SERVICE_CHANGE_CONFIG, SERVICE_ENUMERATE_DEPENDENTS, SERVICE_QUERY_CONFIG, SERVICE_QUERY_STATUS.

  • +
  • Changing the state or removing the service will also require futher rights depending on what needs to be done.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.service

The official documentation on the ansible.builtin.service module.

+
+
community.windows.win_nssm

The official documentation on the community.windows.win_nssm module.

+
+
ansible.windows.win_service_info

Gather information about Windows services.

+
+
ansible.windows.win_user_right

Manage Windows User Rights.

+
+
+
+
+
+

Examples

+
- name: Restart a service
+  ansible.windows.win_service:
+    name: spooler
+    state: restarted
+
+- name: Set service startup mode to auto and ensure it is started
+  ansible.windows.win_service:
+    name: spooler
+    start_mode: auto
+    state: started
+
+- name: Pause a service
+  ansible.windows.win_service:
+    name: Netlogon
+    state: paused
+
+- name: Ensure that WinRM is started when the system has settled
+  ansible.windows.win_service:
+    name: WinRM
+    start_mode: delayed
+
+# A new service will also default to the following values:
+# - username: LocalSystem
+# - state: stopped
+# - start_mode: auto
+- name: Create a new service
+  ansible.windows.win_service:
+    name: service name
+    path: C:\temp\test.exe
+
+- name: Create a new service with extra details
+  ansible.windows.win_service:
+    name: service name
+    path: C:\temp\test.exe
+    display_name: Service Name
+    description: A test service description
+
+- name: Remove a service
+  ansible.windows.win_service:
+    name: service name
+    state: absent
+
+# This is required to be set for non-service accounts that need to run as a service
+- name: Grant domain account the SeServiceLogonRight user right
+  ansible.windows.win_user_right:
+    name: SeServiceLogonRight
+    users:
+      - DOMAIN\User
+    action: add
+
+- name: Set the log on user to a domain account
+  ansible.windows.win_service:
+    name: service name
+    state: restarted
+    username: DOMAIN\User
+    password: Password
+
+- name: Set the log on user to a local account
+  ansible.windows.win_service:
+    name: service name
+    state: restarted
+    username: .\Administrator
+    password: Password
+
+- name: Set the log on user to Local System
+  ansible.windows.win_service:
+    name: service name
+    state: restarted
+    username: SYSTEM
+
+- name: Set the log on user to Local System and allow it to interact with the desktop
+  ansible.windows.win_service:
+    name: service name
+    state: restarted
+    username: SYSTEM
+    desktop_interact: true
+
+- name: Set the log on user to Network Service
+  ansible.windows.win_service:
+    name: service name
+    state: restarted
+    username: NT AUTHORITY\NetworkService
+
+- name: Set the log on user to Local Service
+  ansible.windows.win_service:
+    name: service name
+    state: restarted
+    username: NT AUTHORITY\LocalService
+
+- name: Set the log on user as the services' virtual account
+  ansible.windows.win_service:
+    name: service name
+    username: NT SERVICE\service name
+
+- name: Set the log on user as a gMSA
+  ansible.windows.win_service:
+    name: service name
+    username: DOMAIN\gMSA$  # The end $ is important and should be set for all gMSA
+
+- name: Set dependencies to ones only in the list
+  ansible.windows.win_service:
+    name: service name
+    dependencies: [service1, service2]
+
+- name: Add dependencies to existing dependencies
+  ansible.windows.win_service:
+    name: service name
+    dependencies: [service1, service2]
+    dependency_action: add
+
+- name: Remove dependencies from existing dependencies
+  ansible.windows.win_service:
+    name: service name
+    dependencies:
+      - service1
+      - service2
+    dependency_action: remove
+
+- name: Set required privileges for a service
+  ansible.windows.win_service:
+    name: service name
+    username: NT SERVICE\LocalService
+    required_privileges:
+      - SeBackupPrivilege
+      - SeRestorePrivilege
+
+- name: Remove all required privileges for a service
+  ansible.windows.win_service:
+    name: service name
+    username: NT SERVICE\LocalService
+    required_privileges: []
+
+- name: Set failure actions for a service with no reset period
+  ansible.windows.win_service:
+    name: service name
+    failure_actions:
+      - type: restart
+      - type: run_command
+        delay_ms: 1000
+      - type: restart
+        delay_ms: 5000
+      - type: reboot
+    failure_command: C:\Windows\System32\cmd.exe /c mkdir C:\temp
+    failure_reboot_msg: Restarting host because service name has failed
+    failure_reset_period_sec: '0xFFFFFFFF'
+
+- name: Set only 1 failure action without a repeat of the last action
+  ansible.windows.win_service:
+    name: service name
+    failure_actions:
+      - type: restart
+        delay_ms: 5000
+      - type: none
+
+- name: Remove failure action information
+  ansible.windows.win_service:
+    name: service name
+    failure_actions: []
+    failure_command: ''  # removes the existing command
+    failure_reboot_msg: ''  # removes the existing reboot msg
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

can_pause_and_continue

+

boolean

+

Whether the service can be paused and unpaused.

+

Returned: success and service exists

+

Sample: true

+
+

depended_by

+

list / elements=string

+

A list of services that depend on this service.

+

Returned: success and service exists

+

Sample: ["False"]

+
+

dependencies

+

list / elements=string

+

A list of services that is depended by this service.

+

Returned: success and service exists

+

Sample: ["False"]

+
+

description

+

string

+

The description of the service.

+

Returned: success and service exists

+

Sample: "Manages communication between system components."

+
+

desktop_interact

+

boolean

+

Whether the current user is allowed to interact with the desktop.

+

Returned: success and service exists

+

Sample: false

+
+

display_name

+

string

+

The display name of the installed service.

+

Returned: success and service exists

+

Sample: "CoreMessaging"

+
+

exists

+

boolean

+

Whether the service exists or not.

+

Returned: success

+

Sample: true

+
+

name

+

string

+

The service name or id of the service.

+

Returned: success and service exists

+

Sample: "CoreMessagingRegistrar"

+
+

path

+

string

+

The path to the service executable.

+

Returned: success and service exists

+

Sample: "C:\\Windows\\system32\\svchost.exe -k LocalServiceNoNetwork"

+
+

start_mode

+

string

+

The startup type of the service.

+

Returned: success and service exists

+

Sample: "manual"

+
+

state

+

string

+

The current running status of the service.

+

Returned: success and service exists

+

Sample: "stopped"

+
+

username

+

string

+

The username that runs the service.

+

Returned: success and service exists

+

Sample: "LocalSystem"

+
+
+

Authors

+
    +
  • Chris Hoffman (@chrishoffman)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_share_module.html b/tag/2.4.0/collections/ansible/windows/win_share_module.html new file mode 100644 index 00000000..c7dd2fd1 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_share_module.html @@ -0,0 +1,413 @@ + + + + + + + + ansible.windows.win_share module – Manage Windows shares — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_share module – Manage Windows shares

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows. +You need further requirements to be able to use this module, +see Requirements for details.

+

To use it in a playbook, specify: ansible.windows.win_share.

+
+ +
+

Synopsis

+
    +
  • Add, modify or remove Windows share and set share permissions.

  • +
+
+
+

Requirements

+

The below requirements are needed on the host that executes this module.

+
    +
  • As this module used newer cmdlets like New-SmbShare this can only run on Windows 8 / Windows 2012 or newer.

  • +
  • This is due to the reliance on the WMI provider MSFT_SmbShare https://msdn.microsoft.com/en-us/library/hh830471 which was only added with these Windows releases.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

caching_mode

+

string

+

Set the CachingMode for this share.

+

Choices:

+
    +
  • "BranchCache"

  • +
  • "Documents"

  • +
  • "Manual" ← (default)

  • +
  • "None"

  • +
  • "Programs"

  • +
  • "Unknown"

  • +
+
+

change

+

string

+

Specify user list that should get read and write access on share, separated by comma.

+
+

deny

+

string

+

Specify user list that should get no access, regardless of implied access on share, separated by comma.

+
+

description

+

string

+

Share description.

+
+

encrypt

+

boolean

+

Sets whether to encrypt the traffic to the share or not.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

full

+

string

+

Specify user list that should get full access on share, separated by comma.

+
+

list

+

boolean

+

Specify whether to allow or deny file listing, in case user has no permission on share. Also known as Access-Based Enumeration.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

name

+

string / required

+

Share name.

+
+

path

+

path / required

+

Share directory.

+
+

read

+

string

+

Specify user list that should get read access on share, separated by comma.

+
+

rule_action

+

string

+

Whether to add or set (replace) access control entries.

+

Choices:

+
    +
  • "set" ← (default)

  • +
  • "add"

  • +
+
+

scope_name

+

string

+

added in ansible.windows 2.2.0

+

Specifies the scope name of the share. For use with Windows Server failover cluster file server resources.

+

When defined, path must be located on a cluster shared volume/disk.

+
+

state

+

string

+

Specify whether to add present or remove absent the specified share.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
+
+
+
+

Examples

+
- name: Add secret share
+  ansible.windows.win_share:
+    name: internal
+    description: top secret share
+    path: C:\shares\internal
+    list: false
+    full: Administrators,CEO
+    read: HR-Global
+    deny: HR-External
+
+- name: Add public company share
+  ansible.windows.win_share:
+    name: company
+    description: top secret share
+    path: C:\shares\company
+    list: true
+    full: Administrators,CEO
+    read: Global
+
+- name: Add failover cluster role share
+  ansible.windows.win_share:
+    name: backups
+    scope_name: FCMSSQL01
+    description: SQL Backups
+    path: E:\sqlbackup
+    list: true
+    full: svc.mssql
+    read: Global
+
+- name: Remove previously added share
+  ansible.windows.win_share:
+    name: internal
+    state: absent
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

actions

+

list / elements=string

+

A list of action cmdlets that were run by the module.

+

Returned: success

+

Sample: ["New-SmbShare -Name share -Path C:\\temp"]

+
+
+

Authors

+
    +
  • Hans-Joachim Kliemeck (@h0nIg)

  • +
  • David Baumann (@daBONDi)

  • +
  • Shachaf Goldstein (@Shachaf92)

  • +
  • Joe Zollo (@zollo)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_shell_module.html b/tag/2.4.0/collections/ansible/windows/win_shell_module.html new file mode 100644 index 00000000..9e3f728d --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_shell_module.html @@ -0,0 +1,454 @@ + + + + + + + + ansible.windows.win_shell module – Execute shell commands on target hosts — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_shell module – Execute shell commands on target hosts

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_shell.

+
+ +
+

Synopsis

+ +
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

chdir

+

path

+

Set the specified path as the current working directory before executing a command

+
+

creates

+

path

+

A path or path filter pattern; when the referenced path exists on the target host, the task will be skipped.

+
+

executable

+

path

+

Change the shell used to execute the command (eg, cmd).

+

The target shell must accept a /c parameter followed by the raw command line to be executed.

+
+

free_form

+

string / required

+

The ansible.windows.win_shell module takes a free form command to run.

+

There is no parameter actually named ‘free form’. See the examples!

+
+

no_profile

+

boolean

+

Do not load the user profile before running a command. This is only valid when using PowerShell as the executable.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

output_encoding_override

+

string

+

This option overrides the encoding of stdout/stderr output.

+

You can use this option when you need to run a command which ignore the console’s codepage.

+

You should only need to use this option in very rare circumstances.

+

This value can be any valid encoding Name based on the output of [System.Text.Encoding]::GetEncodings(). See https://docs.microsoft.com/dotnet/api/system.text.encoding.getencodings.

+
+

removes

+

path

+

A path or path filter pattern; when the referenced path does not exist on the target host, the task will be skipped.

+
+

stdin

+

string

+

Set the stdin of the command directly to the specified value.

+
+
+
+

Notes

+
+

Note

+
    +
  • If you want to run an executable securely and predictably, it may be better to use the ansible.windows.win_command module instead. Best practices when writing playbooks will follow the trend of using ansible.windows.win_command unless win_shell is explicitly required. When running ad-hoc commands, use your best judgement.

  • +
  • WinRM will not return from a command execution until all child processes created have exited. Thus, it is not possible to use ansible.windows.win_shell to spawn long-running child or background processes. Consider creating a Windows service for managing background processes. - Consider using ansible.windows.win_powershell if you want to capture the output from the PowerShell script as structured objects.

  • +
+
+
+
+

See Also

+
+

See also

+
+
community.windows.psexec

The official documentation on the community.windows.psexec module.

+
+
ansible.builtin.raw

The official documentation on the ansible.builtin.raw module.

+
+
ansible.builtin.script

The official documentation on the ansible.builtin.script module.

+
+
ansible.builtin.shell

The official documentation on the ansible.builtin.shell module.

+
+
ansible.windows.win_command

Executes a command on a remote Windows node.

+
+
ansible.windows.win_powershell

Run PowerShell scripts.

+
+
community.windows.win_psexec

The official documentation on the community.windows.win_psexec module.

+
+
+
+
+
+

Examples

+
- name: Execute a command in the remote shell, stdout goes to the specified file on the remote
+  ansible.windows.win_shell: C:\somescript.ps1 >> C:\somelog.txt
+
+- name: Change the working directory to somedir/ before executing the command
+  ansible.windows.win_shell: C:\somescript.ps1 >> C:\somelog.txt
+  args:
+    chdir: C:\somedir
+
+- name: Run a command with an idempotent check on what it creates, will only run when somedir/somelog.txt does not exist
+  ansible.windows.win_shell: C:\somescript.ps1 >> C:\somelog.txt
+  args:
+    chdir: C:\somedir
+    creates: C:\somelog.txt
+
+- name: Run a command under a non-Powershell interpreter (cmd in this case)
+  ansible.windows.win_shell: echo %HOMEDIR%
+  args:
+    executable: cmd
+  register: homedir_out
+
+- name: Run multi-lined shell commands
+  ansible.windows.win_shell: |
+    $value = Test-Path -Path C:\temp
+    if ($value) {
+        Remove-Item -Path C:\temp -Force
+    }
+    New-Item -Path C:\temp -ItemType Directory
+
+- name: Retrieve the input based on stdin
+  ansible.windows.win_shell: '$string = [Console]::In.ReadToEnd(); Write-Output $string.Trim()'
+  args:
+    stdin: Input message
+
+- name: Run a PowerShell script with -NoProfile
+  ansible.windows.win_shell: C:\somescript.ps1
+  args:
+    no_profile: true
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

cmd

+

string

+

The command executed by the task.

+

Returned: always

+

Sample: "rabbitmqctl join_cluster rabbit@main"

+
+

delta

+

string

+

The command execution delta time.

+

Returned: always

+

Sample: "0:00:00.325771"

+
+

end

+

string

+

The command execution end time.

+

Returned: always

+

Sample: "2016-02-25 09:18:26.755339"

+
+

msg

+

boolean

+

Changed.

+

Returned: always

+

Sample: true

+
+

rc

+

integer

+

The command return code (0 means success).

+

Returned: always

+

Sample: 0

+
+

start

+

string

+

The command execution start time.

+

Returned: always

+

Sample: "2016-02-25 09:18:26.429568"

+
+

stderr

+

string

+

The command standard error.

+

Returned: always

+

Sample: "ls: cannot access foo: No such file or directory"

+
+

stdout

+

string

+

The command standard output.

+

Returned: always

+

Sample: "Clustering node rabbit@slave1 with rabbit@main ..."

+
+

stdout_lines

+

list / elements=string

+

The command standard output split in lines.

+

Returned: always

+

Sample: ["u'Clustering node rabbit@slave1 with rabbit@main ...'"]

+
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_stat_module.html b/tag/2.4.0/collections/ansible/windows/win_stat_module.html new file mode 100644 index 00000000..c24f3495 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_stat_module.html @@ -0,0 +1,588 @@ + + + + + + + + ansible.windows.win_stat module – Get information about Windows files — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_stat module – Get information about Windows files

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_stat.

+
+ +
+

Synopsis

+
    +
  • Returns information about a Windows file.

  • +
  • For non-Windows targets, use the ansible.builtin.stat module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

checksum_algorithm

+

string

+

Algorithm to determine checksum of file.

+

Will throw an error if the host is unable to use specified algorithm.

+

Choices:

+
    +
  • "md5"

  • +
  • "sha1" ← (default)

  • +
  • "sha256"

  • +
  • "sha384"

  • +
  • "sha512"

  • +
+
+

follow

+

boolean

+

Whether to follow symlinks or junction points.

+

In the case of path pointing to another link, then that will be followed until no more links are found.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

get_checksum

+

boolean

+

Whether to return a checksum of the file (default sha1)

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

get_size

+

boolean

+

added in ansible.windows 1.11.0

+

Whether to return the size of a file or directory.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+
+
+

path

+

aliases: dest, name

+

path / required

+

The full path of the file/object to get the facts of; both forward and back slashes are accepted.

+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.stat

The official documentation on the ansible.builtin.stat module.

+
+
ansible.windows.win_acl

Set file/directory/registry/certificate permissions for a system user or group.

+
+
ansible.windows.win_file

Creates, touches or removes files or directories.

+
+
ansible.windows.win_owner

Set owner.

+
+
+
+
+
+

Examples

+
- name: Obtain information about a file
+  ansible.windows.win_stat:
+    path: C:\foo.ini
+  register: file_info
+
+- name: Obtain information about a folder
+  ansible.windows.win_stat:
+    path: C:\bar
+  register: folder_info
+
+- name: Get MD5 checksum of a file
+  ansible.windows.win_stat:
+    path: C:\foo.ini
+    get_checksum: true
+    checksum_algorithm: md5
+  register: md5_checksum
+
+- debug:
+    var: md5_checksum.stat.checksum
+
+- name: Get SHA1 checksum of file
+  ansible.windows.win_stat:
+    path: C:\foo.ini
+    get_checksum: true
+  register: sha1_checksum
+
+- debug:
+    var: sha1_checksum.stat.checksum
+
+- name: Get SHA256 checksum of file
+  ansible.windows.win_stat:
+    path: C:\foo.ini
+    get_checksum: true
+    checksum_algorithm: sha256
+  register: sha256_checksum
+
+- debug:
+    var: sha256_checksum.stat.checksum
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

changed

+

boolean

+

Whether anything was changed

+

Returned: always

+

Sample: true

+
+

stat

+

complex

+

dictionary containing all the stat data

+

Returned: success

+
+

attributes

+

string

+

Attributes of the file at path in raw form.

+

Returned: success, path exists

+

Sample: "Archive, Hidden"

+
+

checksum

+

string

+

The checksum of a file based on checksum_algorithm specified.

+

Returned: success, path exist, path is a file, get_checksum == True checksum_algorithm specified is supported

+

Sample: "09cb79e8fc7453c84a07f644e441fd81623b7f98"

+
+

creationtime

+

float

+

The create time of the file represented in seconds since epoch.

+

Returned: success, path exists

+

Sample: 1477984205.15

+
+

exists

+

boolean

+

If the path exists or not.

+

Returned: success

+

Sample: true

+
+

extension

+

string

+

The extension of the file at path.

+

Returned: success, path exists, path is a file

+

Sample: ".ps1"

+
+

filename

+

string

+

The name of the file (without path).

+

Returned: success, path exists, path is a file

+

Sample: "foo.ini"

+
+

hlnk_targets

+

list / elements=string

+

List of other files pointing to the same file (hard links), excludes the current file.

+

Returned: success, path exists

+

Sample: ["C:\\temp\\file.txt", "C:\\Windows\\update.log"]

+
+

isarchive

+

boolean

+

If the path is ready for archiving or not.

+

Returned: success, path exists

+

Sample: true

+
+

isdir

+

boolean

+

If the path is a directory or not.

+

Returned: success, path exists

+

Sample: true

+
+

ishidden

+

boolean

+

If the path is hidden or not.

+

Returned: success, path exists

+

Sample: true

+
+

isjunction

+

boolean

+

If the path is a junction point or not.

+

Returned: success, path exists

+

Sample: true

+
+

islnk

+

boolean

+

If the path is a symbolic link or not.

+

Returned: success, path exists

+

Sample: true

+
+

isreadonly

+

boolean

+

If the path is read only or not.

+

Returned: success, path exists

+

Sample: true

+
+

isreg

+

boolean

+

If the path is a regular file.

+

Returned: success, path exists

+

Sample: true

+
+

isshared

+

boolean

+

If the path is shared or not.

+

Returned: success, path exists

+

Sample: true

+
+

lastaccesstime

+

float

+

The last access time of the file represented in seconds since epoch.

+

Returned: success, path exists

+

Sample: 1477984205.15

+
+

lastwritetime

+

float

+

The last modification time of the file represented in seconds since epoch.

+

Returned: success, path exists

+

Sample: 1477984205.15

+
+

lnk_source

+

string

+

Target of the symlink normalized for the remote filesystem.

+

Returned: success, path exists and the path is a symbolic link or junction point

+

Sample: "C:\\temp\\link"

+
+

lnk_target

+

string

+

Target of the symlink. Note that relative paths remain relative.

+

Returned: success, path exists and the path is a symbolic link or junction point

+

Sample: "..\\link"

+
+ +

integer

+

Number of links to the file (hard links).

+

Returned: success, path exists

+

Sample: 1

+
+

owner

+

string

+

The owner of the file.

+

Returned: success, path exists

+

Sample: "BUILTIN\\Administrators"

+
+

path

+

string

+

The full absolute path to the file.

+

Returned: success, path exists, file exists

+

Sample: "C:\\foo.ini"

+
+

sharename

+

string

+

The name of share if folder is shared.

+

Returned: success, path exists, file is a directory and isshared == True

+

Sample: "file-share"

+
+

size

+

integer

+

The size in bytes of a file or folder.

+

Returned: success, path exists, file is not a link, get_size == True

+

Sample: 1024

+
+
+

Authors

+
    +
  • Chris Church (@cchurch)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_tempfile_module.html b/tag/2.4.0/collections/ansible/windows/win_tempfile_module.html new file mode 100644 index 00000000..53f4f624 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_tempfile_module.html @@ -0,0 +1,303 @@ + + + + + + + + ansible.windows.win_tempfile module – Creates temporary files and directories — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_tempfile module – Creates temporary files and directories

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_tempfile.

+
+ +
+

Synopsis

+
    +
  • Creates temporary files and directories.

  • +
  • For non-Windows targets, please use the ansible.builtin.tempfile module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+
+

path

+

aliases: dest

+

path

+

Location where temporary file or directory should be created.

+

If path is not specified default system temporary directory (%TEMP%) will be used.

+

Default: "%TEMP%"

+
+

prefix

+

string

+

Prefix of file/directory name created by module.

+

Default: "ansible."

+
+

state

+

string

+

Whether to create file or directory.

+

Choices:

+
    +
  • "directory"

  • +
  • "file" ← (default)

  • +
+
+

suffix

+

string

+

Suffix of file/directory name created by module.

+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.tempfile

The official documentation on the ansible.builtin.tempfile module.

+
+
+
+
+
+

Examples

+
- name: Create temporary build directory
+  ansible.windows.win_tempfile:
+    state: directory
+    suffix: build
+
+- name: Create temporary file
+  ansible.windows.win_tempfile:
+    state: file
+    suffix: temp
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

path

+

string

+

The absolute path to the created file or directory.

+

Returned: success

+

Sample: "C:\\Users\\Administrator\\AppData\\Local\\Temp\\ansible.bMlvdk"

+
+
+

Authors

+
    +
  • Dag Wieers (@dagwieers)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_template_module.html b/tag/2.4.0/collections/ansible/windows/win_template_module.html new file mode 100644 index 00000000..10b21353 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_template_module.html @@ -0,0 +1,424 @@ + + + + + + + + ansible.windows.win_template module – Template a file out to a remote server — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_template module – Template a file out to a remote server

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_template.

+
+ +
+

Synopsis

+
    +
  • Templates are processed by the Jinja2 templating language.

  • +
  • Documentation on the template formatting can be found in the Template Designer Documentation.

  • +
  • Additional variables listed below can be used in templates.

  • +
  • ansible_managed (configurable via the defaults section of ansible.cfg) contains a string which can be used to describe the template name, host, modification time of the template file and the owner uid.

  • +
  • template_host contains the node name of the template’s machine.

  • +
  • template_uid is the numeric user id of the owner.

  • +
  • template_path is the path of the template.

  • +
  • template_fullpath is the absolute path of the template.

  • +
  • template_destpath is the path of the template on the remote system (added in 2.8).

  • +
  • template_run_date is the date that the template was rendered.

  • +
+
+

Note

+

This module has a corresponding action plugin.

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

backup

+

boolean

+

Determine whether a backup should be created.

+

When set to true, create a backup file including the timestamp information so you can get the original file back if you somehow clobbered it incorrectly.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

block_end_string

+

string

+

The string marking the end of a block.

+

Default: "%}"

+
+

block_start_string

+

string

+

The string marking the beginning of a block.

+

Default: "{%"

+
+

dest

+

path / required

+

Location to render the template to on the remote machine.

+
+

force

+

boolean

+

Determine when the file is being transferred if the destination already exists.

+

When set to true, replace the remote file when contents are different than the source.

+

When set to false, the file will only be transferred if the destination does not exist.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

lstrip_blocks

+

boolean

+

Determine when leading spaces and tabs should be stripped.

+

When set to true leading spaces and tabs are stripped from the start of a line to a block.

+

This functionality requires Jinja 2.7 or newer.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

newline_sequence

+

string

+

Specify the newline sequence to use for templating files.

+

Choices:

+
    +
  • "\\n"

  • +
  • "\\r"

  • +
  • "\\r\\n" ← (default)

  • +
+
+

output_encoding

+

string

+

Overrides the encoding used to write the template file defined by dest.

+

It defaults to utf-8, but any encoding supported by python can be used.

+

The source template file must always be encoded using utf-8, for homogeneity.

+

Default: "utf-8"

+
+

src

+

path / required

+

Path of a Jinja2 formatted template on the Ansible controller.

+

This can be a relative or an absolute path.

+

The file must be encoded with utf-8 but output_encoding can be used to control the encoding of the output template.

+
+

trim_blocks

+

boolean

+

Determine when newlines should be removed from blocks.

+

When set to true the first newline after a block is removed (block, not variable tag!).

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

variable_end_string

+

string

+

The string marking the end of a print statement.

+

Default: "}}"

+
+

variable_start_string

+

string

+

The string marking the beginning of a print statement.

+

Default: "{{"

+
+
+
+

Notes

+
+

Note

+
    +
  • Including a string that uses a date in the template will result in the template being marked ‘changed’ each time.

  • +
  • Also, you can override jinja2 settings by adding a special header to template file. i.e. #jinja2:variable_start_string:'[%', variable_end_string:'%]', trim_blocks: False which changes the variable interpolation markers to [% var %] instead of {{ var }}. This is the best way to prevent evaluation of things that look like, but should not be Jinja2.

  • +
  • Using raw/endraw in Jinja2 will not work as you expect because templates in Ansible are recursively evaluated.

  • +
  • To find Byte Order Marks in files, use Format-Hex <file> -Count 16 on Windows, and use od -a -t x1 -N 16 <file> on Linux.

  • +
  • Beware fetching files from windows machines when creating templates because certain tools, such as Powershell ISE, and regedit’s export facility add a Byte Order Mark as the first character of the file, which can cause tracebacks.

  • +
  • You can use the ansible.windows.win_copy module with the content: option if you prefer the template inline, as part of the playbook.

  • +
  • For Linux you can use ansible.builtin.template which uses ‘\\n’ as newline_sequence by default.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_copy

Copies files to remote locations on windows hosts.

+
+
ansible.builtin.copy

The official documentation on the ansible.builtin.copy module.

+
+
ansible.builtin.template

The official documentation on the ansible.builtin.template module.

+
+
+
+
+
+

Examples

+
- name: Create a file from a Jinja2 template
+  ansible.windows.win_template:
+    src: /mytemplates/file.conf.j2
+    dest: C:\Temp\file.conf
+
+- name: Create a Unix-style file from a Jinja2 template
+  ansible.windows.win_template:
+    src: unix/config.conf.j2
+    dest: C:\share\unix\config.conf
+    newline_sequence: '\n'
+    backup: true
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + +

Key

Description

+

backup_file

+

string

+

Name of the backup file that was created.

+

Returned: if backup=true

+

Sample: "C:\\Path\\To\\File.txt.11540.20150212-220915.bak"

+
+
+

Authors

+
    +
  • Jon Hawkesworth (@jhawkesworth)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_updates_module.html b/tag/2.4.0/collections/ansible/windows/win_updates_module.html new file mode 100644 index 00000000..0e24a562 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_updates_module.html @@ -0,0 +1,621 @@ + + + + + + + + ansible.windows.win_updates module – Download and install Windows updates — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_updates module – Download and install Windows updates

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_updates.

+
+ +
+

Synopsis

+
    +
  • Searches, downloads, and installs Windows updates synchronously by automating the Windows Update client.

  • +
+
+

Note

+

This module has a corresponding action plugin.

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

_operation

+

string

+

Internal use only.

+

Choices:

+
    +
  • "start" ← (default)

  • +
  • "cancel"

  • +
  • "poll"

  • +
+
+

_operation_options

+

dictionary

+

Internal use only.

+
+

accept_list

+

list / elements=string

+

A list of update titles or KB numbers that can be used to specify which updates are to be searched or installed.

+

If an available update does not match one of the entries, then it is skipped and not installed.

+

Each entry can either be the KB article or Update title as a regex according to the PowerShell regex rules.

+

The accept list is only validated on updates that were found based on category_names. It will not force the module to install an update if it was not in the category specified.

+
+

category_names

+

list / elements=string

+

A scalar or list of categories to install updates from. To get the list of categories, run the module with state=searched. The category must be the full category string, but is case insensitive.

+

Some possible categories are Application, Connectors, Critical Updates, Definition Updates, Developer Kits, Feature Packs, Guidance, Security Updates, Service Packs, Tools, Update Rollups, Updates, and Upgrades.

+

Since v1.7.0 the value * will match all categories.

+

Default: ["CriticalUpdates", "SecurityUpdates", "UpdateRollups"]

+
+

log_path

+

path

+

If set, win_updates will append update progress to the specified file. The directory must already exist.

+
+

reboot

+

boolean

+

Ansible will automatically reboot the remote host if it is required and continue to install updates after the reboot.

+

This can be used instead of using a ansible.windows.win_reboot task after this one and ensures all updates for that category is installed in one go.

+

Async does not work when reboot=true.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

reboot_timeout

+

integer

+

The time in seconds to wait until the host is back online from a reboot.

+

This is only used if reboot=true and a reboot is required.

+

Default: 1200

+
+

reject_list

+

list / elements=string

+

A list of update titles or KB numbers that can be used to specify which updates are to be excluded from installation.

+

If an available update does match one of the entries, then it is skipped and not installed.

+

Each entry can either be the KB article or Update title as a regex according to the PowerShell regex rules.

+
+

server_selection

+

string

+

Defines the Windows Update source catalog.

+

default Use the default search source. For many systems default is set to the Microsoft Windows Update catalog. Systems participating in Windows Server Update Services (WSUS) or similar corporate update server environments may default to those managed update sources instead of the Windows Update catalog.

+

managed_server Use a managed server catalog. For environments utilizing Windows Server Update Services (WSUS) or similar corporate update servers, this option selects the defined corporate update source.

+

windows_update Use the Microsoft Windows Update catalog.

+

Choices:

+
    +
  • "default" ← (default)

  • +
  • "managed_server"

  • +
  • "windows_update"

  • +
+
+

skip_optional

+

boolean

+

added in ansible.windows 1.8.0

+

Skip optional updates where the update has BrowseOnly set by Microsoft.

+

Microsoft documents show that BrowseOnly means that the update should not be installed automatically and appear as optional updates.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

state

+

string

+

Controls whether found updates are downloaded or installed or listed

+

This module also supports Ansible check mode, which has the same effect as setting state=searched

+

Choices:

+
    +
  • "installed" ← (default)

  • +
  • "searched"

  • +
  • "downloaded"

  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • ansible.windows.win_updates must be run by a user with membership in the local Administrators group.

  • +
  • ansible.windows.win_updates will use the default update service configured for the machine (Windows Update, Microsoft Update, WSUS, etc).

  • +
  • By default ansible.windows.win_updates does not manage reboots, but will signal when a reboot is required with the reboot_required return value. reboot can be used to reboot the host if required in the one task.

  • +
  • ansible.windows.win_updates can take a significant amount of time to complete (hours, in some cases). Performance depends on many factors, including OS version, number of updates, system load, and update server load.

  • +
  • Beware that just after ansible.windows.win_updates reboots the system, the Windows system may not have settled yet and some base services could be in limbo. This can result in unexpected behavior. Check the examples for ways to mitigate this.

  • +
  • More information about PowerShell and how it handles RegEx strings can be found at https://technet.microsoft.com/en-us/library/2007.11.powershell.aspx.

  • +
  • The current module doesn’t support Systems Center Configuration Manager (SCCM). See https://github.com/ansible-collections/ansible.windows/issues/194

  • +
  • By default the ansible.builtin.ssh connection plugin is configured to have no server timeout. As Windows Updates can restart the network adapter it is recommended to set -o ServerAliveInterval=30 and disable control master in ansible_ssh_args to ensure the client can handle a network reset. See the examples showing one way this can be set.

  • +
  • By default the module will start a background process using the Task Scheduler on Windows. If the Task Scheduler is unavailable, unreliable, or does not work, run the task with become.

  • +
+
+
+
+

See Also

+
+

See also

+
+
chocolatey.chocolatey.win_chocolatey

The official documentation on the chocolatey.chocolatey.win_chocolatey module.

+
+
ansible.windows.win_feature

Installs and uninstalls Windows Features on Windows Server.

+
+
community.windows.win_hotfix

The official documentation on the community.windows.win_hotfix module.

+
+
ansible.windows.win_package

Installs/uninstalls an installable package.

+
+
+
+
+
+

Examples

+
- name: Install all updates and reboot as many times as needed
+  ansible.windows.win_updates:
+    category_names: '*'
+    reboot: true
+
+- name: Set a server alive interval during update stage for the ssh connection plugin
+  ansible.windows.win_updates:
+    category_names: '*'
+    reboot: true
+  vars:
+    # This can be set in a few ways, see the ssh connection plugin for more
+    # information. ControlMaster should be disabled to ensure the new timeout
+    # value is applied for this connection instead of through the cached
+    # connection.
+    ansible_ssh_args: -o ControlMaster=no -o ServerAliveInterval=30
+
+- name: Install all security, critical, and rollup updates without a scheduled task
+  ansible.windows.win_updates:
+    category_names:
+      - SecurityUpdates
+      - CriticalUpdates
+      - UpdateRollups
+  become: true
+  become_method: runas
+  become_user: SYSTEM
+
+- name: Search-only, return list of found updates (if any), log to C:\ansible_wu.txt
+  ansible.windows.win_updates:
+    category_names: SecurityUpdates
+    state: searched
+    log_path: C:\ansible_wu.txt
+
+- name: Install all security updates with automatic reboots
+  ansible.windows.win_updates:
+    category_names:
+      - SecurityUpdates
+    reboot: true
+
+- name: Install only particular updates based on the KB numbers
+  ansible.windows.win_updates:
+    category_names:
+      - SecurityUpdates
+    accept_list:
+      - KB4056892
+      - KB4073117
+
+- name: Exclude updates based on the update title
+  ansible.windows.win_updates:
+    category_names:
+      - SecurityUpdates
+      - CriticalUpdates
+    reject_list:
+      - Windows Malicious Software Removal Tool for Windows
+      - \d{4}-\d{2} Cumulative Update for Windows Server 2016
+
+# Optionally, you can increase the reboot_timeout to survive long updates during reboot
+- name: Ensure we wait long enough for the updates to be applied during reboot
+  ansible.windows.win_updates:
+    reboot: true
+    reboot_timeout: 3600
+
+# Search and download Windows updates
+- name: Search and download Windows updates without installing them
+  ansible.windows.win_updates:
+    state: downloaded
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

failed_update_count

+

integer

+

The number of updates that failed to install.

+

Returned: always

+

Sample: 0

+
+

filtered_updates

+

dictionary

+

Updates that were found but were filtered based on blacklist, whitelist or category_names. The return value is in the same form as updates, along with filtered_reason.

+

Returned: success

+

Sample: "see the updates return value"

+
+

filtered_reason

+

string

+

The reason why this update was filtered.

+

This value has been deprecated since 1.7.0, use filtered_reasons which contain a list of all the reasons why the update is filtered.

+

Returned: always

+

Sample: "skip_hidden"

+
+

filtered_reasons

+

list / elements=string

+

added in ansible.windows 1.7.0

+

A list of reasons why the update has been filtered.

+

Can be accept_list, reject_list, hidden, category_names, or skip_optional.

+

Returned: success

+

Sample: ["category_names", "accept_list"]

+
+

found_update_count

+

integer

+

The number of updates found needing to be applied.

+

Returned: success

+

Sample: 3

+
+

installed_update_count

+

integer

+

The number of updates successfully installed or downloaded.

+

Returned: success

+

Sample: 2

+
+

reboot_required

+

boolean

+

True when the target server requires a reboot to complete updates (no further updates can be installed until after a reboot).

+

Returned: success

+

Sample: true

+
+

rebooted

+

boolean

+

added in ansible.windows 1.14.0

+

Set to true when the target Windows host has been rebooted by win_updates.

+

Returned: success

+

Sample: false

+
+

updates

+

dictionary

+

Updates that were found/installed.

+

The key for each update is the id of the update.

+

Returned: success

+
+

categories

+

list / elements=string

+

A list of category strings for this update.

+

Returned: always

+

Sample: ["Critical Updates", "Windows Server 2012 R2"]

+
+

downloaded

+

boolean

+

added in ansible.windows 1.7.0

+

Was the update downloaded.

+

Returned: always

+

Sample: true

+
+

failure_hresult_code

+

boolean

+

The HRESULT code from a failed update.

+

Returned: on install or download failure

+

Sample: 2147942402

+
+

failure_msg

+

string

+

added in ansible.windows 1.7.0

+

The error message with more details on the failure.

+

Returned: on install or download failure and not running with async

+

Sample: "Operation did not complete because there is no logged-on interactive user (WU_E_NO_INTERACTIVE_USER 0x80240020)"

+
+

id

+

string

+

Internal Windows Update GUID.

+

Returned: always

+

Sample: "fb95c1c8-de23-4089-ae29-fd3351d55421"

+
+

installed

+

boolean

+

Was the update successfully installed.

+

Returned: always

+

Sample: true

+
+

kb

+

list / elements=string

+

A list of KB article IDs that apply to the update.

+

Returned: always

+

Sample: ["3004365"]

+
+

title

+

string

+

Display name.

+

Returned: always

+

Sample: "Security Update for Windows Server 2012 R2 (KB3004365)"

+
+
+

Authors

+
    +
  • Matt Davis (@nitzmahone)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_uri_module.html b/tag/2.4.0/collections/ansible/windows/win_uri_module.html new file mode 100644 index 00000000..0ebc6a66 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_uri_module.html @@ -0,0 +1,586 @@ + + + + + + + + ansible.windows.win_uri module – Interacts with webservices — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_uri module – Interacts with webservices

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_uri.

+
+ +
+

Synopsis

+
    +
  • Interacts with FTP, HTTP and HTTPS web services.

  • +
  • Supports Digest, Basic and WSSE HTTP authentication mechanisms.

  • +
  • For non-Windows targets, use the ansible.builtin.uri module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

body

+

any

+

The body of the HTTP request/response to the web service.

+
+

client_cert

+

string

+

The path to the client certificate (.pfx) that is used for X509 authentication. This path can either be the path to the pfx on the filesystem or the PowerShell certificate path Cert:\CurrentUser\My\<thumbprint>.

+

The WinRM connection must be authenticated with CredSSP or become is used on the task if the certificate file is not password protected.

+

Other authentication types can set client_cert_password when the cert is password protected.

+
+

client_cert_password

+

string

+

The password for client_cert if the cert is password protected.

+
+

content_type

+

string

+

Sets the “Content-Type” header.

+
+

creates

+

path

+

A filename, when it already exists, this step will be skipped.

+
+

dest

+

path

+

Output the response body to a file.

+
+

follow_redirects

+

string

+

Whether or the module should follow redirects.

+

all will follow all redirect.

+

none will not follow any redirect.

+

safe will follow only “safe” redirects, where “safe” means that the client is only doing a GET or HEAD on the URI to which it is being redirected.

+

When following a redirected URL, the Authorization header and any credentials set will be dropped and not redirected.

+

Choices:

+
    +
  • "all"

  • +
  • "none"

  • +
  • "safe" ← (default)

  • +
+
+

force_basic_auth

+

boolean

+

By default the authentication header is only sent when a webservice responses to an initial request with a 401 status. Since some basic auth services do not properly send a 401, logins will fail.

+

This option forces the sending of the Basic authentication header upon the original request.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

headers

+

dictionary

+

Extra headers to set on the request.

+

This should be a dictionary where the key is the header name and the value is the value for that header.

+
+

http_agent

+

string

+

Header to identify as, generally appears in web server logs.

+

This is set to the User-Agent header on a HTTP request.

+

Default: "ansible-httpget"

+
+

maximum_redirection

+

integer

+

Specify how many times the module will redirect a connection to an alternative URI before the connection fails.

+

If set to 0 or follow_redirects is set to none, or safe when not doing a GET or HEAD it prevents all redirection.

+

Default: 50

+
+

proxy_password

+

string

+

The password for proxy_username.

+
+

proxy_url

+

string

+

An explicit proxy to use for the request.

+

By default, the request will use the IE defined proxy unless use_proxy is set to no.

+
+

proxy_use_default_credential

+

boolean

+

Uses the current user’s credentials when authenticating with a proxy host protected with NTLM, Kerberos, or Negotiate authentication.

+

Proxies that use Basic auth will still require explicit credentials through the proxy_username and proxy_password options.

+

The module will only have access to the user’s credentials if using become with a password, you are connecting with SSH using a password, or connecting with WinRM using CredSSP or Kerberos with delegation.

+

If not using become or a different auth method to the ones stated above, there will be no default credentials available and no proxy authentication will occur.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

proxy_username

+

string

+

The username to use for proxy authentication.

+
+

removes

+

path

+

A filename, when it does not exist, this step will be skipped.

+
+

return_content

+

boolean

+

Whether or not to return the body of the response as a “content” key in the dictionary result. If the reported Content-type is “application/json”, then the JSON is additionally loaded into a key called json in the dictionary results.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

status_code

+

list / elements=integer

+

A valid, numeric, HTTP status code that signifies success of the request.

+

Can also be comma separated list of status codes.

+

Default: [200]

+
+

url

+

string / required

+

Supports FTP, HTTP or HTTPS URLs in the form of (ftp|http|https)://host.domain:port/path.

+
+
+

url_method

+

aliases: method

+

string

+

The HTTP Method of the request.

+

Default: "GET"

+
+

url_password

+

string

+

The password for url_username.

+
+
+

url_timeout

+

aliases: timeout

+

integer

+

Specifies how long the request can be pending before it times out (in seconds).

+

Set to 0 to specify an infinite timeout.

+

Default: 30

+
+

url_username

+

string

+

The username to use for authentication.

+
+

use_default_credential

+

boolean

+

Uses the current user’s credentials when authenticating with a server protected with NTLM, Kerberos, or Negotiate authentication.

+

Sites that use Basic auth will still require explicit credentials through the url_username and url_password options.

+

The module will only have access to the user’s credentials if using become with a password, you are connecting with SSH using a password, or connecting with WinRM using CredSSP or Kerberos with delegation.

+

If not using become or a different auth method to the ones stated above, there will be no default credentials available and no authentication will occur.

+

Choices:

+
    +
  • false ← (default)

  • +
  • true

  • +
+
+

use_proxy

+

boolean

+

If no, it will not use the proxy defined in IE for the current user.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+

validate_certs

+

boolean

+

If no, SSL certificates will not be validated.

+

This should only be used on personally controlled sites using self-signed certificates.

+

Choices:

+
    +
  • false

  • +
  • true ← (default)

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.uri

The official documentation on the ansible.builtin.uri module.

+
+
ansible.windows.win_get_url

Downloads file from HTTP, HTTPS, or FTP to node.

+
+
community.windows.win_inet_proxy

The official documentation on the community.windows.win_inet_proxy module.

+
+
+
+
+
+

Examples

+
- name: Perform a GET and Store Output
+  ansible.windows.win_uri:
+    url: http://example.com/endpoint
+  register: http_output
+
+# Set a HOST header to hit an internal webserver:
+- name: Hit a Specific Host on the Server
+  ansible.windows.win_uri:
+    url: http://example.com/
+    method: GET
+    headers:
+      host: www.somesite.com
+
+- name: Perform a HEAD on an Endpoint
+  ansible.windows.win_uri:
+    url: http://www.example.com/
+    method: HEAD
+
+- name: POST a Body to an Endpoint
+  ansible.windows.win_uri:
+    url: http://www.somesite.com/
+    method: POST
+    body: "{ 'some': 'json' }"
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

content

+

string

+

The raw content of the HTTP response.

+

Returned: success and return_content is True

+

Sample: "{\"foo\": \"bar\"}"

+
+

content_length

+

integer

+

The byte size of the response.

+

Returned: success

+

Sample: 54447

+
+

elapsed

+

float

+

The number of seconds that elapsed while performing the download.

+

Returned: always

+

Sample: 23.2

+
+

json

+

dictionary

+

The json structure returned under content as a dictionary.

+

Returned: success and Content-Type is “application/json” or “application/javascript” and return_content is True

+

Sample: {"this-is-dependent": "on the actual return content"}

+
+

status_code

+

integer

+

The HTTP Status Code of the response.

+

Returned: success

+

Sample: 200

+
+

status_description

+

string

+

A summary of the status.

+

Returned: success

+

Sample: "OK"

+
+

url

+

string

+

The Target URL.

+

Returned: always

+

Sample: "https://www.ansible.com"

+
+
+

Authors

+
    +
  • Corwin Brown (@blakfeld)

  • +
  • Dag Wieers (@dagwieers)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_user_module.html b/tag/2.4.0/collections/ansible/windows/win_user_module.html new file mode 100644 index 00000000..bc930616 --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_user_module.html @@ -0,0 +1,575 @@ + + + + + + + + ansible.windows.win_user module – Manages local Windows user accounts — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_user module – Manages local Windows user accounts

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_user.

+
+ +
+

Synopsis

+
    +
  • Manages local Windows user accounts.

  • +
  • For non-Windows targets, use the ansible.builtin.user module instead.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

account_disabled

+

boolean

+

true will disable the user account.

+

false will clear the disabled flag.

+

Choices:

+
    +
  • false

  • +
  • true

  • +
+
+

account_expires

+

string

+

added in ansible.windows 2.4.0

+

Set the account expiration date for the user.

+

This value should be in the format %Y-%m-%d or %Y-%m-%dT%H:%M:%S%z. The timezone can be omitted in the long format and will default to UTC. The format of %z is ±HHMM, ±HH:MM, or Z for UTC.

+

Set the value to never to remove the account expiration date.

+
+

account_locked

+

boolean

+

Only false can be set and it will unlock the user account if locked.

+

Choices:

+
    +
  • false

  • +
  • true

  • +
+
+

description

+

string

+

Description of the user.

+
+

fullname

+

string

+

Full name of the user.

+
+

groups

+

list / elements=string

+

Adds or removes the user from this comma-separated list of groups, depending on the value of groups_action.

+

When groups_action is replace and groups is set to the empty string (‘groups=’), the user is removed from all groups.

+

Since ansible.windows v1.5.0 it is possible to specify a group using it’s security identifier.

+
+

groups_action

+

string

+

If add, the user is added to each group in groups where not already a member.

+

If replace, the user is added as a member of each group in groups and removed from any other groups.

+

If remove, the user is removed from each group in groups.

+

Choices:

+
    +
  • "add"

  • +
  • "replace" ← (default)

  • +
  • "remove"

  • +
+
+

home_directory

+

string

+

added in ansible.windows 1.0.0

+

The designated home directory of the user.

+
+

login_script

+

string

+

added in ansible.windows 1.0.0

+

The login script of the user.

+
+

name

+

string / required

+

Name of the user to create, remove or modify.

+
+

password

+

string

+

Optionally set the user’s password to this (plain text) value.

+
+

password_expired

+

boolean

+

true will require the user to change their password at next login.

+

false will clear the expired password flag.

+

Choices:

+
    +
  • false

  • +
  • true

  • +
+
+

password_never_expires

+

boolean

+

true will set the password to never expire.

+

false will allow the password to expire.

+

Choices:

+
    +
  • false

  • +
  • true

  • +
+
+

profile

+

string

+

added in ansible.windows 1.0.0

+

The profile path of the user.

+
+

state

+

string

+

When absent, removes the user account if it exists.

+

When present, creates or updates the user account.

+

When query, retrieves the user account details without making any changes.

+

Choices:

+
    +
  • "absent"

  • +
  • "present" ← (default)

  • +
  • "query"

  • +
+
+

update_password

+

string

+

always will update passwords if they differ.

+

on_create will only set the password for newly created users.

+

Choices:

+
    +
  • "always" ← (default)

  • +
  • "on_create"

  • +
+
+

user_cannot_change_password

+

boolean

+

true will prevent the user from changing their password.

+

false will allow the user to change their password.

+

Choices:

+
    +
  • false

  • +
  • true

  • +
+
+
+
+

Notes

+
+

Note

+
    +
  • The return values are based on the user object after the module options have been set. When running in check mode the values will still reflect the existing user settings and not what they would have been changed to.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.user

The official documentation on the ansible.builtin.user module.

+
+
ansible.windows.win_domain_membership

Manage domain/workgroup membership for a Windows host.

+
+
community.windows.win_domain_user

The official documentation on the community.windows.win_domain_user module.

+
+
ansible.windows.win_group

Add and remove local groups.

+
+
ansible.windows.win_group_membership

Manage Windows local group membership.

+
+
community.windows.win_user_profile

The official documentation on the community.windows.win_user_profile module.

+
+
+
+
+
+

Examples

+
- name: Ensure user bob is present
+  ansible.windows.win_user:
+    name: bob
+    password: B0bP4ssw0rd
+    state: present
+    groups:
+      - Users
+
+- name: Ensure user bob is absent
+  ansible.windows.win_user:
+    name: bob
+    state: absent
+
+- name: Set an account expiration date to the 27th of October 2024 at 2:30PM UTC
+  ansible.windows.win_user:
+    name: bob
+    state: present
+    account_expires: '2024-10-27T14:30:00Z'
+
+- name: Set an account expiration 30 days in the future
+  ansible.windows.win_user:
+    name: bob
+    state: present
+    account_expires: '{{ "%Y-%m-%dT%H:%M:%S%z" | ansible.builtin.strftime(now().timestamp() + (60 * 60 * 24 * 30)) }}'
+
+- name: Remove account expiration date
+  ansible.windows.win_user:
+    name: bob
+    state: present
+    account_expires: never
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

account_disabled

+

boolean

+

Whether the user is disabled.

+

Returned: user exists

+

Sample: false

+
+

account_locked

+

boolean

+

Whether the user is locked.

+

Returned: user exists

+

Sample: false

+
+

description

+

string

+

The description set for the user.

+

Returned: user exists

+

Sample: "Username for test"

+
+

fullname

+

string

+

The full name set for the user.

+

Returned: user exists

+

Sample: "Test Username"

+
+

groups

+

list / elements=string

+

A list of groups and their ADSI path the user is a member of.

+

Returned: user exists

+

Sample: [{"name": "Administrators", "path": "WinNT://WORKGROUP/USER-PC/Administrators"}]

+
+

name

+

string

+

The name of the user

+

Returned: always

+

Sample: "username"

+
+

password_expired

+

boolean

+

Whether the password is expired.

+

Returned: user exists

+

Sample: false

+
+

password_never_expires

+

boolean

+

Whether the password is set to never expire.

+

Returned: user exists

+

Sample: true

+
+

path

+

string

+

The ADSI path for the user.

+

Returned: user exists

+

Sample: "WinNT://WORKGROUP/USER-PC/username"

+
+

sid

+

string

+

The SID for the user.

+

Returned: user exists

+

Sample: "S-1-5-21-3322259488-2828151810-3939402796-1001"

+
+

user_cannot_change_password

+

boolean

+

Whether the user can change their own password.

+

Returned: user exists

+

Sample: false

+
+
+

Authors

+
    +
  • Paul Durivage (@angstwad)

  • +
  • Chris Church (@cchurch)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_user_right_module.html b/tag/2.4.0/collections/ansible/windows/win_user_right_module.html new file mode 100644 index 00000000..f5e4c11b --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_user_right_module.html @@ -0,0 +1,345 @@ + + + + + + + + ansible.windows.win_user_right module – Manage Windows User Rights — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_user_right module – Manage Windows User Rights

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_user_right.

+
+ +
+

Synopsis

+
    +
  • Add, remove or set User Rights for a group or users or groups.

  • +
  • You can set user rights for both local and domain accounts.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +

Parameter

Comments

+

action

+

string

+

add will add the users/groups to the existing right.

+

remove will remove the users/groups from the existing right.

+

set will replace the users/groups of the existing right.

+

Choices:

+
    +
  • "add"

  • +
  • "remove"

  • +
  • "set" ← (default)

  • +
+
+

name

+

string / required

+

The name of the User Right as shown by the Constant Name value from https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment.

+

The module will return an error if the right is invalid.

+
+

users

+

list / elements=string / required

+

A list of users or groups to add/remove on the User Right.

+

These can be in the form DOMAIN\user-group, user-group@DOMAIN.COM for domain users/groups.

+

For local users/groups it can be in the form user-group, .\user-group, SERVERNAME\user-group where SERVERNAME is the name of the remote server.

+

It is highly recommended to use the .\ or SERVERNAME\ prefix to avoid any ambiguity with domain account names or errors trying to lookup an account on a domain controller.

+

You can also add special local accounts like SYSTEM and others.

+

Can be set to an empty list with action=set to remove all accounts from the right.

+
+
+
+

Notes

+
+

Note

+
    +
  • If the server is domain joined this module can change a right but if a GPO governs this right then the changes won’t last.

  • +
+
+
+
+

See Also

+
+

See also

+
+
ansible.windows.win_group

Add and remove local groups.

+
+
ansible.windows.win_group_membership

Manage Windows local group membership.

+
+
ansible.windows.win_user

Manages local Windows user accounts.

+
+
+
+
+
+

Examples

+
---
+- name: Replace the entries of Deny log on locally
+  ansible.windows.win_user_right:
+    name: SeDenyInteractiveLogonRight
+    users:
+      - Guest
+      - Users
+    action: set
+
+- name: Add account to Log on as a service
+  ansible.windows.win_user_right:
+    name: SeServiceLogonRight
+    users:
+      - .\Administrator
+      - '{{ansible_hostname}}\local-user'
+    action: add
+
+- name: Remove accounts who can create Symbolic links
+  ansible.windows.win_user_right:
+    name: SeCreateSymbolicLinkPrivilege
+    users:
+      - SYSTEM
+      - Administrators
+      - DOMAIN\User
+      - group@DOMAIN.COM
+    action: remove
+
+- name: Remove all accounts who cannot log on remote interactively
+  ansible.windows.win_user_right:
+    name: SeDenyRemoteInteractiveLogonRight
+    users: []
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + +

Key

Description

+

added

+

list / elements=string

+

A list of accounts that were added to the right, this is empty if no accounts were added.

+

Returned: success

+

Sample: ["NT AUTHORITY\\SYSTEM", "DOMAIN\\User"]

+
+

removed

+

list / elements=string

+

A list of accounts that were removed from the right, this is empty if no accounts were removed.

+

Returned: success

+

Sample: ["SERVERNAME\\Administrator", "BUILTIN\\Administrators"]

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_wait_for_module.html b/tag/2.4.0/collections/ansible/windows/win_wait_for_module.html new file mode 100644 index 00000000..b1ec439a --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_wait_for_module.html @@ -0,0 +1,400 @@ + + + + + + + + ansible.windows.win_wait_for module – Waits for a condition before continuing — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_wait_for module – Waits for a condition before continuing

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_wait_for.

+
+ +
+

Synopsis

+
    +
  • You can wait for a set amount of time timeout, this is the default if nothing is specified.

  • +
  • Waiting for a port to become available is useful for when services are not immediately available after their init scripts return which is true of certain Java application servers.

  • +
  • You can wait for a file to exist or not exist on the filesystem.

  • +
  • This module can also be used to wait for a regex match string to be present in a file.

  • +
  • You can wait for active connections to be closed before continuing on a local port.

  • +
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

Comments

+

connect_timeout

+

integer

+

The maximum number of seconds to wait for a connection to happen before closing and retrying.

+

Default: 5

+
+

delay

+

integer

+

The number of seconds to wait before starting to poll.

+
+

exclude_hosts

+

list / elements=string

+

The list of hosts or IPs to ignore when looking for active TCP connections when state=drained.

+
+

host

+

string

+

A resolvable hostname or IP address to wait for.

+

If state=drained then it will only check for connections on the IP specified, you can use ‘0.0.0.0’ to use all host IPs.

+

Default: "127.0.0.1"

+
+

path

+

path

+

The path to a file on the filesystem to check.

+

If state is present or started then it will wait until the file exists.

+

If state is absent then it will wait until the file does not exist.

+
+

port

+

integer

+

The port number to poll on host.

+
+
+
+

regex

+

aliases: search_regex, regexp

+

string

+

Can be used to match a string in a file.

+

If state is present or started then it will wait until the regex matches.

+

If state is absent then it will wait until the regex does not match.

+

Defaults to a multiline regex.

+
+

sleep

+

integer

+

Number of seconds to sleep between checks.

+

Default: 1

+
+

state

+

string

+

When checking a port, started will ensure the port is open, stopped will check that is it closed and drained will check for active connections.

+

When checking for a file or a search string present or started will ensure that the file or string is present, absent will check that the file or search string is absent or removed.

+

Choices:

+
    +
  • "absent"

  • +
  • "drained"

  • +
  • "present"

  • +
  • "started" ← (default)

  • +
  • "stopped"

  • +
+
+

timeout

+

integer

+

The maximum number of seconds to wait for.

+

Default: 300

+
+
+
+

See Also

+
+

See also

+
+
ansible.builtin.wait_for

The official documentation on the ansible.builtin.wait_for module.

+
+
community.windows.win_wait_for_process

The official documentation on the community.windows.win_wait_for_process module.

+
+
+
+
+
+

Examples

+
- name: Wait 300 seconds for port 8000 to become open on the host, don't start checking for 10 seconds
+  ansible.windows.win_wait_for:
+    port: 8000
+    delay: 10
+
+- name: Wait 150 seconds for port 8000 of any IP to close active connections
+  ansible.windows.win_wait_for:
+    host: 0.0.0.0
+    port: 8000
+    state: drained
+    timeout: 150
+
+- name: Wait for port 8000 of any IP to close active connection, ignoring certain hosts
+  ansible.windows.win_wait_for:
+    host: 0.0.0.0
+    port: 8000
+    state: drained
+    exclude_hosts: ['10.2.1.2', '10.2.1.3']
+
+- name: Wait for file C:\temp\log.txt to exist before continuing
+  ansible.windows.win_wait_for:
+    path: C:\temp\log.txt
+
+- name: Wait until process complete is in the file before continuing
+  ansible.windows.win_wait_for:
+    path: C:\temp\log.txt
+    regex: process complete
+
+- name: Wait until file is removed
+  ansible.windows.win_wait_for:
+    path: C:\temp\log.txt
+    state: absent
+
+- name: Wait until port 1234 is offline but try every 10 seconds
+  ansible.windows.win_wait_for:
+    port: 1234
+    state: absent
+    sleep: 10
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + +

Key

Description

+

elapsed

+

float

+

The elapsed seconds between the start of poll and the end of the module. This includes the delay if the option is set.

+

Returned: always

+

Sample: 2.1406487

+
+

wait_attempts

+

integer

+

The number of attempts to poll the file or port before module finishes.

+

Returned: always

+

Sample: 1

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/ansible/windows/win_whoami_module.html b/tag/2.4.0/collections/ansible/windows/win_whoami_module.html new file mode 100644 index 00000000..9e8f2c5a --- /dev/null +++ b/tag/2.4.0/collections/ansible/windows/win_whoami_module.html @@ -0,0 +1,464 @@ + + + + + + + + ansible.windows.win_whoami module – Get information about the current user and process — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+ +
+

ansible.windows.win_whoami module – Get information about the current user and process

+
+

Note

+

This module is part of the ansible.windows collection (version 2.4.0).

+

It is not included in ansible-core. +To check whether it is installed, run ansible-galaxy collection list.

+

To install it, use: ansible-galaxy collection install ansible.windows.

+

To use it in a playbook, specify: ansible.windows.win_whoami.

+
+ +
+

Synopsis

+
    +
  • Designed to return the same information as the whoami /all command.

  • +
  • Also includes information missing from whoami such as logon metadata like logon rights, id, type.

  • +
+
+
+

Notes

+
+

Note

+
    +
  • If running this module with a non admin user, the logon rights will be an empty list as Administrator rights are required to query LSA for the information.

  • +
+
+
+
+

See Also

+
+

See also

+
+
community.windows.win_credential

The official documentation on the community.windows.win_credential module.

+
+
ansible.windows.win_group_membership

Manage Windows local group membership.

+
+
ansible.windows.win_user_right

Manage Windows User Rights.

+
+
+
+
+
+

Examples

+
- name: Get whoami information
+  ansible.windows.win_whoami:
+
+
+
+
+

Return Values

+

Common return values are documented here, the following are the fields unique to this module:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Key

Description

+

account

+

complex

+

The running account SID details.

+

Returned: success

+
+

account_name

+

string

+

The account name of the account SID.

+

Returned: success

+

Sample: "Administrator"

+
+

domain_name

+

string

+

The domain name of the account SID.

+

Returned: success

+

Sample: "DOMAIN"

+
+

sid

+

string

+

The SID in string form.

+

Returned: success

+

Sample: "S-1-5-21-1654078763-769949647-2968445802-500"

+
+

type

+

string

+

The type of SID.

+

Returned: success

+

Sample: "User"

+
+

authentication_package

+

string

+

The name of the authentication package used to authenticate the user in the session.

+

Returned: success

+

Sample: "Negotiate"

+
+

dns_domain_name

+

string

+

The DNS name of the logon session, this is an empty string if this is not set.

+

Returned: success

+

Sample: "DOMAIN.COM"

+
+

groups

+

list / elements=string

+

A list of groups and attributes that the user is a member of.

+

Returned: success

+

Sample: [{"account_name": "Domain Users", "attributes": ["Mandatory", "Enabled by default", "Enabled"], "domain_name": "DOMAIN", "sid": "S-1-5-21-1654078763-769949647-2968445802-513", "type": "Group"}, {"account_name": "Administrators", "attributes": ["Mandatory", "Enabled by default", "Enabled", "Owner"], "domain_name": "BUILTIN", "sid": "S-1-5-32-544", "type": "Alias"}]

+
+

impersonation_level

+

string

+

The impersonation level of the token, only valid if token_type is TokenImpersonation, see https://msdn.microsoft.com/en-us/library/windows/desktop/aa379572.aspx.

+

Returned: success

+

Sample: "SecurityAnonymous"

+
+

label

+

complex

+

The mandatory label set to the logon session.

+

Returned: success

+
+

account_name

+

string

+

The account name of the label SID.

+

Returned: success

+

Sample: "High Mandatory Level"

+
+

domain_name

+

string

+

The domain name of the label SID.

+

Returned: success

+

Sample: "Mandatory Label"

+
+

sid

+

string

+

The SID in string form.

+

Returned: success

+

Sample: "S-1-16-12288"

+
+

type

+

string

+

The type of SID.

+

Returned: success

+

Sample: "Label"

+
+

login_domain

+

string

+

The name of the domain used to authenticate the owner of the session.

+

Returned: success

+

Sample: "DOMAIN"

+
+

login_time

+

string

+

The logon time in ISO 8601 format

+

Returned: success

+

Sample: "2017-11-27T06:24:14.3321665+10:00"

+
+

logon_id

+

integer

+

The unique identifier of the logon session.

+

Returned: success

+

Sample: 20470143

+
+

logon_server

+

string

+

The name of the server used to authenticate the owner of the logon session.

+

Returned: success

+

Sample: "DC01"

+
+

logon_type

+

string

+

The logon type that identifies the logon method, see https://msdn.microsoft.com/en-us/library/windows/desktop/aa380129.aspx.

+

Returned: success

+

Sample: "Network"

+
+

privileges

+

dictionary

+

A dictionary of privileges and their state on the logon token.

+

Returned: success

+

Sample: {"SeChangeNotifyPrivileges": "enabled-by-default", "SeDebugPrivilege": "enabled", "SeRemoteShutdownPrivilege": "disabled"}

+
+

rights

+

list / elements=string

+

A list of logon rights assigned to the logon.

+

Returned: success and running user is a member of the local Administrators group

+

Sample: ["SeNetworkLogonRight", "SeInteractiveLogonRight", "SeBatchLogonRight", "SeRemoteInteractiveLogonRight"]

+
+

token_type

+

string

+

The token type to indicate whether it is a primary or impersonation token.

+

Returned: success

+

Sample: "TokenPrimary"

+
+

upn

+

string

+

The user principal name of the current user.

+

Returned: success

+

Sample: "Administrator@DOMAIN.COM"

+
+

user_flags

+

string

+

The user flags for the logon session, see UserFlags in https://msdn.microsoft.com/en-us/library/windows/desktop/aa380128.

+

Returned: success

+

Sample: "Winlogon"

+
+
+

Authors

+
    +
  • Jordan Borean (@jborean93)

  • +
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/environment_variables.html b/tag/2.4.0/collections/environment_variables.html new file mode 100644 index 00000000..82db8390 --- /dev/null +++ b/tag/2.4.0/collections/environment_variables.html @@ -0,0 +1,154 @@ + + + + + + + + Index of all Collection Environment Variables — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+ + +
+ +
+

Index of all Collection Environment Variables

+

The following index documents all environment variables declared by plugins in collections. +Environment variables used by the ansible-core configuration are documented in Ansible Configuration Settings.

+

No environment variables have been defined.

+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/index.html b/tag/2.4.0/collections/index.html new file mode 100644 index 00000000..13cc0c9a --- /dev/null +++ b/tag/2.4.0/collections/index.html @@ -0,0 +1,162 @@ + + + + + + + + Collection Index — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+ + +
+ +
+

Collection Index

+

These are the collections documented here.

+ +
+
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/index_filter.html b/tag/2.4.0/collections/index_filter.html new file mode 100644 index 00000000..9967b9ce --- /dev/null +++ b/tag/2.4.0/collections/index_filter.html @@ -0,0 +1,162 @@ + + + + + + + + Index of all Filter Plugins — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+ + +
+ +
+

Index of all Filter Plugins

+
+

ansible.windows

+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/collections/index_module.html b/tag/2.4.0/collections/index_module.html new file mode 100644 index 00000000..c6efbe84 --- /dev/null +++ b/tag/2.4.0/collections/index_module.html @@ -0,0 +1,204 @@ + + + + + + + + Index of all Modules — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+ + +
+ +
+

Index of all Modules

+
+

ansible.windows

+ +
+
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/index.html b/tag/2.4.0/index.html new file mode 100644 index 00000000..40e696f3 --- /dev/null +++ b/tag/2.4.0/index.html @@ -0,0 +1,170 @@ + + + + + + + Welcome to my Ansible collection documentation — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+ + +
+ +
+

Welcome to my Ansible collection documentation

+

This docsite contains documentation of ansible.windows.

+
+

Collections:

+ +
+ + +
+ + +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tag/2.4.0/objects.inv b/tag/2.4.0/objects.inv new file mode 100644 index 00000000..23ad09bb Binary files /dev/null and b/tag/2.4.0/objects.inv differ diff --git a/tag/2.4.0/search.html b/tag/2.4.0/search.html new file mode 100644 index 00000000..7b1f4e4b --- /dev/null +++ b/tag/2.4.0/search.html @@ -0,0 +1,164 @@ + + + + + + Search — Ansible collections documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ansible Collections Documentation
+
+
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+ + +
+ + + + +
+ +
+ +
+
+ + +
+ +
+ +
+

© Copyright Ansible contributors.

+
+ + + + +
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/tag/2.4.0/searchindex.js b/tag/2.4.0/searchindex.js new file mode 100644 index 00000000..c1103051 --- /dev/null +++ b/tag/2.4.0/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"Ansible.Windows": [[2, "ansible-windows"]], "Attributes": [[1, "attributes"]], "Authors": [[1, "authors"], [3, "authors"], [4, "authors"], [5, "authors"], [6, "authors"], [7, "authors"], [8, "authors"], [9, "authors"], [10, "authors"], [11, "authors"], [12, "authors"], [13, "authors"], [14, "authors"], [15, "authors"], [16, "authors"], [17, "authors"], [18, "authors"], [19, "authors"], [20, "authors"], [21, "authors"], [22, "authors"], [23, "authors"], [24, "authors"], [25, "authors"], [26, "authors"], [27, "authors"], [28, "authors"], [29, "authors"], [30, "authors"], [31, "authors"], [32, "authors"], [33, "authors"], [34, "authors"], [35, "authors"], [36, "authors"], [37, "authors"], [38, "authors"], [39, "authors"], [40, "authors"], [41, "authors"], [42, "authors"], [43, "authors"], [44, "authors"], [45, "authors"]], "Collection Index": [[47, "collection-index"]], "Collection links": [[1, "collection-links"], [3, "collection-links"], [4, "collection-links"], [5, "collection-links"], [6, "collection-links"], [7, "collection-links"], [8, "collection-links"], [9, "collection-links"], [10, "collection-links"], [11, "collection-links"], [12, "collection-links"], [13, "collection-links"], [14, "collection-links"], [15, "collection-links"], [16, "collection-links"], [17, "collection-links"], [18, "collection-links"], [19, "collection-links"], [20, "collection-links"], [21, "collection-links"], [22, "collection-links"], [23, "collection-links"], [24, "collection-links"], [25, "collection-links"], [26, "collection-links"], [27, "collection-links"], [28, "collection-links"], [29, "collection-links"], [30, "collection-links"], [31, "collection-links"], [32, "collection-links"], [33, "collection-links"], [34, "collection-links"], [35, "collection-links"], [36, "collection-links"], [37, "collection-links"], [38, "collection-links"], [39, "collection-links"], [40, "collection-links"], [41, "collection-links"], [42, "collection-links"], [43, "collection-links"], [44, "collection-links"], [45, "collection-links"]], "Collections in the Ansible Namespace": [[0, "collections-in-the-ansible-namespace"]], "Collections:": [[50, null]], "Communication": [[2, "communication"]], "DEPRECATED": [[12, "deprecated"], [13, "deprecated"], [14, "deprecated"]], "Description": [[2, "description"]], "Examples": [[1, "examples"], [3, "examples"], [4, "examples"], [5, "examples"], [6, "examples"], [7, "examples"], [8, "examples"], [9, "examples"], [10, "examples"], [11, "examples"], [12, "examples"], [13, "examples"], [14, "examples"], [15, "examples"], [16, "examples"], [17, "examples"], [18, "examples"], [19, "examples"], [20, "examples"], [21, "examples"], [22, "examples"], [23, "examples"], [24, "examples"], [25, "examples"], [26, "examples"], [27, "examples"], [28, "examples"], [29, "examples"], [30, "examples"], [31, "examples"], [32, "examples"], [33, "examples"], [34, "examples"], [35, "examples"], [36, "examples"], [37, "examples"], [38, "examples"], [39, "examples"], [40, "examples"], [41, "examples"], [42, "examples"], [43, "examples"], [44, "examples"], [45, "examples"]], "Filter Plugins": [[2, "filter-plugins"]], "Index of all Collection Environment Variables": [[46, "index-of-all-collection-environment-variables"]], "Index of all Filter Plugins": [[48, "index-of-all-filter-plugins"]], "Index of all Modules": [[49, "index-of-all-modules"]], "Input": [[3, "input"]], "Keyword parameters": [[3, "keyword-parameters"]], "Modules": [[2, "modules"]], "Notes": [[4, "notes"], [5, "notes"], [7, "notes"], [8, "notes"], [9, "notes"], [10, "notes"], [15, "notes"], [16, "notes"], [19, "notes"], [20, "notes"], [26, "notes"], [27, "notes"], [29, "notes"], [30, "notes"], [31, "notes"], [32, "notes"], [34, "notes"], [36, "notes"], [39, "notes"], [40, "notes"], [42, "notes"], [43, "notes"], [45, "notes"]], "Parameters": [[1, "parameters"], [4, "parameters"], [5, "parameters"], [6, "parameters"], [7, "parameters"], [8, "parameters"], [9, "parameters"], [10, "parameters"], [11, "parameters"], [12, "parameters"], [13, "parameters"], [14, "parameters"], [15, "parameters"], [16, "parameters"], [17, "parameters"], [18, "parameters"], [19, "parameters"], [20, "parameters"], [21, "parameters"], [22, "parameters"], [23, "parameters"], [24, "parameters"], [25, "parameters"], [26, "parameters"], [27, "parameters"], [28, "parameters"], [29, "parameters"], [30, "parameters"], [31, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [44, "parameters"]], "Plugin Index": [[2, "plugin-index"]], "Plugin indexes:": [[50, null]], "Reference indexes:": [[50, null]], "Requirements": [[35, "requirements"]], "Return Value": [[3, "return-value"]], "Return Values": [[1, "return-values"], [5, "return-values"], [8, "return-values"], [9, "return-values"], [10, "return-values"], [12, "return-values"], [13, "return-values"], [14, "return-values"], [15, "return-values"], [16, "return-values"], [17, "return-values"], [19, "return-values"], [20, "return-values"], [21, "return-values"], [23, "return-values"], [24, "return-values"], [26, "return-values"], [28, "return-values"], [29, "return-values"], [30, "return-values"], [31, "return-values"], [32, "return-values"], [33, "return-values"], [34, "return-values"], [35, "return-values"], [36, "return-values"], [37, "return-values"], [38, "return-values"], [39, "return-values"], [40, "return-values"], [41, "return-values"], [42, "return-values"], [43, "return-values"], [44, "return-values"], [45, "return-values"]], "See Also": [[1, "see-also"], [3, "see-also"], [4, "see-also"], [5, "see-also"], [6, "see-also"], [7, "see-also"], [9, "see-also"], [10, "see-also"], [12, "see-also"], [13, "see-also"], [14, "see-also"], [16, "see-also"], [17, "see-also"], [18, "see-also"], [20, "see-also"], [21, "see-also"], [22, "see-also"], [23, "see-also"], [24, "see-also"], [25, "see-also"], [26, "see-also"], [27, "see-also"], [28, "see-also"], [29, "see-also"], [30, "see-also"], [31, "see-also"], [32, "see-also"], [33, "see-also"], [34, "see-also"], [36, "see-also"], [37, "see-also"], [38, "see-also"], [39, "see-also"], [40, "see-also"], [41, "see-also"], [42, "see-also"], [43, "see-also"], [44, "see-also"], [45, "see-also"]], "Status": [[12, "status"], [13, "status"], [14, "status"]], "Synopsis": [[1, "synopsis"], [3, "synopsis"], [4, "synopsis"], [5, "synopsis"], [6, "synopsis"], [7, "synopsis"], [8, "synopsis"], [9, "synopsis"], [10, "synopsis"], [11, "synopsis"], [12, "synopsis"], [13, "synopsis"], [14, "synopsis"], [15, "synopsis"], [16, "synopsis"], [17, "synopsis"], [18, "synopsis"], [19, "synopsis"], [20, "synopsis"], [21, "synopsis"], [22, "synopsis"], [23, "synopsis"], [24, "synopsis"], [25, "synopsis"], [26, "synopsis"], [27, "synopsis"], [28, "synopsis"], [29, "synopsis"], [30, "synopsis"], [31, "synopsis"], [32, "synopsis"], [33, "synopsis"], [34, "synopsis"], [35, "synopsis"], [36, "synopsis"], [37, "synopsis"], [38, "synopsis"], [39, "synopsis"], [40, "synopsis"], [41, "synopsis"], [42, "synopsis"], [43, "synopsis"], [44, "synopsis"], [45, "synopsis"]], "Welcome to my Ansible collection documentation": [[50, "welcome-to-my-ansible-collection-documentation"]], "ansible.windows": [[48, "ansible-windows"], [49, "ansible-windows"]], "ansible.windows.async_status module \u2013 Obtain status of asynchronous task": [[1, "ansible-windows-async-status-module-obtain-status-of-asynchronous-task"]], "ansible.windows.quote filter \u2013 Quotes argument(s) for various Windows shells": [[3, "ansible-windows-quote-filter-quotes-argument-s-for-various-windows-shells"]], "ansible.windows.setup module \u2013 Gathers facts about remote hosts": [[4, "ansible-windows-setup-module-gathers-facts-about-remote-hosts"]], "ansible.windows.slurp module \u2013 Slurps a file from remote nodes": [[5, "ansible-windows-slurp-module-slurps-a-file-from-remote-nodes"]], "ansible.windows.win_acl module \u2013 Set file/directory/registry/certificate permissions for a system user or group": [[7, "ansible-windows-win-acl-module-set-file-directory-registry-certificate-permissions-for-a-system-user-or-group"]], "ansible.windows.win_acl_inheritance module \u2013 Change ACL inheritance": [[6, "ansible-windows-win-acl-inheritance-module-change-acl-inheritance"]], "ansible.windows.win_certificate_store module \u2013 Manages the certificate store": [[8, "ansible-windows-win-certificate-store-module-manages-the-certificate-store"]], "ansible.windows.win_command module \u2013 Executes a command on a remote Windows node": [[9, "ansible-windows-win-command-module-executes-a-command-on-a-remote-windows-node"]], "ansible.windows.win_copy module \u2013 Copies files to remote locations on windows hosts": [[10, "ansible-windows-win-copy-module-copies-files-to-remote-locations-on-windows-hosts"]], "ansible.windows.win_dns_client module \u2013 Configures DNS lookup on Windows hosts": [[11, "ansible-windows-win-dns-client-module-configures-dns-lookup-on-windows-hosts"]], "ansible.windows.win_domain module \u2013 Ensures the existence of a Windows domain": [[14, "ansible-windows-win-domain-module-ensures-the-existence-of-a-windows-domain"]], "ansible.windows.win_domain_controller module \u2013 Manage domain controller/member server state for a Windows host": [[12, "ansible-windows-win-domain-controller-module-manage-domain-controller-member-server-state-for-a-windows-host"]], "ansible.windows.win_domain_membership module \u2013 Manage domain/workgroup membership for a Windows host": [[13, "ansible-windows-win-domain-membership-module-manage-domain-workgroup-membership-for-a-windows-host"]], "ansible.windows.win_dsc module \u2013 Invokes a PowerShell DSC configuration": [[15, "ansible-windows-win-dsc-module-invokes-a-powershell-dsc-configuration"]], "ansible.windows.win_environment module \u2013 Modify environment variables on windows hosts": [[16, "ansible-windows-win-environment-module-modify-environment-variables-on-windows-hosts"]], "ansible.windows.win_feature module \u2013 Installs and uninstalls Windows Features on Windows Server": [[17, "ansible-windows-win-feature-module-installs-and-uninstalls-windows-features-on-windows-server"]], "ansible.windows.win_file module \u2013 Creates, touches or removes files or directories": [[18, "ansible-windows-win-file-module-creates-touches-or-removes-files-or-directories"]], "ansible.windows.win_find module \u2013 Return a list of files based on specific criteria": [[19, "ansible-windows-win-find-module-return-a-list-of-files-based-on-specific-criteria"]], "ansible.windows.win_get_url module \u2013 Downloads file from HTTP, HTTPS, or FTP to node": [[20, "ansible-windows-win-get-url-module-downloads-file-from-http-https-or-ftp-to-node"]], "ansible.windows.win_group module \u2013 Add and remove local groups": [[22, "ansible-windows-win-group-module-add-and-remove-local-groups"]], "ansible.windows.win_group_membership module \u2013 Manage Windows local group membership": [[21, "ansible-windows-win-group-membership-module-manage-windows-local-group-membership"]], "ansible.windows.win_hostname module \u2013 Manages local Windows computer name": [[23, "ansible-windows-win-hostname-module-manages-local-windows-computer-name"]], "ansible.windows.win_optional_feature module \u2013 Manage optional Windows features": [[24, "ansible-windows-win-optional-feature-module-manage-optional-windows-features"]], "ansible.windows.win_owner module \u2013 Set owner": [[25, "ansible-windows-win-owner-module-set-owner"]], "ansible.windows.win_package module \u2013 Installs/uninstalls an installable package": [[26, "ansible-windows-win-package-module-installs-uninstalls-an-installable-package"]], "ansible.windows.win_path module \u2013 Manage Windows path environment variables": [[27, "ansible-windows-win-path-module-manage-windows-path-environment-variables"]], "ansible.windows.win_ping module \u2013 A windows version of the classic ping module": [[28, "ansible-windows-win-ping-module-a-windows-version-of-the-classic-ping-module"]], "ansible.windows.win_powershell module \u2013 Run PowerShell scripts": [[29, "ansible-windows-win-powershell-module-run-powershell-scripts"]], "ansible.windows.win_reboot module \u2013 Reboot a windows machine": [[30, "ansible-windows-win-reboot-module-reboot-a-windows-machine"]], "ansible.windows.win_reg_stat module \u2013 Get information about Windows registry keys": [[31, "ansible-windows-win-reg-stat-module-get-information-about-windows-registry-keys"]], "ansible.windows.win_regedit module \u2013 Add, change, or remove registry keys and values": [[32, "ansible-windows-win-regedit-module-add-change-or-remove-registry-keys-and-values"]], "ansible.windows.win_service module \u2013 Manage and query Windows services": [[34, "ansible-windows-win-service-module-manage-and-query-windows-services"]], "ansible.windows.win_service_info module \u2013 Gather information about Windows services": [[33, "ansible-windows-win-service-info-module-gather-information-about-windows-services"]], "ansible.windows.win_share module \u2013 Manage Windows shares": [[35, "ansible-windows-win-share-module-manage-windows-shares"]], "ansible.windows.win_shell module \u2013 Execute shell commands on target hosts": [[36, "ansible-windows-win-shell-module-execute-shell-commands-on-target-hosts"]], "ansible.windows.win_stat module \u2013 Get information about Windows files": [[37, "ansible-windows-win-stat-module-get-information-about-windows-files"]], "ansible.windows.win_tempfile module \u2013 Creates temporary files and directories": [[38, "ansible-windows-win-tempfile-module-creates-temporary-files-and-directories"]], "ansible.windows.win_template module \u2013 Template a file out to a remote server": [[39, "ansible-windows-win-template-module-template-a-file-out-to-a-remote-server"]], "ansible.windows.win_updates module \u2013 Download and install Windows updates": [[40, "ansible-windows-win-updates-module-download-and-install-windows-updates"]], "ansible.windows.win_uri module \u2013 Interacts with webservices": [[41, "ansible-windows-win-uri-module-interacts-with-webservices"]], "ansible.windows.win_user module \u2013 Manages local Windows user accounts": [[42, "ansible-windows-win-user-module-manages-local-windows-user-accounts"]], "ansible.windows.win_user_right module \u2013 Manage Windows User Rights": [[43, "ansible-windows-win-user-right-module-manage-windows-user-rights"]], "ansible.windows.win_wait_for module \u2013 Waits for a condition before continuing": [[44, "ansible-windows-win-wait-for-module-waits-for-a-condition-before-continuing"]], "ansible.windows.win_whoami module \u2013 Get information about the current user and process": [[45, "ansible-windows-win-whoami-module-get-information-about-the-current-user-and-process"]]}, "docnames": ["collections/ansible/index", "collections/ansible/windows/async_status_module", "collections/ansible/windows/index", "collections/ansible/windows/quote_filter", "collections/ansible/windows/setup_module", "collections/ansible/windows/slurp_module", "collections/ansible/windows/win_acl_inheritance_module", "collections/ansible/windows/win_acl_module", "collections/ansible/windows/win_certificate_store_module", "collections/ansible/windows/win_command_module", "collections/ansible/windows/win_copy_module", "collections/ansible/windows/win_dns_client_module", "collections/ansible/windows/win_domain_controller_module", "collections/ansible/windows/win_domain_membership_module", "collections/ansible/windows/win_domain_module", "collections/ansible/windows/win_dsc_module", "collections/ansible/windows/win_environment_module", "collections/ansible/windows/win_feature_module", "collections/ansible/windows/win_file_module", "collections/ansible/windows/win_find_module", "collections/ansible/windows/win_get_url_module", "collections/ansible/windows/win_group_membership_module", "collections/ansible/windows/win_group_module", "collections/ansible/windows/win_hostname_module", "collections/ansible/windows/win_optional_feature_module", "collections/ansible/windows/win_owner_module", "collections/ansible/windows/win_package_module", "collections/ansible/windows/win_path_module", "collections/ansible/windows/win_ping_module", "collections/ansible/windows/win_powershell_module", "collections/ansible/windows/win_reboot_module", "collections/ansible/windows/win_reg_stat_module", "collections/ansible/windows/win_regedit_module", "collections/ansible/windows/win_service_info_module", "collections/ansible/windows/win_service_module", "collections/ansible/windows/win_share_module", "collections/ansible/windows/win_shell_module", "collections/ansible/windows/win_stat_module", "collections/ansible/windows/win_tempfile_module", "collections/ansible/windows/win_template_module", "collections/ansible/windows/win_updates_module", "collections/ansible/windows/win_uri_module", "collections/ansible/windows/win_user_module", "collections/ansible/windows/win_user_right_module", "collections/ansible/windows/win_wait_for_module", "collections/ansible/windows/win_whoami_module", "collections/environment_variables", "collections/index", "collections/index_filter", "collections/index_module", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["collections/ansible/index.rst", "collections/ansible/windows/async_status_module.rst", "collections/ansible/windows/index.rst", "collections/ansible/windows/quote_filter.rst", "collections/ansible/windows/setup_module.rst", "collections/ansible/windows/slurp_module.rst", "collections/ansible/windows/win_acl_inheritance_module.rst", "collections/ansible/windows/win_acl_module.rst", "collections/ansible/windows/win_certificate_store_module.rst", "collections/ansible/windows/win_command_module.rst", "collections/ansible/windows/win_copy_module.rst", "collections/ansible/windows/win_dns_client_module.rst", "collections/ansible/windows/win_domain_controller_module.rst", "collections/ansible/windows/win_domain_membership_module.rst", "collections/ansible/windows/win_domain_module.rst", "collections/ansible/windows/win_dsc_module.rst", "collections/ansible/windows/win_environment_module.rst", "collections/ansible/windows/win_feature_module.rst", "collections/ansible/windows/win_file_module.rst", "collections/ansible/windows/win_find_module.rst", "collections/ansible/windows/win_get_url_module.rst", "collections/ansible/windows/win_group_membership_module.rst", "collections/ansible/windows/win_group_module.rst", "collections/ansible/windows/win_hostname_module.rst", "collections/ansible/windows/win_optional_feature_module.rst", "collections/ansible/windows/win_owner_module.rst", "collections/ansible/windows/win_package_module.rst", "collections/ansible/windows/win_path_module.rst", "collections/ansible/windows/win_ping_module.rst", "collections/ansible/windows/win_powershell_module.rst", "collections/ansible/windows/win_reboot_module.rst", "collections/ansible/windows/win_reg_stat_module.rst", "collections/ansible/windows/win_regedit_module.rst", "collections/ansible/windows/win_service_info_module.rst", "collections/ansible/windows/win_service_module.rst", "collections/ansible/windows/win_share_module.rst", "collections/ansible/windows/win_shell_module.rst", "collections/ansible/windows/win_stat_module.rst", "collections/ansible/windows/win_tempfile_module.rst", "collections/ansible/windows/win_template_module.rst", "collections/ansible/windows/win_updates_module.rst", "collections/ansible/windows/win_uri_module.rst", "collections/ansible/windows/win_user_module.rst", "collections/ansible/windows/win_user_right_module.rst", "collections/ansible/windows/win_wait_for_module.rst", "collections/ansible/windows/win_whoami_module.rst", "collections/environment_variables.rst", "collections/index.rst", "collections/index_filter.rst", "collections/index_module.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [2, 4, 6, 7, 9, 15, 16, 20, 24, 26, 27, 29, 31, 33, 34, 36, 39, 41, 42, 45, 48], "0": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "00": [9, 15, 29, 36, 45], "00z": 42, "01": 12, "02": [9, 15, 29, 36], "0240359e": 26, "04": 26, "07": 12, "09": [9, 36], "09cb79e8fc7453c84a07f644e441fd81623b7f98": [19, 37], "0c13154e5d00": 26, "0x": [26, 31], "0x01": 31, "0x16": 31, "0x80240020": 40, "0xbe": 32, "0xef": 32, "0xff2500ae": 32, "0xffffffff": 34, "1": [1, 6, 7, 8, 9, 15, 16, 19, 20, 26, 29, 30, 31, 34, 37, 40, 42, 44, 45], "10": [1, 4, 19, 20, 32, 42, 44, 45], "100": 1, "1000": [1, 34], "10000": 33, "1001": 42, "1024": [19, 37], "1048576": 19, "1066": 33, "10d": 19, "11": [6, 9, 37, 40, 45], "11540": [10, 39], "11t04": 29, "12": [7, 29], "120": 30, "1200": 40, "120000": 33, "1220": [10, 20], "12288": 45, "1234": [15, 44], "127": 44, "1337": 32, "14": [2, 40, 45], "1406487": [20, 44], "1423796390": 10, "147729857856000": 10, "1477984205": [19, 37], "15": [14, 19, 37], "150": 44, "16": [26, 39, 45], "1654078763": 45, "167f0d79": 26, "168": 11, "168ba8c488463f88c6648466a22484b6189e165f": 7, "16b06f60": 26, "17120579f8e2": 26, "18": [9, 36], "192": 11, "194": 40, "1ce20aba": 33, "1d": 19, "1ddeb766e809": 33, "1g": 19, "1gb": 19, "1h": 19, "1mb": 19, "1st": 29, "1w": 19, "2": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "200": [20, 41], "2001": 11, "2007": 40, "2008": 17, "2012": [11, 12, 17, 26, 35, 40], "2012r2": 14, "20150212": [10, 39], "2016": [9, 36, 40], "2017": 45, "2019": [15, 26], "2021": 29, "2022": 12, "2024": 42, "20470143": 45, "21": [42, 45], "2147483647": 26, "2147942402": 40, "22": 31, "220915": [10, 39], "22t13": 15, "23": [30, 41], "2311892": 15, "24": [42, 45], "25": [9, 36], "26": [9, 36], "26ea": 26, "27t06": 45, "27t14": 42, "27th": 42, "2828151810": 42, "2968445802": 45, "2f": 20, "2nd": 29, "3": [11, 12, 13, 14, 16, 24, 26, 29, 32, 40, 44], "30": [20, 26, 40, 41, 42], "300": 44, "3004365": 40, "3010": 26, "30pm": 42, "31": 15, "32": 45, "3221225477": 26, "325771": [9, 36], "32f8": 26, "331f7e34ba97": 26, "3321665": 45, "3322259488": 42, "34": 11, "3600": [19, 30, 40], "360874038559": 1, "3766": 26, "3939402796": 42, "3b20": 26, "3rd": [26, 29], "4": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "401": [12, 20, 26, 41], "4089": 40, "4169": 1, "4294967295": 26, "429568": [9, 36], "4321": 15, "44": 17, "4421": 33, "46": 29, "4694240z": 29, "4884": 26, "48ae": 26, "4a35": 26, "4acd": 26, "4f57": 26, "4ff2": 26, "5": [8, 11, 15, 24, 29, 30, 42, 44, 45], "50": [20, 26, 41], "500": 45, "5000": 34, "509": 8, "513": 45, "5135": 33, "544": 45, "54447": 41, "57": 15, "5cbbc385da37": 26, "5e9b7962f9a": 26, "6": [11, 19, 26, 30], "60": 42, "600": 30, "666": 26, "6a4c": 26, "6b40": 26, "6e642bb8dd5c2e027bf21dd923337cbb4214f827": [10, 20], "7": [26, 29, 39, 40], "755339": [9, 36], "769949647": 45, "786a": 26, "7debe4eb": 26, "7z": 26, "7zip": 26, "8": [16, 19, 26, 35, 39, 40], "8000": 44, "8080": 20, "85f2": 26, "8601": [29, 45], "86400": [19, 33], "8901": 15, "9": 29, "9317": 26, "9430": 33, "9665567e": 26, "97": 10, "9851": 33, "9e94": 26, "9th": 29, "A": [2, 3, 8, 9, 16, 17, 21, 23, 26, 27, 29, 31, 32, 33, 34, 35, 36, 40, 41, 42, 43, 44, 45, 49], "AND": 19, "As": [26, 35, 40], "Be": 20, "By": [3, 15, 20, 26, 29, 30, 40, 41], "For": [3, 4, 6, 7, 9, 10, 12, 13, 14, 16, 18, 19, 20, 22, 26, 27, 28, 29, 30, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43], "ISE": 39, "If": [1, 4, 7, 8, 9, 10, 12, 13, 14, 15, 17, 18, 19, 20, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45], "In": [16, 32, 36, 37], "It": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "NOT": [18, 28, 29], "No": [9, 10, 29, 36, 46], "Not": [9, 16, 17], "One": [19, 26, 30], "Or": 30, "The": [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], "There": [9, 15, 36], "These": [0, 2, 3, 4, 26, 29, 34, 43, 47], "To": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "Will": [1, 19, 26, 33, 37], "_": 15, "_measure_subset": 4, "_oper": 40, "_operation_opt": 40, "_password": 15, "_raw_param": 9, "_usernam": 15, "a440": 26, "a97e6837f60cec6da4491bab387296bbcd72bdba": 20, "a99c": 26, "aa379572": 45, "aa380128": 45, "aa380129": 45, "aa90": 26, "aa9b": 26, "abc123": 10, "abl": [8, 34, 35], "abort": 30, "about": [2, 6, 7, 18, 25, 29, 32, 34, 40, 49], "abov": [20, 26, 32, 41], "absent": [6, 7, 8, 16, 17, 18, 21, 22, 24, 26, 27, 32, 34, 35, 42, 44], "absolut": [10, 19, 37, 38, 39], "ac": 6, "ac76ba86": 26, "accept": [21, 30, 33, 36, 37, 40], "accept_list": 40, "acces": 26, "access": [6, 7, 8, 9, 10, 15, 18, 19, 20, 26, 29, 33, 34, 35, 36, 37, 41], "accesscontrol": 7, "accessrul": 7, "accord": 40, "account": [2, 4, 5, 8, 13, 15, 34, 43, 45, 49], "account_dis": 42, "account_expir": 42, "account_lock": 42, "account_nam": 45, "acl": [2, 7, 18, 49], "act": 7, "action": [1, 8, 10, 12, 13, 14, 26, 29, 30, 33, 34, 35, 39, 40, 43], "activ": [14, 15, 29, 32, 44], "actual": [5, 9, 15, 26, 30, 36, 41], "ad": [1, 4, 6, 7, 8, 9, 12, 13, 14, 16, 19, 21, 26, 29, 35, 36, 37, 39, 40, 42, 43], "adam": 32, "adapt": [11, 40], "adapter_nam": 11, "add": [2, 7, 13, 17, 21, 26, 27, 29, 30, 31, 33, 34, 35, 39, 42, 43, 49], "addit": [4, 21, 27, 29, 39], "addition": [30, 41], "address": [11, 44], "addressbook": 8, "addsdeploy": 12, "addsdomaincontrol": 12, "admin": [10, 12, 13, 45], "administr": [7, 10, 12, 19, 21, 34, 35, 37, 38, 40, 42, 43, 45], "adsi": 42, "ae29": 40, "aedb": 26, "af0071f3": 26, "affect": 9, "after": [4, 9, 10, 12, 13, 16, 17, 20, 26, 29, 30, 33, 34, 39, 40, 42, 44], "ag": 19, "again": [16, 27, 30], "against": [1, 19, 32], "age_stamp": 19, "agent": [20, 26, 41], "algorithm": [19, 20, 37], "alia": [29, 45], "alias": [5, 11, 18, 19, 20, 30, 31, 32, 34, 37, 38, 41, 44], "aliv": 40, "all": [4, 9, 10, 11, 16, 17, 18, 20, 21, 24, 26, 29, 30, 31, 32, 33, 34, 36, 37, 40, 41, 42, 43, 44, 45, 50], "allo": 26, "allow": [7, 8, 21, 26, 27, 29, 32, 34, 35, 42], "allowalltrustedapp": 26, "along": [14, 40], "alphabet": 19, "alreadi": [13, 26, 30, 34, 39, 40, 41, 42], "also": [8, 15, 35], "altern": [12, 13, 14, 20, 26, 28, 41], "alwai": [1, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 26, 27, 29, 30, 31, 33, 34, 36, 37, 39, 40, 41, 42, 44], "ambigu": 43, "amount": [29, 40, 44], "an": [1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 24, 27, 28, 29, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43, 45, 49], "anderson": 24, "andrew": 21, "andrewsaraceni": 21, "angstwad": [17, 20, 42], "ani": [1, 3, 7, 8, 9, 12, 15, 17, 20, 26, 27, 29, 32, 33, 34, 36, 39, 40, 41, 42, 43, 44], "anonym": 15, "anoth": [9, 10, 16, 29, 37], "another_var": 16, "anotherstrongpass": 8, "ansibl": [46, 47], "ansible_async": 1, "ansible_become_method": 26, "ansible_become_pass": 26, "ansible_become_password": [10, 26], "ansible_become_us": [10, 26], "ansible_hostnam": 43, "ansible_job_id": 1, "ansible_manag": 39, "ansible_my_fact": 4, "ansible_password": 15, "ansible_remote_tmp": 10, "ansible_ssh_arg": 40, "ansible_us": [10, 15], "ansible_winrm_transport": 8, "ansible_wu": 40, "antimalware_light": 33, "anyth": [10, 29, 31, 37], "apach": [6, 25], "api": [9, 36], "app": 26, "appdata": [10, 32, 38], "appear": [20, 26, 27, 29, 30, 40, 41], "append": [27, 40], "apphost": 31, "appli": [7, 15, 16, 17, 26, 30, 32, 40], "applic": [9, 16, 26, 27, 29, 40, 41, 44], "applicationdb": 26, "appmodelunlock": 26, "apppool": [7, 8], "appropri": 20, "appx": 26, "appxbundl": 26, "appxpackag": 26, "ar": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47], "archiv": [15, 19, 37], "arg": [9, 29, 36], "argument": [2, 9, 26, 29, 33, 34, 36, 48], "argument1": 3, "argv": [3, 9], "arrai": [15, 32], "articl": [17, 40], "asn": 8, "aspx": [7, 8, 40, 45], "assembl": 10, "assembli": 29, "assemblyqualifiednam": 29, "assign": [11, 12, 29, 34, 43, 45], "associ": 29, "async": [1, 40], "async_statu": [2, 49], "async_wrapp": 1, "asynchron": [2, 49], "atim": 19, "attempt": [9, 30, 44], "attribut": [15, 19, 37, 45], "auth": [20, 26, 29, 41], "authent": [15, 20, 26, 41, 45], "authentication_packag": 45, "authenticationinfo": 15, "author": 2, "authroot": 8, "auto": [26, 33, 34], "autodecrypt": 10, "autom": 40, "automat": [4, 14, 40], "avail": [1, 4, 13, 15, 16, 17, 20, 24, 26, 27, 34, 40, 41, 44], "avoid": [4, 15, 34, 43], "b": [26, 31], "b0bp4ssw0rd": 42, "b198": 26, "b397a02d893c": 26, "b64decod": 5, "b699": 26, "back": [10, 29, 30, 34, 37, 39, 40], "background": [36, 40], "backslash": [10, 27], "backup": [9, 10, 21, 35, 39], "backup_fil": [10, 39], "backuptarget": 9, "bad": 29, "bak": [10, 39], "banik": 23, "bar": [37, 41], "base": [2, 3, 8, 9, 14, 15, 16, 26, 27, 29, 30, 33, 35, 36, 37, 40, 42, 49], "base64": [5, 8, 33], "basenam": 10, "basetyp": 29, "basic": [15, 20, 26, 29, 41], "baumann": 35, "bb35": 26, "bc05633694e675449136679a658281f17a191087": 8, "bc94a1db745f": 26, "bd7af104cf1872bdb518d95c9534ea941665fd27": 8, "becaus": [10, 12, 34, 39, 40], "becom": [8, 10, 12, 16, 20, 26, 27, 40, 41, 44], "become_flag": 26, "become_method": [8, 26, 40], "become_us": [8, 10, 40], "been": [6, 12, 13, 14, 16, 20, 26, 30, 31, 34, 40, 42, 46], "befor": [2, 3, 9, 16, 20, 23, 26, 27, 29, 30, 32, 33, 34, 36, 41, 49], "before_valu": 16, "begin": [11, 34, 39], "behavior": [18, 30, 33, 40], "behaviour": [20, 26, 29, 30, 33, 34], "behind": 29, "being": [1, 10, 15, 18, 20, 26, 29, 30, 39, 41], "belong": 33, "below": [35, 39], "best": [16, 34, 36, 39], "better": 36, "between": [20, 34, 44], "bewar": [30, 32, 39, 40], "bin": 4, "binari": [8, 32, 33], "binary_properti": 31, "bind": [8, 15], "bindinginfo": 15, "blacklist": 40, "blakfeld": 41, "blob": 5, "block": 39, "block_end_str": 39, "block_start_str": 39, "bmlvdk": 38, "bob": 42, "bodi": 41, "boolean": [4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 19, 20, 23, 24, 25, 26, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42], "boot": 30, "boot_time_command": 30, "borean": [2, 3, 8, 10, 19, 26, 29, 31, 32, 33, 43, 44, 45], "both": [8, 9, 10, 26, 29, 30, 37, 43], "bounc": 34, "bovin": 7, "box": 10, "branchcach": 35, "brian": [11, 16], "briantist": [11, 16], "broadcast": [16, 27, 33, 34], "brown": 41, "browseonli": 40, "bubbl": 4, "build": 38, "built": 29, "builtin": [1, 4, 5, 7, 9, 10, 15, 18, 19, 20, 22, 28, 29, 30, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "bypass": [1, 8, 29], "bypass_host_loop": 1, "byte": [19, 32, 37, 39, 41], "c": [3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 44], "c676a89018c4d5902353545343634f35e6b3a659": 15, "c68d103bdccf": 26, "ca": 8, "cach": [1, 40], "caching_mod": 35, "cachingmod": 35, "calcul": [20, 26], "call": [4, 15, 26, 41], "caller": 4, "can": [1, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 26, 27, 29, 30, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44], "can_pause_and_continu": 34, "cancel": 40, "cannot": [8, 9, 14, 16, 20, 30, 36, 43], "caption": 11, "captur": 36, "carson": 24, "case": [12, 16, 27, 35, 36, 37, 40], "cast": 31, "catalog": 40, "categori": [29, 40], "category_id": 29, "category_info": 29, "category_nam": 40, "categoryinfo": 29, "caus": [28, 29, 30, 39], "cchurch": [28, 37, 42], "center": 40, "ceo": 35, "cer": 8, "cert": [7, 8, 20, 26, 41], "certain": [9, 33, 39, 44], "certif": [2, 6, 18, 20, 25, 26, 37, 41, 49], "certificateauthor": 8, "certificatestorenam": 15, "certificatethumbprint": 15, "cf2bea3c": 26, "cfg": 39, "chang": [1, 2, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 29, 31, 34, 35, 36, 37, 39, 42, 43, 49], "channel": 2, "char": 3, "charact": [14, 20, 39], "chdir": [9, 26, 29, 36], "check": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "check_mod": [1, 29], "checkmod": 29, "checkpoint": 33, "checksum": [10, 19, 20, 37], "checksum_algorithm": [19, 20, 37], "checksum_dest": 20, "checksum_src": 20, "checksum_url": 20, "child": [26, 36], "childitem": [15, 29], "chocolatei": [17, 24, 26, 40], "choic": [1, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "choos": 19, "chri": [22, 28, 34, 37, 42], "chrishoffman": [22, 34], "church": [28, 37, 42], "ciminst": [15, 30], "cimmethod": 15, "circumst": [9, 36], "class": [20, 29], "classic": [2, 49], "classnam": 30, "classpath": 27, "clean": [1, 13, 29], "cleanup": 1, "clear": [32, 42], "clever": 12, "client": [11, 15, 17, 20, 26, 40, 41], "client_cert": [20, 26, 41], "client_cert_password": [20, 26, 41], "clobber": [10, 39], "clock": 30, "close": 44, "closer": 27, "cluster": [9, 35, 36], "cmd": [3, 9, 34, 36], "cmdlet": [12, 17, 24, 26, 35], "cmdletbind": 29, "code": [9, 17, 20, 26, 29, 33, 36, 40, 41], "codepag": [9, 36], "collect": 2, "com": [4, 7, 8, 9, 12, 15, 20, 26, 29, 30, 35, 36, 40, 41, 43, 45], "combin": 6, "come": [15, 30], "comma": [7, 15, 17, 32, 35, 41, 42], "command": [2, 3, 12, 17, 18, 24, 29, 30, 33, 34, 45, 49], "comment": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "common": [1, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "common_files_dir": 31, "commonfilesdir": 31, "commun": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "compani": 35, "compar": [6, 19, 27], "comparison": 27, "complet": [15, 20, 21, 23, 24, 26, 40, 44], "complex": [6, 10, 15, 17, 19, 29, 33, 37, 45], "compon": [26, 34], "comput": [2, 12, 13, 14, 49], "condit": [1, 2, 29, 49], "conf": [10, 18, 39], "config": [10, 39], "configur": [2, 3, 12, 23, 26, 32, 33, 34, 39, 40, 46, 49], "configurationfil": 26, "conflict": 15, "conjunct": [19, 26, 34], "connect": [10, 11, 13, 16, 20, 26, 28, 30, 40, 41, 44], "connect_timeout": [30, 44], "connect_timeout_sec": 30, "connector": 40, "consid": [10, 26, 29, 36], "consider": 1, "consol": [9, 29, 36], "constant": [34, 43], "contain": [5, 8, 9, 12, 15, 19, 20, 21, 26, 29, 31, 32, 33, 37, 39, 40, 50], "containerinherit": 7, "content": [5, 10, 19, 20, 26, 39, 41], "content_length": 41, "content_typ": 41, "context": 26, "continu": [2, 29, 33, 34, 40, 49], "continue_pend": 33, "control": [1, 2, 6, 10, 11, 13, 14, 19, 20, 26, 29, 32, 33, 34, 35, 39, 40, 41, 43, 49], "controlmast": 40, "controls_accept": 33, "convent": 15, "convert": [15, 20, 26], "convertto": 29, "copi": [2, 6, 39, 49], "core": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], "coremessag": 34, "coremessagingregistrar": 34, "corpor": 40, "correct": [8, 15], "correctli": 15, "correspond": [1, 10, 17, 29, 30, 32, 39, 40], "corwin": 41, "could": [26, 30, 40], "count": [33, 39], "crash": [28, 34], "creat": [2, 6, 7, 8, 9, 10, 12, 14, 15, 19, 22, 25, 29, 32, 34, 36, 37, 39, 41, 42, 43, 49], "create_dns_deleg": 14, "creates_": 26, "creates_path": 26, "creates_servic": 26, "creates_vers": 26, "creation": 14, "creationtim": [19, 37], "credenti": [8, 12, 13, 20, 26, 29, 30, 41], "credssp": [8, 20, 26, 41], "credusernam": 29, "criteria": [2, 33, 49], "critic": [33, 34, 40], "criticalupd": 40, "cryptographi": 8, "ctime": 19, "cumul": 40, "current": [2, 8, 9, 10, 16, 19, 20, 26, 27, 29, 32, 33, 34, 36, 37, 40, 41, 49], "current_vers": 31, "current_version_default": 31, "currentus": [8, 20, 26, 41], "currentvers": [26, 31], "custom": [9, 12, 15, 29, 30, 33, 34], "custom_app_var": 16, "d": [12, 19, 26, 32, 40, 42], "d1437f51": 26, "dabondi": 35, "dag": [38, 41], "dagwieer": [38, 41], "dai": [19, 42], "dat": 32, "data": [5, 9, 12, 19, 26, 28, 29, 32, 33, 37], "data_chang": 32, "data_item": 33, "data_type_chang": 32, "databas": [12, 14], "database_path": [12, 14], "datatyp": 32, "date": [15, 26, 39, 42], "datetim": [15, 29, 31], "datetimeoffset": 29, "datetimeopt": 15, "datetimeresourc": 15, "davi": [2, 9, 11, 12, 13, 14, 27, 30, 36, 40], "david": 35, "db8": 11, "dbname": 26, "dbserver": 26, "dc": [12, 13], "dc01": 45, "dc_promot": 12, "de23": 40, "deal": [10, 26], "debug": [5, 11, 12, 29, 37], "debugprefer": 29, "decim": 32, "declar": 46, "decrypt": 10, "dedic": 6, "dedupl": 6, "deep": 29, "default": [1, 3, 4, 6, 7, 8, 10, 12, 14, 15, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "defaultport": 15, "defin": [9, 16, 20, 26, 29, 33, 34, 35, 39, 40, 41, 46], "definit": [15, 40], "delai": [1, 30, 33, 34, 44], "delay_m": [33, 34], "deleg": [4, 8, 14, 20, 26, 41], "delet": [7, 18, 29, 32, 34], "delete_kei": 32, "delimit": [3, 9, 36], "delta": [9, 36], "demot": 12, "deni": [6, 7, 35, 43], "depend": [15, 24, 29, 33, 34, 40, 41, 42], "depended_bi": 34, "dependency_act": 34, "dependency_of": 33, "deploi": 22, "deprec": [17, 40], "depth": [19, 29], "der": 8, "deriv": [8, 17, 29], "descend": [19, 26], "describ": [3, 20, 39], "descript": [1, 3, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "design": [39, 42, 45], "desir": [13, 21, 34], "desktop": [21, 26, 33, 34, 45], "desktop_interact": [33, 34], "despit": 30, "dest": [10, 18, 20, 37, 38, 39, 41], "destin": [10, 15, 20, 39], "destinationpath": 15, "detail": [1, 8, 26, 29, 32, 34, 35, 40, 42, 45], "detect": [29, 30], "determin": [10, 19, 26, 30, 37, 39], "devblog": 15, "develop": [26, 40], "dhcp": 11, "dict": [3, 15, 16, 29], "dictionari": [15, 16, 19, 20, 26, 29, 31, 33, 34, 37, 40, 41, 45], "did": [20, 40], "didn": 16, "diff": [1, 29, 32], "diff_mod": 1, "differ": [10, 15, 20, 26, 29, 30, 39, 41, 42], "digest": [15, 20, 41], "dir": [4, 10], "direct": [20, 29], "directli": [4, 8, 9, 10, 15, 36], "directori": [2, 5, 6, 8, 9, 10, 12, 14, 15, 19, 25, 26, 27, 29, 35, 36, 37, 40, 42, 49], "directresourceaccess": 15, "disabl": [6, 11, 15, 24, 32, 33, 34, 40, 42, 45], "disallow": 8, "disk": [12, 14, 35], "displai": [17, 30, 33, 34, 40], "display_nam": [17, 33, 34], "dn": [2, 12, 13, 14, 23, 45, 49], "dns_domain_nam": [12, 13, 14, 45], "dns_log": 11, "dns_server": 11, "dnsclientserveraddress": 11, "do": [8, 9, 16, 18, 19, 20, 26, 32, 36, 41], "doc": [2, 4, 9, 12, 15, 29, 30, 36], "docsit": 50, "document": [0, 1, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47], "doe": [1, 9, 10, 12, 16, 18, 20, 26, 27, 29, 33, 36, 39, 40, 41, 44], "doesn": [10, 26, 40], "domain": [2, 21, 26, 34, 41, 42, 43, 45, 49], "domain_admin_password": [12, 13], "domain_admin_us": [12, 13], "domain_control": 12, "domain_instal": 14, "domain_join": 33, "domain_leav": 33, "domain_log_path": 12, "domain_mod": 14, "domain_nam": [14, 45], "domain_netbios_nam": 14, "domain_ou_path": 13, "domain_st": 13, "don": [8, 44], "done": 34, "dotnet": [9, 36], "doubl": 10, "down": 30, "download": [2, 10, 26, 41, 49], "dpapi": 26, "drain": 44, "dramat": 29, "drivelett": [17, 24], "driver": [33, 34], "drop": [20, 26, 41], "dsc": [2, 49], "dsctest": 15, "dt": [26, 42], "due": [26, 35], "dure": [17, 26, 40], "durivag": [17, 20, 42], "dword": [26, 32], "dynam": 15, "e": [4, 7, 10, 15, 19, 26, 29, 35, 39], "each": [3, 9, 15, 16, 19, 26, 29, 30, 33, 34, 39, 40, 42], "earthris": 20, "easi": [4, 32], "echo": [29, 36], "edit": [15, 34], "ef": 32, "effect": [15, 19, 23, 40], "effici": 10, "eg": [27, 36], "either": [8, 17, 20, 24, 26, 27, 32, 34, 40, 41], "elaps": [20, 30, 41, 44], "element": [4, 8, 9, 11, 15, 16, 17, 19, 21, 24, 26, 27, 29, 31, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45], "els": 29, "empti": [11, 16, 18, 21, 29, 31, 32, 33, 34, 42, 43, 45], "en": [7, 8, 12, 15, 30, 32, 35, 40, 43, 45], "enabl": [6, 7, 11, 24, 26, 29, 30, 32, 45], "encod": [5, 8, 9, 36, 39], "encount": 29, "encrypt": [13, 35], "end": [1, 9, 10, 20, 27, 34, 36, 39, 44], "endpoint": [8, 30, 41], "endraw": 39, "enforc": 30, "engin": 15, "enough": 40, "ensur": [2, 3, 8, 10, 12, 13, 15, 16, 20, 21, 24, 26, 27, 29, 30, 33, 34, 40, 42, 44, 49], "entir": [16, 32], "entri": [3, 6, 9, 19, 29, 31, 32, 35, 40, 43], "enu": 26, "enum": 29, "enumer": [7, 35], "enumeratesubkei": 7, "env": 9, "environ": [2, 9, 14, 40, 49, 50], "epoch": [19, 37], "eq": [15, 29], "equal": 19, "equival": [26, 30], "eras": 1, "error": [1, 8, 9, 19, 20, 29, 33, 34, 36, 37, 40, 43], "error_act": 29, "error_control": [33, 34], "error_detail": 29, "erroract": 29, "erroractionprefer": 29, "errorrecord": 29, "escap": [3, 9, 15, 20, 26], "estim": 33, "etc": [9, 40], "ethernet": 11, "evalu": [19, 30, 39], "even": [4, 17, 29], "event": [16, 27, 33, 34], "everi": [19, 20, 32, 44], "ex": [1, 3, 7, 9, 26, 29, 32, 33, 34], "exact": 15, "exactli": 30, "examin": 19, "examplekei": 15, "exceed": 34, "except": [8, 28, 29], "exclud": [19, 37, 40], "exclude_host": 44, "exclus": [9, 29], "execut": [1, 2, 3, 4, 7, 10, 15, 26, 29, 34, 35, 49], "executefil": 7, "executionpolici": 29, "exist": [2, 8, 9, 10, 12, 13, 16, 18, 19, 20, 21, 26, 27, 29, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43, 44, 49], "exit": [17, 30, 36], "exitcod": 17, "expand": 32, "expandproperti": 15, "expandstr": 32, "expans": [27, 31], "expect": [26, 30, 39], "expected_return_cod": 26, "expir": 42, "explicit": [20, 26, 34, 41], "explicitli": [29, 36], "export": [8, 32, 39], "expos": 29, "express": [26, 32], "extens": [4, 19, 20, 37], "extern": 35, "extra": [20, 26, 34, 41], "extract": 15, "f": [26, 30], "f580": 26, "f8e94fba1bd8": 26, "facil": 39, "fact": [2, 37, 49], "fact_path": 4, "facter": 4, "facter_": 4, "factor": [29, 40], "fail": [8, 10, 12, 14, 15, 20, 26, 29, 30, 33, 34, 40, 41], "failed_update_count": 40, "failed_when": 29, "failov": 35, "failur": [26, 29, 33, 34, 40], "failure_act": [33, 34], "failure_action_on_non_crash_failur": 33, "failure_actions_on_non_crash_failur": 34, "failure_command": [33, 34], "failure_hresult_cod": 40, "failure_msg": 40, "failure_reboot_msg": [33, 34], "failure_reset_period": 34, "failure_reset_period_sec": [33, 34], "fals": [4, 6, 7, 8, 10, 12, 13, 14, 15, 17, 19, 20, 24, 25, 26, 29, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42], "famili": 1, "fashion": 27, "favor": 21, "favour": 34, "fb95c1c8": 40, "fcmssql01": 35, "fd3351d55421": 40, "featur": [2, 7, 9, 15, 30, 40, 49], "feature_result": 17, "featurenam": 24, "fed": 7, "fetch": [5, 12, 39], "few": [15, 40], "ffff": 26, "field": [1, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "file": [1, 2, 4, 6, 8, 9, 11, 12, 14, 15, 16, 17, 25, 26, 27, 29, 31, 32, 35, 36, 40, 41, 44, 49], "file_copi": 10, "file_info": 37, "file_typ": [8, 19], "filenam": [10, 19, 20, 37, 41], "filesystem": [10, 19, 20, 26, 37, 41, 44], "filesystemright": 7, "filter": [9, 29, 36, 40, 50], "filtered_reason": 40, "filtered_upd": 40, "final": [3, 12], "finalis": 26, "find": [16, 19, 33, 39], "finish": [1, 26, 29, 44], "fire": 33, "firewall_port_open": 33, "first": [1, 14, 19, 34, 39], "fix": [12, 14], "flag": [7, 10, 15, 33, 42, 45], "float": [19, 20, 30, 37, 41, 44], "folder": [7, 9, 10, 12, 18, 19, 32, 37], "folder_info": 37, "follow": [1, 3, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], "follow_redirect": [20, 26, 41], "foo": [9, 10, 18, 29, 36, 37, 41], "forc": [1, 9, 10, 20, 26, 29, 30, 34, 36, 39, 40, 41], "force_basic_auth": [20, 26, 41], "force_dependent_servic": 34, "forest": 14, "forest_mod": 14, "form": [3, 8, 9, 15, 19, 31, 34, 36, 37, 40, 41, 43, 45], "format": [3, 9, 10, 29, 31, 32, 39, 42, 45], "forward": 37, "found": [19, 26, 33, 37, 39, 40], "found_update_count": 40, "framework": 17, "free": [9, 15, 36], "free_form": [15, 36], "from": [1, 2, 4, 6, 8, 9, 10, 12, 13, 14, 15, 17, 18, 19, 21, 24, 26, 28, 29, 30, 32, 33, 34, 36, 39, 40, 41, 42, 43, 45, 49], "ftp": [2, 10, 41, 49], "full": [1, 19, 20, 29, 31, 35, 37, 40, 42], "fullcontrol": 7, "fulli": [12, 14], "fullnam": [29, 42], "fully_qualified_error_id": 29, "fullyqualifiederrorid": 29, "function": [14, 32, 34, 39], "further": [17, 35, 40], "futher": 34, "futur": [34, 42], "g": [4, 7, 15, 19], "galaxi": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "galushko": 6, "gather": [2, 34, 49], "gather_fact": 13, "gather_subset": 4, "gather_timeout": 4, "ge": 29, "gener": [2, 8, 20, 26, 27, 29, 32, 33, 41], "get": [1, 2, 3, 6, 7, 10, 11, 12, 15, 17, 18, 19, 20, 24, 25, 26, 29, 30, 32, 33, 35, 39, 40, 41, 49], "get_checksum": [19, 37], "get_siz": 37, "get_url": 20, "getencod": [9, 36], "github": 40, "give": 29, "given": [4, 7, 9], "global": [1, 27, 35], "gmsa": 34, "go": [10, 30, 40], "goe": 36, "goldstein": 35, "good": 34, "govern": 43, "gpo": 43, "grant": 34, "greater": [15, 19, 26], "group": [2, 6, 13, 18, 25, 33, 34, 37, 40, 42, 43, 45, 49], "group_polici": 33, "groups_act": 42, "guarante": 27, "guest": 43, "guid": [12, 26, 33, 40], "guidanc": 40, "gurante": 30, "h": [26, 42], "h0nig": [6, 7, 25, 35], "ha": [1, 8, 10, 12, 13, 14, 15, 16, 19, 20, 26, 29, 30, 31, 33, 34, 35, 39, 40], "had": 17, "han": [6, 7, 25, 35], "handl": 40, "happen": [28, 44], "hard": [19, 37], "hash": 20, "have": [3, 6, 9, 10, 15, 16, 20, 26, 27, 29, 30, 32, 34, 36, 40, 41, 42, 46], "hawkesworth": [10, 16, 18, 39], "head": [20, 26, 41], "header": [20, 26, 39, 41], "hello": [29, 32], "help": [10, 29], "help_link": 29, "here": [0, 1, 2, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47], "hex": [8, 31, 32, 39], "hh": 42, "hh830471": 35, "hhmm": 42, "hidden": [15, 19, 37, 40], "high": [3, 45], "higher": [3, 14, 29], "highest": 15, "highli": 43, "hinden": [7, 15, 17, 26], "histor": 34, "hit": 41, "hive": [31, 32], "hkcc": 32, "hkcr": 32, "hkcu": [7, 15, 26, 32], "hkey_current_us": 15, "hkey_us": 32, "hklm": [6, 26, 31, 32], "hku": 32, "hlnk_target": [19, 37], "hoc": 36, "hoffman": [22, 34], "home": [9, 10, 42], "home_directori": 42, "homedir": 36, "homedir_out": 36, "homogen": 39, "host": [1, 2, 3, 5, 8, 9, 14, 15, 19, 20, 21, 23, 26, 27, 28, 29, 30, 33, 34, 35, 37, 39, 40, 41, 42, 44, 49], "host_err": 29, "host_out": 29, "hostnam": [13, 15, 23, 44], "hotkei": 32, "hour": [19, 40], "how": [8, 9, 20, 26, 29, 32, 33, 40, 41], "howev": 27, "hr": 35, "hresult": [29, 40], "hsot": 13, "html": 4, "http": [2, 4, 7, 8, 9, 10, 12, 15, 17, 26, 29, 30, 32, 33, 35, 36, 40, 41, 43, 45, 49], "http_agent": [20, 26, 41], "http_output": 41, "httpd": 10, "httpget": [20, 26, 41], "hwo": 15, "i": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "icmp": 28, "id": [1, 17, 26, 29, 34, 39, 40, 45], "idempot": [26, 34, 36], "ident": [7, 8], "identifi": [1, 7, 20, 26, 29, 33, 41, 42, 45], "idx": 29, "ie": [20, 26, 27, 41], "ifc": 12, "ifm": 12, "ignor": [9, 13, 17, 26, 27, 29, 33, 34, 36, 44], "ii": [8, 15, 17, 30], "iis_instal": 30, "iis_iusr": 7, "illustr": 8, "im": 2, "immedi": [18, 44], "imperson": 45, "impersonation_level": 45, "impli": 35, "implicit": 29, "import": [7, 8, 16, 34], "improv": 10, "includ": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "include_management_tool": 17, "include_par": 24, "include_sub_featur": 17, "incorrectli": [10, 39], "increas": [29, 40], "increment": 33, "indend": 9, "index": 29, "indic": [1, 6, 10, 15, 17, 25, 26, 30, 45], "individu": [4, 27], "induc": 28, "inetpub": [7, 15], "infinit": [20, 26, 34, 41], "info": [19, 26, 29, 33], "inform": [2, 4, 5, 6, 7, 10, 12, 13, 14, 15, 18, 19, 25, 26, 29, 30, 32, 34, 39, 40, 49], "inherit": [2, 7, 18, 49], "inheritanceflag": 7, "inheritonli": 7, "ini": [5, 26, 37], "init": 44, "initi": [4, 20, 26, 30, 41], "inlin": 39, "inner": 29, "inner_except": 29, "inorangestyle": 6, "input": [29, 36], "inputapp": 26, "insensit": [27, 40], "insid": 10, "instal": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 49], "install_dn": [12, 14], "install_media_path": 12, "installdir": 26, "installdn": 12, "installed_update_count": 40, "instanc": 9, "instead": [6, 7, 9, 10, 12, 13, 14, 17, 18, 19, 20, 22, 26, 28, 29, 30, 34, 36, 37, 38, 39, 40, 41, 42], "int": 33, "int32": 26, "integ": [1, 4, 9, 10, 17, 19, 20, 26, 29, 33, 36, 37, 40, 41, 44, 45], "integr": [14, 20], "interact": [2, 20, 27, 33, 34, 40, 43, 49], "interepret": 29, "interfacealia": 11, "intermedi": 8, "intern": [4, 7, 35, 40, 41], "interpol": 39, "interpret": [29, 36], "interv": 40, "invalid": [12, 43], "invoc": [15, 29, 32], "invok": [2, 29, 49], "ip": [17, 24, 44], "ip_address": 11, "ipaddress": 15, "ipv4": 11, "ipv4_address": 11, "ipv6": 11, "irc": 2, "isarch": [19, 37], "isdir": [19, 37], "ishidden": [19, 37], "isjunct": [19, 37], "islnk": [19, 37], "iso": [15, 17, 29, 45], "isreadonli": [19, 37], "isreg": [19, 37], "isshar": [19, 37], "issu": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "item": [7, 15, 26, 29, 33, 36], "itemtyp": [29, 36], "its": [15, 20, 26, 29, 30, 33, 34], "itself": [10, 29], "j2": 39, "java": 44, "javascript": 41, "jborean93": [2, 3, 8, 10, 19, 26, 29, 31, 32, 33, 43, 44, 45], "jdk1": 16, "jhawkesworth": [10, 16, 18, 39], "jid": 1, "jinja": 39, "jinja2": 39, "joachim": [6, 7, 25, 35], "job": 1, "job_result": 1, "joe": 35, "join": [13, 43], "join_clust": [9, 36], "jon": [10, 16, 18, 39], "jordan": [2, 3, 8, 10, 19, 26, 29, 31, 32, 33, 43, 44, 45], "josh": 32, "joshludwig": 32, "jpg": 20, "json": [4, 29, 31, 41], "judgement": 36, "junction": [7, 19, 37], "just": [26, 28, 30, 40], "k": [19, 33, 34], "kb": [17, 40], "kb2858728": 26, "kb3004365": 40, "kb4056892": 40, "kb4073117": 40, "keech": 32, "keep": [10, 34], "kei": [1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 49], "kerbero": [8, 20, 26, 41], "kernel_driv": 33, "key1": 3, "key2": 3, "key_export": 8, "key_storag": 8, "keyboard": 32, "keyword": 1, "keyword_al": 33, "keyword_ani": 33, "kilo": 19, "kit": 40, "kliemeck": [6, 7, 25, 35], "known": [8, 34, 35], "kuramochi": 20, "l": [9, 36], "label": [14, 45], "languag": [32, 39], "larg": [10, 19], "larger": [4, 10, 19], "last": [16, 19, 20, 30, 34, 37, 43], "lastaccesstim": [19, 37], "lastbootuptim": 30, "lastwritetim": [19, 37], "latest": [4, 15], "launch_protect": 33, "layout": 32, "lcm": 15, "ldap": 8, "lead": 39, "learn": 43, "least": [5, 34], "leav": 13, "less": [14, 19], "letter": 19, "level": [14, 16, 19, 27, 29, 33, 45], "libera": 2, "librari": [7, 8, 35, 40, 45], "licat": 26, "like": [5, 9, 16, 20, 27, 29, 31, 32, 34, 35, 39, 43, 45], "limbo": [30, 40], "limit": [4, 29], "line": [3, 9, 18, 29, 33, 36, 39], "linux": [24, 39], "list": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 49], "listen": 15, "liter": 3, "literalpath": 15, "lnk_sourc": [19, 37], "lnk_target": [19, 37], "load": [32, 33, 34, 36, 40, 41], "load_order_group": [33, 34], "local": [2, 4, 8, 10, 12, 13, 14, 15, 20, 26, 32, 34, 38, 40, 43, 44, 45, 49], "local_admin_password": 12, "local_follow": 10, "localhost": [15, 29], "localmachin": [7, 8], "localservic": 34, "localservicenonetwork": 34, "localsystem": 34, "locat": [2, 8, 20, 26, 29, 35, 38, 39, 49], "lock": 42, "lockstep": 1, "log": [11, 12, 14, 16, 19, 20, 26, 27, 29, 34, 37, 40, 41, 43, 44], "log_path": [11, 12, 14, 26, 40], "login": [20, 26, 41, 42], "login_domain": 45, "login_script": 42, "login_tim": 45, "logon": [30, 45], "logon_flag": 26, "logon_id": 45, "logon_serv": 45, "logon_typ": [26, 45], "logpath": 12, "london": 12, "long": [20, 26, 36, 40, 41, 42], "long_cmd": 1, "look": [19, 32, 39, 44], "lookup": [2, 21, 23, 26, 43, 49], "loop": 1, "lot": [19, 30], "low": 3, "lower": [3, 14, 30], "lsa": 45, "lstrip_block": 39, "ludwig": 32, "m": [19, 26, 28, 42], "machin": [2, 8, 10, 15, 16, 17, 26, 27, 39, 40, 49], "made": [12, 13, 14, 29], "mai": [4, 8, 9, 12, 13, 14, 26, 27, 29, 30, 34, 36, 40], "main": [9, 36], "major": [12, 29], "make": [8, 10, 30, 34, 42], "malici": 40, "manag": [2, 11, 14, 15, 16, 17, 18, 22, 26, 28, 30, 33, 36, 40, 45, 49], "managed_serv": 40, "mandatori": 45, "mani": [4, 20, 26, 29, 40, 41], "manipul": 18, "manual": [9, 26, 33, 34, 35], "mark": [29, 39], "marker": 39, "master": 40, "match": [3, 19, 29, 33, 40, 44], "matrix": 2, "matt": [2, 9, 11, 12, 13, 14, 27, 30, 36, 40], "maximum": [19, 30, 44], "maximum_redirect": [20, 26, 41], "md5": [19, 20, 37], "md5_checksum": 37, "mean": [9, 15, 16, 20, 26, 27, 36, 40, 41], "mechan": [10, 12, 41], "media": 12, "mega": 19, "member": [2, 13, 14, 21, 34, 42, 45, 49], "member_serv": 12, "membership": [2, 12, 14, 22, 40, 42, 43, 45, 49], "memori": 5, "mention": 27, "messag": [17, 20, 29, 30, 33, 34, 36, 40], "message_data": 29, "meta": 3, "metadata": 45, "method": [15, 20, 26, 29, 41, 45], "microsoft": [7, 8, 9, 12, 13, 14, 15, 24, 26, 29, 30, 31, 35, 36, 40, 43, 45], "might": 30, "millisecond": [33, 34], "min": 4, "minimum": 30, "minor": [16, 27], "minut": 19, "mismatch": 34, "miss": 45, "mitig": [30, 40], "mje3oqo": 5, "mkdir": 34, "mm": 42, "mode": [1, 12, 14, 26, 29, 32, 34, 40, 42], "modif": [18, 19, 37, 39], "modifi": [1, 2, 7, 18, 20, 27, 29, 32, 35, 42, 49], "modul": 50, "module_vers": 15, "more": [4, 7, 8, 9, 10, 12, 13, 14, 15, 19, 20, 26, 29, 30, 32, 33, 37, 40], "most": [15, 26, 34], "mostli": 29, "mous": 32, "mousetrail": 32, "move": [12, 13, 14, 27], "msbuild": 26, "msdn": [7, 8, 35, 45], "msft_smbshare": 35, "msg": [5, 9, 20, 30, 34, 36], "msi": [3, 26], "msiexec": 26, "msix": 26, "msixbundl": 26, "msp": 26, "mssql": 35, "mtime": 19, "much": 9, "multi": [32, 36], "multi_string_properti": 31, "multilin": 44, "multipl": [6, 10, 11, 15, 16, 19, 24, 26, 27, 33], "multistr": 32, "must": [5, 7, 8, 10, 14, 15, 16, 20, 26, 29, 30, 34, 35, 36, 39, 40, 41], "mutual": [9, 29], "my": [1, 3, 7, 8, 9, 15, 17, 20, 26, 33, 41], "my_ansible_var": 16, "mycompani": 32, "mydomaincli": 13, "myfil": 10, "myjavath": 27, "mysit": 7, "mytempl": 39, "mywg": 13, "n": [29, 39], "name": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 49], "named_pipe_ev": 33, "namespac": 29, "ndp451": 26, "ne": 30, "necessari": [6, 12, 13, 26, 30, 34], "need": [1, 8, 9, 15, 16, 19, 26, 27, 29, 30, 34, 35, 36, 40], "neg": 19, "negoti": [20, 26, 41, 45], "nerror": 29, "net": [16, 17, 24, 26, 29], "netbio": 14, "netcredentials_onli": 26, "netfx3": 24, "netlogon": [30, 34], "netsvc": 33, "network": [2, 8, 11, 26, 30, 34, 40, 45], "networkservic": 34, "never": 42, "new": [12, 14, 16, 22, 27, 29, 32, 34, 35, 36, 40], "new_credenti": 26, "newer": [2, 9, 11, 15, 19, 26, 29, 35, 39], "newli": [34, 42], "newlin": 39, "newline_sequ": 39, "newlocaladmin": 21, "next": [30, 42], "nitzmahon": [2, 9, 11, 12, 13, 14, 27, 30, 36, 40], "nline": 29, "nlink": [19, 37], "no_log": [15, 29], "no_profil": 36, "node": [2, 3, 10, 15, 29, 33, 36, 39, 41, 49], "non": [9, 10, 12, 14, 18, 19, 20, 22, 24, 28, 30, 34, 36, 37, 38, 41, 42, 45], "none": [1, 3, 7, 20, 26, 29, 32, 33, 34, 35, 41], "nonexist": 10, "noprofil": 36, "nopropagateinherit": 7, "norestart": 26, "normal": [1, 19, 29, 33, 34, 37], "note": [12, 37], "noth": 44, "notif": 34, "notifi": [16, 27], "notin": 15, "notskip": 17, "notspecifi": 29, "now": 42, "nt": [21, 33, 34, 43], "ntd": [8, 12, 14], "ntlm": [20, 26, 41], "ntuser": 32, "nuget": 10, "null": [16, 19, 29, 32, 33, 34], "numa": 33, "number": [19, 26, 30, 32, 33, 37, 40, 41, 44], "numer": [39, 41], "o": [1, 17, 40], "object": [13, 15, 29, 36, 37, 42], "objectinherit": 7, "obsolet": 26, "obtain": [2, 31, 37, 49], "occur": [15, 17, 20, 26, 29, 41], "octob": 42, "od": 39, "off": 16, "offici": [1, 4, 5, 9, 10, 12, 13, 14, 17, 18, 20, 21, 22, 24, 26, 28, 30, 31, 32, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45], "offlin": 44, "offset": 29, "ok": [20, 41], "old_hostnam": 23, "old_nam": 23, "older": [9, 11, 19, 29], "oleg": 6, "omit": [16, 26, 33, 34, 42], "on_creat": [34, 42], "onc": [8, 16, 33], "one": [10, 13, 19, 24, 26, 29, 30, 32, 40], "ones": [20, 26, 34, 41], "onli": [4, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 26, 29, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45], "onlin": [15, 40], "onlineport": 15, "open": 44, "openssl": 8, "oper": [1, 9, 10, 14, 15, 21, 29, 33, 34, 40], "option": [1, 2, 6, 8, 9, 10, 12, 15, 16, 19, 20, 26, 29, 30, 32, 34, 36, 39, 40, 41, 42, 44, 49], "order": [3, 11, 27, 33, 34, 39], "org": 32, "origin": [5, 10, 20, 23, 26, 39, 41], "original_basenam": 10, "other": [1, 8, 9, 12, 19, 20, 21, 26, 27, 29, 32, 33, 34, 37, 41, 42, 43], "otherwis": [8, 10, 26, 34], "ou": 13, "out": [2, 15, 16, 19, 20, 26, 27, 32, 33, 41, 49], "out_": 19, "output": [1, 9, 12, 15, 29, 30, 32, 36, 39, 41], "output_encod": 39, "output_encoding_overrid": [9, 36], "outsid": 1, "over": [10, 12, 26], "overrid": [3, 9, 19, 26, 36, 39], "own": [26, 30, 42], "owner": [2, 7, 18, 19, 37, 39, 45, 49], "ownership": 18, "p": 33, "p7b": 8, "pack": 40, "packag": [2, 17, 24, 40, 45, 49], "packagefullnam": 26, "pair": 29, "panel": [11, 32], "param": 29, "parameterbindingfail": 29, "paramt": 12, "parent": [6, 10, 24], "pars": 3, "part": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "parti": [8, 26], "particip": 40, "particular": [4, 32, 34, 40], "pass": [3, 10, 13, 20, 29, 30, 32], "passiv": 26, "password": [8, 12, 13, 14, 20, 26, 29, 34, 41, 42], "password123": [12, 13, 14], "password_expir": 42, "password_never_expir": 42, "patch": 26, "patchcod": 26, "path": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 25, 26, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 49], "pattern": [9, 19, 29, 36], "paul": [17, 20, 42], "paus": [33, 34], "pause_continu": 33, "pause_pend": 33, "pc": 42, "pem": 8, "pend": [20, 26, 33, 41], "peopl": 8, "per": 1, "perform": [10, 15, 33, 34, 40, 41], "period": [33, 34], "perman": 26, "permiss": [2, 6, 10, 18, 25, 35, 37, 49], "persist": 26, "person": [8, 20, 26, 41], "pfx": [8, 20, 26, 41], "phil": 7, "physic": 11, "physicalpath": 15, "pick": [16, 27], "ping": [2, 49], "pipe": [26, 33], "pipelin": 29, "pipeline_iteration_info": 29, "pkcs12": 8, "place": [10, 12], "plai": [13, 29], "plain": 42, "platform": 1, "playbook": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "playbooks_deleg": 4, "pleas": [4, 10, 22, 38], "plugin": [1, 3, 10, 30, 39, 40, 46], "point": [19, 26, 33, 37], "polici": [30, 43], "poll": [1, 20, 40, 44], "pong": 28, "port": [15, 41, 44], "possibl": [13, 15, 36, 40, 42], "possibli": 1, "post": 41, "post_reboot_delai": 30, "post_reboot_delay_sec": 30, "powershel": [2, 3, 9, 12, 17, 19, 20, 24, 26, 27, 36, 39, 40, 41, 49], "pr": 26, "practic": 36, "pre_reboot_delai": 30, "pre_reboot_delay_sec": 30, "pre_shutdown_timeout": 34, "pre_shutdown_timeout_m": [33, 34], "predict": [1, 36], "prefer": [33, 39], "preferred_nod": 33, "prefix": [4, 32, 38, 43], "present": [6, 7, 8, 15, 16, 17, 18, 21, 22, 24, 26, 27, 29, 32, 34, 35, 42, 44], "preserv": [27, 34], "preshutdown": [33, 34], "prevent": [8, 20, 26, 39, 41, 42], "previous": 35, "primari": 45, "princip": 45, "print": [5, 39], "prioriti": 3, "privat": [7, 8], "privileg": [30, 32, 33, 34, 45], "probabl": 16, "proce": 34, "process": [2, 3, 8, 9, 16, 26, 29, 33, 36, 39, 40, 44, 49], "process_id": 33, "product": 26, "product_id": 26, "productcod": 26, "profil": [32, 36, 42], "program": [4, 5, 9, 16, 26, 27, 31, 35], "program_conf": 5, "programdir": 31, "progress": [33, 40], "promot": 12, "prompt": 30, "propag": 7, "propagationflag": 7, "proper": 26, "properli": [20, 26, 41], "properti": [19, 26, 30, 31, 32], "protect": [8, 20, 26, 30, 33, 41, 43], "protocol": 15, "provid": [4, 15, 19, 26, 28, 29, 32, 35], "proxi": [20, 26, 41], "proxy_password": [20, 26, 41], "proxy_url": [20, 26, 41], "proxy_use_default_credenti": [20, 26, 41], "proxy_usernam": [20, 26, 41], "ps1": [4, 19, 36, 37], "pscmdlet": 29, "pscredenti": [15, 29], "psdscrunascredenti": 15, "psdscrunascredential_password": 15, "psdscrunascredential_usernam": 15, "psexec": [9, 36], "psversion": 29, "psversiont": 29, "public": 35, "publish": 8, "pure": 21, "purpos": [8, 27, 29], "pwsh": 29, "pwsh_output": 29, "python": 39, "q": 26, "qn": 26, "qualifi": [12, 14], "queri": [2, 33, 42, 45, 49], "question": [2, 15], "quietuninstallstr": 26, "quot": [2, 9, 10, 26, 27, 33, 48], "qword": 32, "r": 39, "r2": [17, 40], "rabbit": [9, 36], "rabbitmqctl": [9, 36], "rais": 29, "ram": 5, "ran": 29, "randomus": 20, "rare": [9, 36], "raw": [9, 19, 29, 31, 36, 37, 39, 41], "raw_valu": 31, "rc": [9, 26, 29, 36], "rcanderson23": 24, "rdcman": 26, "re": [23, 30], "reachabl": 14, "read": [4, 7, 8, 12, 19, 26, 35, 37], "read_onli": 12, "readi": [19, 30, 37], "readtoend": 36, "real": 20, "reason": [17, 29, 40], "reboot": [2, 12, 13, 14, 15, 17, 23, 24, 26, 33, 34, 40, 49], "reboot_requir": [12, 13, 14, 15, 17, 23, 24, 26, 30, 40], "reboot_timeout": [30, 40], "reboot_timeout_sec": 30, "receiv": 18, "recent": 20, "recommend": [10, 19, 26, 29, 40, 43], "recommended_act": 29, "record": 29, "recurs": [10, 18, 19, 25, 39], "redirect": [20, 26, 41], "refer": [14, 17, 31], "referenc": [9, 29, 36], "reflect": [29, 42], "reg": 15, "reg_binari": 31, "reg_expand_sz": 31, "reg_multi_sz": 31, "reg_non": 31, "reg_sz": 31, "regardless": 35, "regedit": [32, 39], "regex": [19, 40, 44], "regexp": [19, 44], "regist": [1, 5, 9, 12, 13, 14, 17, 23, 24, 29, 30, 31, 33, 36, 37, 41], "registri": [2, 6, 15, 18, 25, 26, 37, 49], "registryright": 7, "regular": [19, 37], "reject_list": 40, "rel": [10, 19, 27, 29, 37, 39], "relat": [12, 24], "releas": [4, 12, 29, 30, 35], "reliabl": 30, "relianc": 35, "remain": [19, 37], "remot": [2, 3, 19, 20, 21, 26, 29, 30, 33, 36, 37, 40, 43, 49], "remote_src": 10, "remov": [2, 6, 7, 8, 9, 12, 13, 14, 16, 17, 21, 25, 26, 27, 29, 31, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 49], "renam": 10, "render": 39, "reorgan": 6, "repeat": 34, "replac": [8, 20, 30, 34, 35, 39, 42, 43], "replica": 12, "report": [33, 34, 41], "repositori": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "repres": [19, 26, 29, 32, 33, 37], "represent": 29, "request": [20, 26, 27, 41], "requir": [1, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43, 45], "required_privileg": [33, 34], "reset": [33, 34, 40], "resid": 14, "resolv": 44, "resourc": [8, 15, 20, 35], "resource_nam": 15, "respect": [3, 29], "respond": 30, "respons": [20, 26, 41], "restart": [16, 27, 33, 34, 40], "restart_need": 17, "restrict": [4, 7, 8, 19, 33, 34], "result": [4, 9, 10, 17, 20, 26, 27, 29, 30, 39, 40, 41], "retri": [1, 44], "retriev": [5, 20, 36, 42], "return": [2, 4, 49], "return_cont": 41, "reveal": 29, "revis": 26, "revok": 8, "right": [2, 7, 34, 45, 49], "ripon": 23, "riponbanik": 23, "role": [17, 35], "rollup": 40, "room": 2, "root": [8, 14, 25, 32], "rpc_interface_ev": 33, "rpcss": 33, "rule": [3, 7, 9, 40], "rule_act": 35, "run": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 49], "run_command": [33, 34], "run_onc": 1, "runa": [8, 26, 40], "runm": 33, "runs_in_system_process": 33, "safe": [12, 14, 16, 20, 26, 41], "safe_mode_password": [12, 14], "sai": 9, "same": [9, 10, 14, 19, 26, 27, 29, 37, 40, 45], "sampl": [1, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "sapwd": 26, "saraceni": 21, "satisfi": 27, "save": [9, 20, 32], "scalar": 40, "scan": [19, 26], "sccm": 40, "scenario": 9, "schedul": [30, 40], "scholer": [11, 16], "schwartz": 7, "schwartzmx": 7, "scm": 33, "scmanag": 34, "scope": [27, 35], "scope_nam": 35, "scratch": 29, "screen": 30, "script": [2, 7, 15, 36, 42, 44, 49], "script_stack_trac": 29, "scriptblock": 29, "search": [8, 10, 19, 26, 31, 40, 44], "search_regex": 44, "sebackupprivileg": [32, 33, 34], "sebatchlogonright": 45, "sechangenotifyprivileg": 45, "second": [4, 13, 19, 20, 26, 30, 33, 34, 37, 40, 41, 44], "secreatesymboliclinkprivileg": 43, "secret": [6, 35], "section": [26, 39], "secur": [7, 8, 9, 30, 36, 40, 42, 43], "securestr": 29, "securityanonym": 45, "securityupd": 40, "sedebugprivileg": 45, "sedenyinteractivelogonright": 43, "sedenyremoteinteractivelogonright": 43, "see": [8, 15, 35], "seen": [26, 29], "seinteractivelogonright": 45, "select": [9, 15, 19, 26, 40], "self": [20, 26, 41], "send": [9, 10, 20, 26, 34, 41], "senetworklogonright": 45, "sensit": 29, "sensitive_paramet": 29, "sensitive_valu": 29, "sent": [20, 26, 29, 41], "separ": [7, 10, 15, 17, 26, 30, 32, 35, 41, 42], "sequenc": 39, "seremoteinteractivelogonright": 45, "seremoteshutdownprivileg": [30, 45], "serestoreprivileg": [32, 33, 34], "serial": [1, 29], "server": [2, 10, 11, 13, 14, 15, 20, 24, 26, 30, 33, 35, 40, 41, 43, 44, 45, 49], "server_select": 40, "serveraliveinterv": 40, "servernam": [21, 43], "servic": [2, 8, 10, 12, 14, 20, 21, 26, 29, 30, 36, 40, 41, 43, 44, 49], "service1": 34, "service2": 34, "service_change_config": 34, "service_enumerate_depend": 34, "service_exit_cod": 33, "service_flag": 33, "service_info": 33, "service_query_config": 34, "service_query_statu": 34, "service_typ": [33, 34], "seservicelogonright": [34, 43], "session": 45, "set": [2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 49], "settl": [30, 34, 40], "setup": [2, 15, 26, 49], "sever": [16, 33, 34], "sha1": [10, 19, 20, 37], "sha1_checksum": 37, "sha256": [19, 20, 37], "sha256_checksum": 37, "sha256sum": 20, "sha384": [19, 20, 37], "sha512": [19, 20, 37], "shachaf": 35, "shachaf92": 35, "share": [2, 17, 19, 24, 26, 37, 39, 49], "share01": 24, "sharenam": [19, 37], "shell": [2, 9, 29, 48, 49], "short": 31, "should": [4, 6, 8, 9, 10, 12, 13, 14, 15, 16, 20, 25, 26, 27, 32, 34, 35, 36, 38, 39, 40, 41, 42], "shouldprocess": 29, "show": [15, 33, 40], "shown": [15, 30, 43], "shutdown": [30, 33, 34], "sid": [33, 34, 42, 45], "sid_info": [33, 34], "sideload": 26, "sign": [20, 26, 29, 41], "signal": 40, "signifi": 41, "signific": 40, "silently_continu": 29, "silentlycontinu": 29, "similar": [18, 36, 40], "simpl": [6, 10], "sinc": [19, 20, 26, 37, 40, 41, 42], "singl": [3, 10, 11, 14, 17, 19, 26, 27, 30, 33], "site": [12, 20, 26, 41], "site_nam": 12, "size": [5, 10, 19, 20, 37, 41], "skip": [9, 17, 29, 36, 40, 41], "skip_hidden": 40, "skip_opt": 40, "skip_reason": 17, "slash": [20, 37], "slave1": [9, 36], "sleep": 44, "slightli": 30, "slow": 30, "slurp": [2, 49], "smadam813": 32, "smaller": 19, "smbshare": 35, "snapshot": 4, "so": [1, 3, 4, 9, 10, 15, 20, 30, 32, 39], "softwar": [6, 26, 31, 32, 40], "some": [1, 4, 8, 20, 26, 30, 32, 40, 41], "somedir": [9, 36], "somehow": [10, 39], "somelog": 36, "somescript": 36, "somesit": 41, "someth": 30, "sort": 19, "sourc": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "space": [3, 9, 26, 33, 36, 39], "spawn": [26, 36], "special": [39, 43], "specif": [2, 4, 9, 10, 14, 15, 16, 26, 29, 31, 33, 41, 49], "specifi": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "speed": 19, "split": [9, 26, 36], "spooler": 34, "sql": [26, 35], "sql2019": 26, "sqlbackup": 35, "sqlexpr_x64_enu": 26, "sqlexpress": 26, "src": [5, 7, 10, 20, 39], "srv": 10, "ssh": [20, 26, 40, 41], "ssl": [20, 26, 41], "sslflag": 15, "stack": 29, "stage": 40, "stamp": 18, "standard": [9, 15, 36], "start": [1, 9, 15, 20, 29, 30, 33, 34, 36, 39, 40, 44], "start_mod": [30, 33, 34], "start_pend": 33, "start_servic": 33, "startup": [30, 34], "stat": 37, "state": [2, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, 26, 27, 31, 32, 33, 34, 35, 38, 40, 41, 42, 44, 45, 49], "statement": [29, 39], "static": 11, "statu": [2, 20, 26, 29, 30, 34, 41, 49], "status_cod": [20, 41], "status_descript": 41, "stderr": [1, 9, 26, 29, 36], "stderr_lin": 9, "stdin": [9, 36], "stdout": [1, 9, 26, 29, 36], "stdout_lin": [9, 36], "step": 41, "still": [20, 26, 41, 42], "stop": [26, 29, 33, 34, 44], "stop_pend": 33, "stop_servic": 33, "store": [2, 16, 27, 41, 49], "store_loc": 8, "store_nam": 8, "store_typ": 8, "strategi": 1, "stream": [26, 29], "strftime": 42, "string": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "stringifi": 17, "strip": 39, "strongpassword": 8, "structur": [6, 18, 29, 36, 41], "style": [9, 39], "sub": [17, 31, 33], "sub_kei": 31, "sub_typ": 33, "sub_type_guid": 33, "subdirectori": 18, "subfeatur": 17, "subfold": 18, "subopt": 29, "subsequ": [12, 13, 14], "subset": 4, "subsystem": [17, 24], "subsytem": 24, "success": [1, 3, 4, 5, 8, 9, 10, 17, 19, 20, 21, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 45], "successfulli": [20, 26, 30, 40], "suffix": [4, 15, 19, 38], "suit": 16, "summari": 41, "supersed": 26, "suppli": [4, 12, 19, 26, 34], "support": [1, 2, 6, 10, 11, 13, 17, 20, 26, 32, 34, 37, 39, 40, 41], "supportsshouldprocess": 29, "sure": [10, 20], "surviv": 40, "svc": 35, "svchost": [33, 34], "switch": [10, 12, 29], "sx": [17, 24], "symbol": [10, 19, 37, 43], "symlink": [7, 19, 37], "synchron": 40, "syntax": 19, "system": [2, 4, 5, 6, 8, 9, 15, 17, 18, 20, 21, 24, 25, 26, 27, 29, 30, 33, 34, 36, 37, 38, 39, 40, 43, 49], "system32": [16, 27, 33, 34], "systemroot": [12, 14, 27], "sysvol": [12, 14], "sysvol_path": [12, 14], "t": [8, 10, 16, 26, 39, 40, 43, 44], "tab": 39, "tag": [29, 39], "take": [5, 9, 15, 19, 23, 30, 33, 34, 36, 40], "taken": [10, 26], "takeshi": 20, "target": [1, 2, 3, 7, 9, 10, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 24, 27, 28, 29, 30, 31, 34, 37, 38, 40, 41, 42, 49], "target_nam": 29, "target_object": 29, "target_typ": 29, "targetingpack": 26, "task": [2, 9, 10, 12, 13, 15, 20, 24, 26, 29, 30, 34, 36, 40, 41, 49], "tcp": [30, 44], "team": [1, 4, 5], "technet": 40, "tell": 4, "telnet": [15, 17], "temp": [8, 9, 10, 15, 17, 18, 19, 20, 26, 29, 34, 35, 36, 37, 38, 39, 44], "temp2": 15, "temp_fil": 10, "tempfil": 38, "templat": [1, 2, 4, 49], "template_destpath": 39, "template_fullpath": 39, "template_host": 39, "template_path": 39, "template_run_d": 39, "template_uid": 39, "temporari": [2, 26, 29, 49], "termin": 29, "test": [9, 15, 16, 28, 29, 30, 32, 34, 36, 42], "test_command": 30, "testdata": 15, "testgroup": 21, "testgui": [12, 13], "testus": 21, "testvalu": 15, "testvari": 16, "text": [9, 34, 36, 42], "than": [10, 14, 19, 20, 26, 39], "thei": [10, 14, 16, 18, 27, 29, 42], "them": [10, 34, 40], "therefor": [16, 27], "thi": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 50], "thing": 39, "thingi": 26, "third": 8, "those": [3, 9, 19, 26, 34, 40], "threat": [30, 43], "throttl": 1, "through": [9, 20, 26, 31, 40, 41], "throw": [8, 15, 19, 29, 37], "thu": 36, "thumbprint": [8, 20, 26, 41], "time": [9, 18, 19, 20, 26, 29, 30, 33, 34, 36, 37, 39, 40, 41, 44, 45], "time_gener": 29, "timeout": [4, 20, 26, 30, 33, 40, 41, 44], "timestamp": [10, 39, 42], "timezon": 42, "titl": 40, "tksarah": 20, "tmp": 10, "tmpdir": 29, "tofiletim": 30, "togeth": [19, 26, 34], "toggl": 32, "token": [29, 33, 34, 45], "token_typ": 45, "tokenimperson": 45, "tokenprimari": 45, "too": 10, "took": 10, "tool": [7, 17, 39, 40], "top": [26, 35], "touch": [2, 6, 7, 8, 25, 37, 49], "trace": 29, "traceback": 39, "tracker": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "tradit": [26, 29], "traffic": 35, "trail": [27, 32], "transfer": [10, 20, 39], "transport": 15, "treat": [29, 33], "tree": 10, "trend": 36, "trigger": [12, 13, 33], "trim": 36, "trim_block": 39, "trivial": 28, "trond": [7, 15, 17, 26], "trondhinden": [7, 15, 17, 26], "true": [4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 19, 20, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 44], "trust": 8, "trustedpeopl": 8, "trustedpublish": 8, "try": [9, 15, 30, 43, 44], "twice": [5, 30], "two": 26, "txt": [10, 11, 19, 20, 36, 37, 39, 40, 44], "type": [3, 5, 7, 8, 15, 19, 20, 21, 26, 29, 31, 32, 33, 34, 41, 45], "typic": [8, 14, 29], "u": [7, 8, 12, 15, 30, 35, 36, 40, 43, 45], "uid": 39, "uint32": 26, "un": 8, "unabl": [19, 37], "unauthor": 12, "unavail": [4, 40], "unc": [12, 14], "uncondition": 30, "under": [4, 7, 15, 26, 32, 36, 41], "underli": 29, "unexpand": 27, "unexpect": [30, 40], "uninstal": [2, 24, 40, 49], "uninstallstr": 26, "uniqu": [1, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "unit": 19, "unix": 39, "unjoin": 13, "unknown": 35, "unless": [10, 20, 26, 29, 34, 36, 41], "unlik": [8, 18], "unlimit": 19, "unlock": 42, "unpaus": 34, "unread": 8, "unreli": 40, "unrestrict": [33, 34], "unset": 16, "unsign": 26, "until": [1, 13, 16, 17, 26, 30, 34, 36, 37, 40, 44], "unwanted_var": 16, "up": [1, 3, 4, 11, 15, 16, 19, 27, 29, 30, 34], "updat": [2, 17, 18, 19, 24, 26, 30, 32, 37, 42, 49], "update_password": [34, 42], "updaterollup": 40, "upgrad": 40, "upn": 45, "upnphost": 33, "upon": [20, 26, 41], "uri": [20, 26, 29, 41], "url": [20, 26, 41], "url_method": [20, 26, 41], "url_password": [20, 26, 41], "url_timeout": [20, 26, 41], "url_usernam": [20, 26, 41], "us": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], "usag": [2, 4, 8], "use_default_credenti": [20, 26, 41], "use_proxi": [20, 26, 41], "use_regex": 19, "user": [2, 6, 8, 9, 10, 12, 13, 15, 16, 18, 20, 21, 25, 26, 27, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 49], "user_cannot_change_password": 42, "user_flag": 45, "user_guid": 4, "user_own_process": [33, 34], "user_share_process": [33, 34], "userflag": 45, "usernam": [12, 13, 20, 21, 26, 29, 33, 34, 41, 42], "usr": 4, "usual": [8, 11, 26], "utc": [29, 42], "utf": 39, "util": 40, "v1": [27, 40, 42], "v5": 29, "vagrant": [12, 13, 14], "valid": [9, 14, 15, 16, 20, 26, 30, 33, 36, 40, 41, 45], "validate_cert": [20, 26, 41], "valu": [2, 4, 11, 27, 49], "value1": 3, "value2": 3, "valuedata": 15, "valuenam": 15, "var": [3, 8, 10, 16, 26, 27, 37, 39, 40], "vari": 15, "variabl": [1, 2, 3, 4, 9, 13, 29, 39, 49, 50], "variable_end_str": 39, "variable_start_str": 39, "variou": [2, 8, 48], "varnam": 27, "vault": [10, 13], "vcredist_x64": 26, "verbos": [15, 29], "verbose_set": 15, "verbose_test": 15, "verboseprefer": 29, "veri": [9, 10, 16, 36], "verif": 30, "verifi": [15, 20], "versa": 6, "version": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 49], "veryhardpassword": 26, "verystrongpasswordher": 8, "via": [36, 39], "vice": 6, "view": 34, "virtual": 34, "visibl": 11, "visual": 26, "visualstudio": 26, "volum": 35, "vs_buildtool": 26, "vsu_4": 26, "vvv": 15, "w": 33, "wa": [10, 17, 19, 23, 26, 29, 30, 31, 33, 34, 35, 37, 39, 40], "wai": [3, 15, 16, 18, 30, 32, 39, 40], "wait": [1, 2, 13, 26, 30, 33, 34, 40, 49], "wait_attempt": 44, "wait_for": 44, "wait_for_children": 26, "wait_hint_m": 33, "want": [9, 18, 29, 30, 36], "warn": [15, 29], "warningprefer": 29, "wbadmin": 9, "we": [19, 40], "web": [7, 10, 17, 20, 26, 30, 41], "webrequest": 29, "webserv": 41, "webservic": [2, 20, 26, 49], "websit": 15, "week": 19, "were": [8, 12, 13, 14, 17, 29, 33, 35, 40, 43], "what": [1, 4, 26, 28, 29, 30, 34, 36, 42], "whatif": 29, "when": [1, 3, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 23, 24, 26, 27, 29, 30, 32, 33, 34, 35, 36, 39, 40, 41, 42, 44], "where": [8, 10, 11, 12, 14, 15, 16, 20, 26, 29, 38, 40, 41, 42, 43], "whether": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "which": [9, 10, 11, 12, 13, 14, 16, 17, 19, 20, 26, 27, 29, 32, 33, 34, 35, 36, 39, 40, 41, 44], "while": [18, 19, 29, 33, 34, 41], "whitelist": 40, "who": 43, "whoami": [9, 45], "whoami_out": 9, "whose": [11, 19], "why": [12, 13, 14, 40], "wide": 26, "wieer": [38, 41], "wiki": 32, "wikipedia": 32, "wildcard": [11, 19, 33], "win": 33, "win10": 24, "win2003": 14, "win2008": 14, "win2008r2": 14, "win2012": 14, "win2012r2": 14, "win32": [3, 9], "win32_exitcod": 33, "win32_operatingsystem": 30, "win32_own_process": [33, 34], "win32_share_process": [33, 34], "win_acl": [2, 6, 18, 25, 37, 49], "win_acl_inherit": [2, 7, 18, 49], "win_async": 12, "win_certificate_stor": [2, 49], "win_chocolatei": [17, 24, 26, 40], "win_command": [1, 2, 3, 29, 36, 49], "win_copi": [2, 18, 39, 49], "win_credenti": 45, "win_dns_client": [2, 23, 49], "win_domain": [2, 12, 13, 49], "win_domain_admin_password": 13, "win_domain_admin_us": 13, "win_domain_comput": [12, 13, 14], "win_domain_control": [2, 13, 14, 49], "win_domain_group": [12, 13, 14, 21, 22], "win_domain_membership": [2, 12, 14, 21, 42, 49], "win_domain_us": [12, 13, 14, 42], "win_dsc": [2, 49], "win_environ": [2, 27, 49], "win_featur": [2, 24, 30, 40, 49], "win_fil": [2, 6, 7, 25, 31, 37, 49], "win_find": [2, 49], "win_get_url": [2, 10, 41, 49], "win_group": [2, 13, 21, 42, 43, 49], "win_group_membership": [2, 13, 22, 42, 43, 45, 49], "win_hostnam": [2, 49], "win_hotfix": [26, 40], "win_inet_proxi": [20, 26, 41], "win_nssm": 34, "win_optional_featur": [2, 49], "win_own": [2, 7, 18, 37, 49], "win_p": [2, 49], "win_packag": [2, 17, 24, 40, 49], "win_path": [2, 16, 49], "win_powershel": [2, 36, 49], "win_psexec": [9, 36], "win_psmodul": 15, "win_reboot": [2, 12, 13, 14, 17, 23, 24, 40, 49], "win_reg_stat": [2, 32, 49], "win_regedit": [2, 26, 31, 49], "win_regmerg": [31, 32], "win_robocopi": 10, "win_servic": [2, 30, 33, 49], "win_service_info": [2, 34, 49], "win_shar": [2, 49], "win_shel": [2, 3, 9, 15, 29, 49], "win_stat": [2, 6, 7, 18, 25, 49], "win_tempfil": [2, 49], "win_templ": [2, 10, 18, 49], "win_upd": [2, 26, 49], "win_uri": [2, 20, 49], "win_us": [2, 13, 43, 49], "win_user_profil": 42, "win_user_right": [2, 34, 45, 49], "win_wait_for": [2, 49], "win_wait_for_process": 44, "win_whoami": [2, 49], "winclient": 13, "window": [0, 47, 50], "windows_light": 33, "windows_registri": 32, "windows_upd": 40, "windowsfeatur": [15, 17], "windowsoptionalfeatur": 24, "windowspowershel": 27, "winlogon": 45, "winnt": 42, "winrm": [10, 12, 20, 26, 30, 33, 34, 36, 41], "winserv": 28, "winthreshold": 14, "within": 15, "without": [1, 4, 8, 10, 12, 16, 26, 27, 34, 37, 40, 42], "wmi": 35, "wmpnetworksvc": 33, "won": 43, "word": 19, "work": [1, 5, 9, 15, 18, 20, 26, 30, 34, 36, 39, 40], "workgroup": [2, 12, 14, 21, 42, 49], "workgroup_nam": 13, "world": [29, 32], "would": 42, "wow6432nod": 26, "wrapper": [12, 26], "write": [3, 7, 9, 29, 35, 36, 39], "writeerrorexcept": 29, "writelin": 29, "written": [14, 29], "wsl_statu": 24, "wsman": [15, 29], "wsse": 41, "wsu": 40, "wu_e_no_interactive_us": 40, "www": [20, 41], "wwwroot": [7, 15], "x": [8, 26, 29], "x1": 39, "x509": [20, 26, 41], "x509certif": 8, "x509keystorageflag": 8, "x64": 26, "x86": 26, "xwebadministr": 15, "xwebsit": 15, "y": [26, 42], "yaml": [27, 32], "ye": 10, "yet": [30, 40], "you": [8, 9, 10, 12, 14, 15, 16, 18, 19, 20, 26, 30, 32, 34, 35, 36, 39, 40, 41, 43, 44], "your": [20, 30, 36], "yum": 1, "z": 42, "zero": 33, "zip": [15, 26], "zipfil": 15, "zollo": 35}, "titles": ["Collections in the Ansible Namespace", "ansible.windows.async_status module \u2013 Obtain status of asynchronous task", "Ansible.Windows", "ansible.windows.quote filter \u2013 Quotes argument(s) for various Windows shells", "ansible.windows.setup module \u2013 Gathers facts about remote hosts", "ansible.windows.slurp module \u2013 Slurps a file from remote nodes", "ansible.windows.win_acl_inheritance module \u2013 Change ACL inheritance", "ansible.windows.win_acl module \u2013 Set file/directory/registry/certificate permissions for a system user or group", "ansible.windows.win_certificate_store module \u2013 Manages the certificate store", "ansible.windows.win_command module \u2013 Executes a command on a remote Windows node", "ansible.windows.win_copy module \u2013 Copies files to remote locations on windows hosts", "ansible.windows.win_dns_client module \u2013 Configures DNS lookup on Windows hosts", "ansible.windows.win_domain_controller module \u2013 Manage domain controller/member server state for a Windows host", "ansible.windows.win_domain_membership module \u2013 Manage domain/workgroup membership for a Windows host", "ansible.windows.win_domain module \u2013 Ensures the existence of a Windows domain", "ansible.windows.win_dsc module \u2013 Invokes a PowerShell DSC configuration", "ansible.windows.win_environment module \u2013 Modify environment variables on windows hosts", "ansible.windows.win_feature module \u2013 Installs and uninstalls Windows Features on Windows Server", "ansible.windows.win_file module \u2013 Creates, touches or removes files or directories", "ansible.windows.win_find module \u2013 Return a list of files based on specific criteria", "ansible.windows.win_get_url module \u2013 Downloads file from HTTP, HTTPS, or FTP to node", "ansible.windows.win_group_membership module \u2013 Manage Windows local group membership", "ansible.windows.win_group module \u2013 Add and remove local groups", "ansible.windows.win_hostname module \u2013 Manages local Windows computer name", "ansible.windows.win_optional_feature module \u2013 Manage optional Windows features", "ansible.windows.win_owner module \u2013 Set owner", "ansible.windows.win_package module \u2013 Installs/uninstalls an installable package", "ansible.windows.win_path module \u2013 Manage Windows path environment variables", "ansible.windows.win_ping module \u2013 A windows version of the classic ping module", "ansible.windows.win_powershell module \u2013 Run PowerShell scripts", "ansible.windows.win_reboot module \u2013 Reboot a windows machine", "ansible.windows.win_reg_stat module \u2013 Get information about Windows registry keys", "ansible.windows.win_regedit module \u2013 Add, change, or remove registry keys and values", "ansible.windows.win_service_info module \u2013 Gather information about Windows services", "ansible.windows.win_service module \u2013 Manage and query Windows services", "ansible.windows.win_share module \u2013 Manage Windows shares", "ansible.windows.win_shell module \u2013 Execute shell commands on target hosts", "ansible.windows.win_stat module \u2013 Get information about Windows files", "ansible.windows.win_tempfile module \u2013 Creates temporary files and directories", "ansible.windows.win_template module \u2013 Template a file out to a remote server", "ansible.windows.win_updates module \u2013 Download and install Windows updates", "ansible.windows.win_uri module \u2013 Interacts with webservices", "ansible.windows.win_user module \u2013 Manages local Windows user accounts", "ansible.windows.win_user_right module \u2013 Manage Windows User Rights", "ansible.windows.win_wait_for module \u2013 Waits for a condition before continuing", "ansible.windows.win_whoami module \u2013 Get information about the current user and process", "Index of all Collection Environment Variables", "Collection Index", "Index of all Filter Plugins", "Index of all Modules", "Welcome to my Ansible collection documentation"], "titleterms": {"": 3, "A": 28, "about": [4, 31, 33, 37, 45], "account": 42, "acl": 6, "add": [22, 32], "all": [46, 48, 49], "also": [1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "an": 26, "ansibl": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50], "argument": 3, "async_statu": 1, "asynchron": 1, "attribut": 1, "author": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "base": 19, "befor": 44, "certif": [7, 8], "chang": [6, 32], "classic": 28, "collect": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "command": [9, 36], "commun": 2, "comput": 23, "condit": 44, "configur": [11, 15], "continu": 44, "control": 12, "copi": 10, "creat": [18, 38], "criteria": 19, "current": 45, "deprec": [12, 13, 14], "descript": 2, "directori": [7, 18, 38], "dn": 11, "document": 50, "domain": [12, 13, 14], "download": [20, 40], "dsc": 15, "ensur": 14, "environ": [16, 27, 46], "exampl": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "execut": [9, 36], "exist": 14, "fact": 4, "featur": [17, 24], "file": [5, 7, 10, 18, 19, 20, 37, 38, 39], "filter": [2, 3, 48], "from": [5, 20], "ftp": 20, "gather": [4, 33], "get": [31, 37, 45], "group": [7, 21, 22], "host": [4, 10, 11, 12, 13, 16, 36], "http": 20, "index": [2, 46, 47, 48, 49, 50], "inform": [31, 33, 37, 45], "inherit": 6, "input": 3, "instal": [17, 26, 40], "interact": 41, "invok": 15, "kei": [31, 32], "keyword": 3, "link": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "list": 19, "local": [21, 22, 23, 42], "locat": 10, "lookup": 11, "machin": 30, "manag": [8, 12, 13, 21, 23, 24, 27, 34, 35, 42, 43], "member": 12, "membership": [13, 21], "modifi": 16, "modul": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 49], "my": 50, "name": 23, "namespac": 0, "node": [5, 9, 20], "note": [4, 5, 7, 8, 9, 10, 15, 16, 19, 20, 26, 27, 29, 30, 31, 32, 34, 36, 39, 40, 42, 43, 45], "obtain": 1, "option": 24, "out": 39, "owner": 25, "packag": 26, "paramet": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "path": 27, "permiss": 7, "ping": 28, "plugin": [2, 48, 50], "powershel": [15, 29], "process": 45, "queri": 34, "quot": 3, "reboot": 30, "refer": 50, "registri": [7, 31, 32], "remot": [4, 5, 9, 10, 39], "remov": [18, 22, 32], "requir": 35, "return": [1, 3, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "right": 43, "run": 29, "script": 29, "see": [1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "server": [12, 17, 39], "servic": [33, 34], "set": [7, 25], "setup": 4, "share": 35, "shell": [3, 36], "slurp": 5, "specif": 19, "state": 12, "statu": [1, 12, 13, 14], "store": 8, "synopsi": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "system": 7, "target": 36, "task": 1, "templat": 39, "temporari": 38, "touch": 18, "uninstal": [17, 26], "updat": 40, "user": [7, 42, 43, 45], "valu": [1, 3, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "variabl": [16, 27, 46], "variou": 3, "version": 28, "wait": 44, "webservic": 41, "welcom": 50, "win_acl": 7, "win_acl_inherit": 6, "win_certificate_stor": 8, "win_command": 9, "win_copi": 10, "win_dns_client": 11, "win_domain": 14, "win_domain_control": 12, "win_domain_membership": 13, "win_dsc": 15, "win_environ": 16, "win_featur": 17, "win_fil": 18, "win_find": 19, "win_get_url": 20, "win_group": 22, "win_group_membership": 21, "win_hostnam": 23, "win_optional_featur": 24, "win_own": 25, "win_p": 28, "win_packag": 26, "win_path": 27, "win_powershel": 29, "win_reboot": 30, "win_reg_stat": 31, "win_regedit": 32, "win_servic": 34, "win_service_info": 33, "win_shar": 35, "win_shel": 36, "win_stat": 37, "win_tempfil": 38, "win_templ": 39, "win_upd": 40, "win_uri": 41, "win_us": 42, "win_user_right": 43, "win_wait_for": 44, "win_whoami": 45, "window": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49], "workgroup": 13}}) \ No newline at end of file