From 63051c4e2e0d4c4eae567752ebeeae9211030a1c Mon Sep 17 00:00:00 2001 From: Ujjwal <19787410+ubaskota@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:52:52 -0500 Subject: [PATCH 1/3] Removes inline scripts and inline styles in botocore documentation site to make it compatible with the newly added security headers (#3336) * This change removes the use of inline scripts and styles in the Botocore documentation site to make it compatible with the newly implemented security headers. --- docs/source/_static/css/custom.css | 49 +++-- docs/source/_static/css/dark_light_mode.css | 23 ++ docs/source/_static/js/custom.js | 202 +++++++++++------- docs/source/_static/shortbreadv1.js | 3 - docs/source/_templates/page.html | 27 ++- .../partials/_head_css_variables.html | 6 + docs/source/_templates/partials/icons.html | 111 ++++++++++ docs/source/conf.py | 1 + 8 files changed, 308 insertions(+), 114 deletions(-) create mode 100644 docs/source/_static/css/dark_light_mode.css delete mode 100644 docs/source/_static/shortbreadv1.js create mode 100644 docs/source/_templates/partials/_head_css_variables.html create mode 100644 docs/source/_templates/partials/icons.html diff --git a/docs/source/_static/css/custom.css b/docs/source/_static/css/custom.css index 5be72283d4..537e5e243e 100644 --- a/docs/source/_static/css/custom.css +++ b/docs/source/_static/css/custom.css @@ -1,34 +1,37 @@ /* Prevents two-dimensional scrolling and content loss. */ -h1, code, li { +h1, +code, +li { overflow-wrap: break-word; } /* Provides padding to push down the "breadcrumb" navigation in nested pages. */ -.content{ +.content { padding: 1em 3em; } /* Improves spacing around custom sidebar section*/ -.sidebar-div{ +.sidebar-div { margin: var(--sidebar-caption-space-above) 0 0 0; - padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal); + padding: var(--sidebar-item-spacing-vertical) + var(--sidebar-item-spacing-horizontal); } /* Custom sidebar heading text. Example: Feedback Section heading. */ -.sidebar-heading{ +.sidebar-heading { color: var(--color-sidebar-caption-text); font-size: var(--font-size--normal); font-weight: 700; } /* Improves text used in custom sidebar section. Example: Feedback section content.*/ -.sidebar-text{ +.sidebar-text { color: var(--color-sidebar-caption-text); font-size: var(--sidebar-item-font-size); line-height: 1.4; } /* Removes empty space above the sidebar-tree (under "Feedback" section) */ -.sidebar-tree{ +.sidebar-tree { margin-top: 0px; } /* Adds padding around AWS Logo in the left sidebar. */ -.sidebar-logo{ +.sidebar-logo { padding: 20% 15%; } /* Hides a div by default. */ @@ -52,7 +55,7 @@ h1, code, li { visibility: hidden; } /* Hides the icon by default and applies relevant styling. */ -.nav-close-icon{ +.nav-close-icon { color: var(--color-foreground-secondary); display: flex; align-items: center; @@ -73,24 +76,24 @@ h1, code, li { } } @media (max-width: 82em) { - /* Displays a div on a medium screen. */ + /* Displays a div on a medium screen. */ .show-div-md { display: flex; } } /* Apply furo styled admonition titles for

. */ h3.admonition-title { - position: relative; - margin: 0 -0.5rem 0.5rem; - padding-left: 2.5rem; - padding-right: .5rem; - padding-top: .4rem; - padding-bottom: .4rem; - font-weight: 700; - font-size: 1.5em; - line-height: 1.25; - border-radius: unset; - background-color: var(--color-admonition-title-background); + position: relative; + margin: 0 -0.5rem 0.5rem; + padding-left: 2.5rem; + padding-right: 0.5rem; + padding-top: 0.4rem; + padding-bottom: 0.4rem; + font-weight: 700; + font-size: 1.5em; + line-height: 1.25; + border-radius: unset; + background-color: var(--color-admonition-title-background); } /* Apply furo styled admonition icons before

. */ h3.admonition-title::before { @@ -103,3 +106,7 @@ h3.admonition-title::before { mask-image: var(--icon-admonition-default); mask-repeat: no-repeat; } +/* Hides an element by removing it from the document flow */ +.hidden { + display: none; +} diff --git a/docs/source/_static/css/dark_light_mode.css b/docs/source/_static/css/dark_light_mode.css new file mode 100644 index 0000000000..2aabc8cf0c --- /dev/null +++ b/docs/source/_static/css/dark_light_mode.css @@ -0,0 +1,23 @@ +/*This file replaces the style defined in the "_head_css_variables.html" +partial from furo==2022.12.7*/ + +body { + --color-code-background: #f8f8f8; + --color-code-foreground: black; +} + +/* Dark theme styles */ +@media not print { + body[data-theme="dark"] { + --color-code-background: #272822; + --color-code-foreground: #f8f8f2; + } + + /* For users who prefer dark color scheme */ + @media (prefers-color-scheme: dark) { + body:not([data-theme="light"]) { + --color-code-background: #272822; + --color-code-foreground: #f8f8f2; + } + } +} diff --git a/docs/source/_static/js/custom.js b/docs/source/_static/js/custom.js index ebc1d59f34..af879c8697 100644 --- a/docs/source/_static/js/custom.js +++ b/docs/source/_static/js/custom.js @@ -16,8 +16,8 @@ limitations under the License. // Checks if an html doc name matches a service class name. function isValidServiceName(serviceClassName) { - const pageTitle = document.getElementsByTagName('h1')[0]; - const newDocName = pageTitle.innerText.replace('#', ''); + const pageTitle = document.getElementsByTagName("h1")[0]; + const newDocName = pageTitle.innerText.replace("#", ""); return newDocName.toLowerCase() === serviceClassName; } // Checks if all elements of the split fragment are valid. @@ -38,57 +38,68 @@ function isValidFragment(splitFragment) { // This must be done client side since the fragment (#S3.Client.delete_bucket) is never // passed to the server. (function () { - const currentPath = window.location.pathname.split('/'); + const currentPath = window.location.pathname.split("/"); const fragment = window.location.hash.substring(1); // Only redirect when viewing a top-level service page. - if (fragment && currentPath[currentPath.length - 2] === 'services') { - const serviceDocName = currentPath[currentPath.length - 1].replace('.html', ''); - const splitFragment = fragment.split('.'); + if (fragment && currentPath[currentPath.length - 2] === "services") { + const serviceDocName = currentPath[currentPath.length - 1].replace( + ".html", + "", + ); + const splitFragment = fragment.split("."); splitFragment[0] = splitFragment[0].toLowerCase(); - if (isValidFragment(splitFragment) && isValidServiceName(splitFragment[0])) { + if ( + isValidFragment(splitFragment) && + isValidServiceName(splitFragment[0]) + ) { // Replace class name with doc name splitFragment[0] = serviceDocName; splitFragment[1] = splitFragment[1].toLowerCase(); // Exceptions have a longer sub-path (/client/exceptions/.html) - const isException = splitFragment[2] === 'exceptions'; + const isException = splitFragment[2] === "exceptions"; const sliceLocation = isException ? 4 : 3; - var newPath = `${ splitFragment.slice(0, sliceLocation).join('/') }.html`; - if (splitFragment.length > 3 && !isException || splitFragment.length > 4 && isException) { + var newPath = `${splitFragment.slice(0, sliceLocation).join("/")}.html`; + if ( + (splitFragment.length > 3 && !isException) || + (splitFragment.length > 4 && isException) + ) { // Redirect with the fragment - window.location.assign(`${ newPath }#${ fragment }`); + window.location.assign(`${newPath}#${fragment}`); } else { // Redirect without the fragment window.location.assign(newPath); } } } -}()); +})(); // Given a service name, we apply the html classes which indicate a current page to the corresponsing list item. // Before:
  • ACM
  • // After:
  • ACM
  • function makeServiceLinkCurrent(serviceName) { - const servicesSection = [...document.querySelectorAll('a')].find( - e => e.innerHTML.includes('Available Services') + const servicesSection = [...document.querySelectorAll("a")].find((e) => + e.innerHTML.includes("Available Services"), ).parentElement; - var linkElement = servicesSection.querySelectorAll(`a[href*="../${ serviceName }.html"]`); + var linkElement = servicesSection.querySelectorAll( + `a[href*="../${serviceName}.html"]`, + ); if (linkElement.length === 0) { linkElement = servicesSection.querySelectorAll(`a[href*="#"]`)[0]; } else { linkElement = linkElement[0]; } let linkParent = linkElement.parentElement; - linkParent.classList.add('current'); - linkParent.classList.add('current-page'); + linkParent.classList.add("current"); + linkParent.classList.add("current-page"); } -const currentPagePath = window.location.pathname.split('/'); -const codeBlockSelector = 'div.highlight pre'; +const currentPagePath = window.location.pathname.split("/"); +const codeBlockSelector = "div.highlight pre"; // Expands the "Available Services" sub-menu in the side-bar when viewing // nested doc pages and highlights the corresponding service list item. function expandSubMenu() { - if (currentPagePath.includes('services')) { - document.getElementById('toctree-checkbox-1').checked = true; + if (currentPagePath.includes("services")) { + document.getElementById("toctree-checkbox-1").checked = true; // Example Nested Path: /reference/services//client/.html - const serviceNameIndex = currentPagePath.indexOf('services') + 1; + const serviceNameIndex = currentPagePath.indexOf("services") + 1; const serviceName = currentPagePath[serviceNameIndex]; makeServiceLinkCurrent(serviceName); } @@ -96,93 +107,134 @@ function expandSubMenu() { // Allows code blocks to be scrollable by keyboard only users. function makeCodeBlocksScrollable() { const codeCells = document.querySelectorAll(codeBlockSelector); - codeCells.forEach(codeCell => { + codeCells.forEach((codeCell) => { codeCell.tabIndex = 0; }); } // Determines which of the two table-of-contents menu labels is visible. function determineVisibleTocOpenMenu() { - const mediaQuery = window.matchMedia('(max-width: 67em)'); - return mediaQuery.matches ? 'toc-menu-open-sm' : 'toc-menu-open-md'; + const mediaQuery = window.matchMedia("(max-width: 67em)"); + return mediaQuery.matches ? "toc-menu-open-sm" : "toc-menu-open-md"; } // A mapping of current to next focus id's. For example, We want a corresponsing // menu's close button to be highlighted after a menu is opened with a keyboard. const NEXT_FOCUS_ID_MAP = { - 'nav-menu-open': 'nav-menu-close', - 'nav-menu-close': 'nav-menu-open', - 'toc-menu-open-sm': 'toc-menu-close', - 'toc-menu-open-md': 'toc-menu-close', - 'toc-menu-close': determineVisibleTocOpenMenu(), + "nav-menu-open": "nav-menu-close", + "nav-menu-close": "nav-menu-open", + "toc-menu-open-sm": "toc-menu-close", + "toc-menu-open-md": "toc-menu-close", + "toc-menu-close": determineVisibleTocOpenMenu(), }; // Toggles the visibility of a sidebar menu to prevent keyboard focus on hidden elements. function toggleSidebarMenuVisibility(elementQuery, inputQuery) { - const sidebarElement = document.querySelector(elementQuery); - const sidebarInput = document.querySelector(inputQuery); - sidebarInput.addEventListener('change', () => { - setTimeout( - () => { - sidebarElement.classList.toggle('hide-sidebar', !sidebarInput.checked); - }, - sidebarInput.checked ? 0 : 250, - ); - }); - window.matchMedia('(max-width: 67em)').addEventListener('change', (event) => { - NEXT_FOCUS_ID_MAP['toc-menu-close'] = determineVisibleTocOpenMenu(); - if (!event.matches) { - document - .querySelector('.sidebar-drawer') - .classList.remove('hide-sidebar'); - } - }); - window.matchMedia('(max-width: 82em)').addEventListener('change', (event) => { - if (!event.matches) { - document.querySelector('.toc-drawer').classList.remove('hide-sidebar'); - } - }); + const sidebarElement = document.querySelector(elementQuery); + const sidebarInput = document.querySelector(inputQuery); + sidebarInput.addEventListener("change", () => { + setTimeout( + () => { + sidebarElement.classList.toggle( + "hide-sidebar", + !sidebarInput.checked, + ); + }, + sidebarInput.checked ? 0 : 250, + ); + }); + window + .matchMedia("(max-width: 67em)") + .addEventListener("change", (event) => { + NEXT_FOCUS_ID_MAP["toc-menu-close"] = determineVisibleTocOpenMenu(); + if (!event.matches) { + document + .querySelector(".sidebar-drawer") + .classList.remove("hide-sidebar"); + } + }); + window + .matchMedia("(max-width: 82em)") + .addEventListener("change", (event) => { + if (!event.matches) { + document + .querySelector(".toc-drawer") + .classList.remove("hide-sidebar"); + } + }); } // Activates labels when a user focuses on them and clicks "Enter". // Also highlights the next appropriate input label. function activateLabelOnEnter() { - const labels = document.querySelectorAll('label'); - labels.forEach((element) => { - element.setAttribute('tabindex', '0'); - element.addEventListener('keypress', (event) => { - if (event.key === 'Enter') { - const targetId = element.getAttribute('for'); - document.getElementById(targetId).click(); - const nextFocusId = NEXT_FOCUS_ID_MAP[element.id]; - if (nextFocusId) { - // Timeout is needed to let the label become visible. - setTimeout(() => { - document.getElementById(nextFocusId).focus(); - }, 250); - } - } - }); - }); + const labels = document.querySelectorAll("label"); + labels.forEach((element) => { + element.setAttribute("tabindex", "0"); + element.addEventListener("keypress", (event) => { + if (event.key === "Enter") { + const targetId = element.getAttribute("for"); + document.getElementById(targetId).click(); + const nextFocusId = NEXT_FOCUS_ID_MAP[element.id]; + if (nextFocusId) { + // Timeout is needed to let the label become visible. + setTimeout(() => { + document.getElementById(nextFocusId).focus(); + }, 250); + } + } + }); + }); +} + +function loadThemeFromLocalStorage() { + document.body.dataset.theme = localStorage.getItem("theme") || "auto"; } // Improves accessibility for keyboard-only users. function setupKeyboardFriendlyNavigation() { - activateLabelOnEnter(); - toggleSidebarMenuVisibility('.toc-drawer', '#__toc'); - toggleSidebarMenuVisibility('.sidebar-drawer', '#__navigation'); + activateLabelOnEnter(); + toggleSidebarMenuVisibility(".toc-drawer", "#__toc"); + toggleSidebarMenuVisibility(".sidebar-drawer", "#__navigation"); +} + +function loadShortbread() { + if (typeof AWSCShortbread !== "undefined") { + const shortbread = AWSCShortbread({ + // If you're testing in your dev environment, use ".cloudfront.net" for domain, else ".amazonaws.com" + domain: ".amazonaws.com", + }); + + // Check for cookie consent + shortbread.checkForCookieConsent(); + + const cookiePreferencesLink = + document.getElementById("cookie-button-link"); + if (cookiePreferencesLink) { + cookiePreferencesLink.addEventListener("click", function (event) { + event.preventDefault(); + shortbread.customizeCookies(); + }); + } + + console.log("AWSCShortbread successfully loaded...!!!"); + } else { + console.error("AWSCShortbread failed to load!!!"); + } } // Functions to run after the DOM loads. function runAfterDOMLoads() { expandSubMenu(); makeCodeBlocksScrollable(); setupKeyboardFriendlyNavigation(); + loadThemeFromLocalStorage(); + loadShortbread(); } + // Run a function after the DOM loads. function ready(fn) { - if (document.readyState !== 'loading') { + if (document.readyState !== "loading") { fn(); } else { - document.addEventListener('DOMContentLoaded', fn); + document.addEventListener("DOMContentLoaded", fn); } } ready(runAfterDOMLoads); diff --git a/docs/source/_static/shortbreadv1.js b/docs/source/_static/shortbreadv1.js deleted file mode 100644 index 11b1002075..0000000000 --- a/docs/source/_static/shortbreadv1.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Version: 1.0.14 */ -!function(e,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var c=a();for(var t in c)("object"==typeof exports?exports:e)[t]=c[t]}}(window,(function(){return function(e){var a={};function c(t){if(a[t])return a[t].exports;var n=a[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,c),n.l=!0,n.exports}return c.m=e,c.c=a,c.d=function(e,a,t){c.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:t})},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,a){if(1&a&&(e=c(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(c.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var n in e)c.d(t,n,function(a){return e[a]}.bind(null,n));return t},c.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(a,"a",a),a},c.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},c.p="",c(c.s=13)}([function(e,a,c){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var a,c=1,t=arguments.length;c0&&s.forEach((function(a){if("string"==typeof a)l.appendChild(t.createTextNode(a));else if("number"==typeof a)l.appendChild(t.createTextNode(s.toString()));else{if(null===a)throw Error("Unsupported child type "+a);e(l,a,t,!0)}})),o?a.appendChild(l):a.insertBefore(l,a.firstChild)}},function(e,a,c){"use strict";var t,n=function(){return void 0===t&&(t=Boolean(window&&document&&document.all&&!window.atob)),t},o=function(){var e={};return function(a){if(void 0===e[a]){var c=document.querySelector(a);if(window.HTMLIFrameElement&&c instanceof window.HTMLIFrameElement)try{c=c.contentDocument.head}catch(e){c=null}e[a]=c}return e[a]}}(),i=[];function r(e){for(var a=-1,c=0;c-1?"awsccc-Rtl":"";function b(){return document.querySelector("div[data-id="+r.BANNER_ID+"]")}function f(){return document.querySelector("div[data-id="+r.CUSTOMIZE_ID+"]")}function h(e,a){var c=document.querySelector("label[data-id=awsccc-u-cb-"+e+"-label]"),t=c.classList,n=c.querySelector("input");a?(n.setAttribute("checked",""),t.add("awsccc-u-cb-checkbox-active")):(t.remove("awsccc-u-cb-checkbox-active"),n.removeAttribute("checked")),n.setAttribute("aria-checked",""+a)}var g=function(e){var a=e.event,c=e.category;"checkbox"!==a.target.getAttribute("type")&&"awsccc-cs-s-title"!==a.target.getAttribute("class")||h(c,!p(c))},m=function(a){return function(c,t){var n=b().querySelector("div[data-id=awsccc-cb-tabstart]");document.querySelector("div[data-id="+r.CUSTOMIZE_ID+"]").style.display="none",b().style.display="none",n.setAttribute("tabindex","-1"),e.onSaveConsent(c),document.body.classList.remove("awsccc-cs-modal-open"),e.log("info")(a,{detail:"Save Consent Clicked",source:t,cookie:e.getConsentCookie()})}},k=function(e){"Escape"===e.key&&x()},v=function(){return e.getConsentCookie()||u.DEFAULT_COOKIE},w=function(a){var c;c=v(),i.COOKIE_CATEGORIES.filter((function(e){return e!==i.ESSENTIAL})).forEach((function(e){h(e,c[e])})),f().addEventListener("keydown",k),f().style.display="block",document.body.classList.add("awsccc-cs-modal-open");var t=document.querySelectorAll("div[data-id="+r.TABTRAP_ID+"]");l.convertToArray(t).forEach((function(e,a){0===a&&e.focus({preventScroll:!0}),e.setAttribute("tabindex","0")})),e.log("info")("customizeCookies",{detail:"Customize Consent Clicked",source:a,cookie:e.getConsentCookie()})},x=function(){f().removeEventListener("keydown",k),f().style.display="none",document.body.classList.remove("awsccc-cs-modal-open");var a=f().querySelectorAll("div[data-id="+r.TABTRAP_ID+"]");(l.convertToArray(a).forEach((function(e){e.setAttribute("tabindex","-1")})),"block"===b().style.display)&&b().querySelector("div[data-id=awsccc-cb-tabstart]").focus({preventScroll:!0});e.onModalClose&&e.onModalClose()};return d.default((function(){document.querySelector("#"+r.CONTAINER_ID)||t.render(e.parent||document.body,t.act("div",{id:r.CONTAINER_ID},t.act("div",{id:r.APP_ID,class:c},t.act(n.default,{showConsentSelector:w,handleSaveClick:m("acceptAll"),localizedText:a.consentBanner,hasConsoleNavFooter:e.hasConsoleNavFooter}),t.act(o.default,{consentState:v(),handleSaveClick:m("customize"),handleCheckboxToggle:g,localizedText:a.consentSelector,closeConsentSelector:x,darkModeEnabled:e.hasConsoleNavFooter}))))})),{showConsentSelector:function(e){d.default((function(){w(e)}))},showBanner:function(e){d.default((function(){var a;a=b().querySelector("div[data-id=awsccc-cb-tabstart]"),b().style.display="block",a.setAttribute("tabindex","0"),a.focus({preventScroll:!0}),e()}))}}}a.isChecked=p,a.default={createShortbreadUi:function(e){return b(e)}}},function(e,a,c){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var a,c=1,t=arguments.length;c0)try{var i=JSON.parse(atob(n[n.length-1]));return 1===(t=i).e&&"number"==typeof t.p&&"number"==typeof t.f&&"number"==typeof t.a&&"string"==typeof t.i&&"string"==typeof t.v?{essential:1===(c=i).e,performance:1===c.p,functional:1===c.f,advertising:1===c.a,id:c.i,version:c.v}:void o("getCookie",{detail:"Cookie format is not valid",cookie:i})}catch(e){return void o("getCookie",{detail:"Error parsing cookie",cookie:n[n.length-1]})}}function r(e){document.cookie=e}a.getConsentCookie=function(e,a){void 0===e&&(e=function(){return document.cookie});var c=i(e(),a);if(c)return{essential:c.essential,performance:c.performance,functional:c.functional,advertising:c.advertising}},a.setConsentCookie=function(e,a,c,s,l,u,d,p){void 0===a&&(a=o.DEFAULT_DOMAIN),void 0===c&&(c=o.DEFAULT_COOKIE_AGE),void 0===s&&(s=n.default),void 0===l&&(l=r);var b,f=function(e){void 0===e&&(e=function(){return document.cookie});var a=i(e());if(a&&a.id)return a.id}()||s(u,d,p),h=t(t({},e),{id:f,version:o.COOKIE_VERSION}),g={e:(b=h).essential?1:0,p:b.performance?1:0,f:b.functional?1:0,a:b.advertising?1:0,i:b.id,v:b.version};return l("awsccc="+btoa(JSON.stringify(g))+"; domain="+a+"; path=/; max-age="+c+"; secure=true; SameSite=Lax"),h}},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t=c(46);a.default=function(e,a,c){void 0===a&&(a=t.v4),void 0===c&&(c=function(){return"ts-"+Date.now().toString()});var n=e?e("error"):function(){};try{return a()}catch(e){return n("uuid",{detail:"Error generating UUID",errorMessage:e.message||""}),c()}}},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.queryGeolocationByHttpGetRequest=a.timestampUrl=a.QUERY_PARAM_KEY=a.DEFAULT_CONSOLE_INTEGRATION_GEOLOCATION_URL=a.DEFAULT_GEOLOCATION_URL=void 0;var t=c(12);a.DEFAULT_GEOLOCATION_URL="https://prod.tools.shortbread.aws.dev/1x1.png",a.DEFAULT_CONSOLE_INTEGRATION_GEOLOCATION_URL="https://prod.tools.shortbread.analytics.console.aws.a2z.com/ping",a.QUERY_PARAM_KEY="awsccc",a.timestampUrl=function(e){if(-1!==e.indexOf("?")){var c=e.split("?");e=c[0]+"?"+a.QUERY_PARAM_KEY+"="+Date.now()+"&"+c[1]}else{if(-1===e.indexOf("#"))return e+"?"+a.QUERY_PARAM_KEY+"="+Date.now();c=e.split("#");e=c[0]+"?"+a.QUERY_PARAM_KEY+"="+Date.now()+"#"+c[1]}return e},a.queryGeolocationByHttpGetRequest=function(e,c,n,o){function i(e,a,t,n,o){e("info")("geolocationLatency",{metric:a,region:t,detail:n,url:c,status:o})}return void 0===e&&(e=!1),void 0===c&&(c=a.DEFAULT_GEOLOCATION_URL),void 0===n&&(n=5e3),void 0===o&&(o=t.DEFAULT_LOGGER),function(r,s){void 0===s&&(s=o||t.DEFAULT_LOGGER);var l=Date.now(),u=new XMLHttpRequest,d="EU",p=200;e&&u.overrideMimeType("application/json"),u.addEventListener("load",(function(){if(p=u.status,e&&304!==p)try{var a=JSON.parse(u.response);403===(p=a.status)&&(d="NON-EU")}catch(e){s("error")("geolocationResponseError",{url:c,detail:"Failed to Parse the Received Geolocation Response"})}else d=403===p?"NON-EU":"EU";i(s,Date.now()-l,d,"Geolocation Response Received",p),r(d)})),u.addEventListener("timeout",(function(){r("EU");var e="Geolocation Request Timed out";i(s,n,"EU",e,u.status),s("error")("geolocationRequestTimeout",{url:c,timeoutSetting:n,detail:e})})),u.open("GET",a.timestampUrl(c)),u.timeout=n,u.send()}},a.default=a.queryGeolocationByHttpGetRequest},function(e,a,c){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var a,c=1,t=arguments.length;cspan{color:#687078}",""]),e.exports=a},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t=c(0),n=c(6),o=c(3);c(35);var i=c(5);a.default=function(e){var a=e.handleSaveClick,c=e.handleCancelClick,r=e.localizedText;return t.act("div",{id:"awsccc-cs-f-c"},t.act(n.default,{dataId:o.CUSTOMIZE_CANCEL_BTN_ID,variant:"secondary",events:{onclick:c},text:r["button-cancel"],props:{"aria-label":r["button-cancel-aria-label"]}}),t.act(n.default,{dataId:o.CUSTOMIZE_SAVE_BTN_ID,variant:"primary",events:{onclick:function(){a({essential:!0,performance:i.isChecked("performance"),functional:i.isChecked("functional"),advertising:i.isChecked("advertising")},"preferencesModal")}},text:r["button-save"],props:{"aria-label":r["button-save-aria-label"]}}))}},function(e,a,c){var t=c(1),n=c(36);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var o={insert:"head",singleton:!1};t(n,o);e.exports=n.locals||{}},function(e,a,c){(a=c(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl #awsccc-cs-f-c{text-align:left}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c{text-decoration:none;padding:10px 20px;text-align:right;border-top:1px solid #eaeded;display:flex;justify-content:center;flex-wrap:wrap}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn{margin-left:10px}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary{background-color:#fff;border-color:#fff;color:#545b64;margin-bottom:6px}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary:hover{color:#000;background-color:#fafafa}@media screen and (min-width: 700px){#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c{display:block}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary{margin-bottom:0}}",""]),e.exports=a},function(e,a,c){var t=c(1),n=c(38);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var o={insert:"head",singleton:!1};t(n,o);e.exports=n.locals||{}},function(e,a,c){(a=c(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-container{display:flex;align-items:center;justify-items:center;bottom:0;left:0;right:0;top:0;position:fixed;z-index:10002;outline:0;overflow:hidden}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-container-inner{max-width:820px;box-sizing:border-box;outline:none;margin:10px auto;width:calc(100vw - 20px)}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-content{background-color:#fff;border-radius:0;box-sizing:border-box;margin-bottom:0;word-wrap:break-word;box-shadow:0 1px 1px 0 rgba(0,28,36,.3),1px 1px 1px 0 rgba(0,28,36,.15),-1px 1px 1px 0 rgba(0,28,36,.15)}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-header{background-color:#fafafa;padding:19px 20px;border-bottom:1px solid #eaeded}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-title{min-width:0;word-break:break-word;color:#16191f;flex:auto}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-title h2{font-size:18px;font-weight:700;margin:0}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalBody{overflow-y:auto;max-height:calc(100vh - 200px);padding:19px 20px}@media screen and (max-width: 480px){#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalBody{max-height:calc(100vh - 275px)}}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalOverlay{background-color:rgba(242,243,243,.9);position:fixed;z-index:10001;right:0;top:0;bottom:0;left:0}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalOverlay{background-color:rgba(22,25,31,.8)}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-header{background-color:#21252c;border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-title h2{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody #awsccc-cs-i-container{border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody #awsccc-cs-i-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container{border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container h3{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container p{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container rect{fill:#1a2029}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-cs-s-text{border-top:0}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awscc-u-cb-checkbox-poly-line{display:none}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-u-cb-checkbox-active .awscc-u-cb-checkbox-poly-line{display:inline-block}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-u-cb-checkbox-active .awscc-u-cb-checkbox-rect{fill:#00a1c9;stroke:#00a1c9}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c{border-top:1px solid #414750;background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary span{color:#d5dbdb}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary:hover{background-color:#21252c}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-primary span{color:#16191f}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span a{display:inline-block}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span a span{color:#44b9d6}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container path{color:#44b9d6}div[data-id=awsccc-cs]{display:none}",""]),e.exports=a},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var t=c(0);c(40),a.default=function(){return t.act("div",{class:"awsccc-u-i-open-c"},t.act("svg",{class:"awsccc-u-i-open",viewBox:"0 0 16 16",focusable:"false","aria-hidden":"true"},t.act("path",{class:"awsccc-stroke-linecap-square",d:"M10 2h4v4"}),t.act("path",{d:"M6 10l8-8"}),t.act("path",{class:"awsccc-stroke-linejoin-round",d:"M14 9.048V14H2V2h5"})))}},function(e,a,c){var t=c(1),n=c(41);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var o={insert:"head",singleton:!1};t(n,o);e.exports=n.locals||{}},function(e,a,c){(a=c(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c{display:inline-block;vertical-align:middle;line-height:1em;padding-left:.3em}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg{stroke-width:2px;pointer-events:none;fill:none;padding-bottom:1px;height:10px;width:10px}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg .awsccc-stroke-linecap-square{stroke-linecap:square}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg .awsccc-stroke-linejoin-round{stroke-linejoin:round}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg path{stroke:currentColor}",""]),e.exports=a},function(e,a,c){var t=c(1),n=c(43);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var o={insert:"head",singleton:!1};t(n,o);e.exports=n.locals||{}},function(e,a,c){(a=c(2)(!1)).push([e.i,'#awsccc-sb-ux-c #awsccc-sb-a *{font-family:"Amazon Ember","HelveticaNeue","Helvetica Neue","Amazon Ember",Roboto,"Roboto-Regular","Amazon Ember",Helvetica,Arial,sans-serif;font-size:14px;line-height:21px;color:#16191f;text-align:left;background:none;border:0}#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl *{direction:rtl;text-align:right}#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl .awsccc-cs-s-container .awsccc-cs-s-action{right:auto;left:20px}@media screen and (min-width: 1020px){#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl #awsccc-cb-c #awsccc-cb-title{padding-right:40px}}#awsccc-sb-ux-c #awsccc-sb-a a,#awsccc-sb-ux-c #awsccc-sb-a a>span,#awsccc-sb-ux-c #awsccc-sb-a a svg path{color:#0073bb;text-decoration:none}#awsccc-sb-ux-c #awsccc-sb-a a:hover,#awsccc-sb-ux-c #awsccc-sb-a a>span:hover,#awsccc-sb-ux-c #awsccc-sb-a a svg path:hover{color:#0073bb;text-decoration:underline}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-tab-helper{outline:0;text-decoration:none}.awsccc-cs-modal-open{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}',""]),e.exports=a},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.convertToArray=a.update=void 0,a.update=function(e,a){return Object.keys(a).forEach((function(c){e[c]=a[c]})),e},a.convertToArray=function(e){return Array.prototype.slice.call(e)}},function(e,a,c){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.default=function(e,a,c){function t(){a.removeEventListener("DOMContentLoaded",t),c.removeEventListener("load",t),e()}void 0===a&&(a=document),void 0===c&&(c=window),"loading"!==a.readyState?c.setTimeout(e):(a.addEventListener("DOMContentLoaded",t),c.addEventListener("load",t))}},function(e,a,c){"use strict";c.r(a),c.d(a,"v1",(function(){return b})),c.d(a,"v3",(function(){return y})),c.d(a,"v4",(function(){return C})),c.d(a,"v5",(function(){return E}));var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),n=new Uint8Array(16);function o(){if(!t)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(n)}for(var i=[],r=0;r<256;++r)i.push((r+256).toString(16).substr(1));var s,l,u=function(e,a){var c=a||0,t=i;return(t[e[c+0]]+t[e[c+1]]+t[e[c+2]]+t[e[c+3]]+"-"+t[e[c+4]]+t[e[c+5]]+"-"+t[e[c+6]]+t[e[c+7]]+"-"+t[e[c+8]]+t[e[c+9]]+"-"+t[e[c+10]]+t[e[c+11]]+t[e[c+12]]+t[e[c+13]]+t[e[c+14]]+t[e[c+15]]).toLowerCase()},d=0,p=0;var b=function(e,a,c){var t=a&&c||0,n=a||[],i=(e=e||{}).node||s,r=void 0!==e.clockseq?e.clockseq:l;if(null==i||null==r){var b=e.random||(e.rng||o)();null==i&&(i=s=[1|b[0],b[1],b[2],b[3],b[4],b[5]]),null==r&&(r=l=16383&(b[6]<<8|b[7]))}var f=void 0!==e.msecs?e.msecs:Date.now(),h=void 0!==e.nsecs?e.nsecs:p+1,g=f-d+(h-p)/1e4;if(g<0&&void 0===e.clockseq&&(r=r+1&16383),(g<0||f>d)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");d=f,p=h,l=r;var m=(1e4*(268435455&(f+=122192928e5))+h)%4294967296;n[t++]=m>>>24&255,n[t++]=m>>>16&255,n[t++]=m>>>8&255,n[t++]=255&m;var k=f/4294967296*1e4&268435455;n[t++]=k>>>8&255,n[t++]=255&k,n[t++]=k>>>24&15|16,n[t++]=k>>>16&255,n[t++]=r>>>8|128,n[t++]=255&r;for(var v=0;v<6;++v)n[t+v]=i[v];return a||u(n)};var f=function(e,a,c){function t(e,t,n,o){var i=n&&o||0;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var a=[],c=0;c>>9<<4)+1}function g(e,a){var c=(65535&e)+(65535&a);return(e>>16)+(a>>16)+(c>>16)<<16|65535&c}function m(e,a,c,t,n,o){return g((i=g(g(a,e),g(t,o)))<<(r=n)|i>>>32-r,c);var i,r}function k(e,a,c,t,n,o,i){return m(a&c|~a&t,e,a,n,o,i)}function v(e,a,c,t,n,o,i){return m(a&t|c&~t,e,a,n,o,i)}function w(e,a,c,t,n,o,i){return m(a^c^t,e,a,n,o,i)}function x(e,a,c,t,n,o,i){return m(c^(a|~t),e,a,n,o,i)}var y=f("v3",48,(function(e){if("string"==typeof e){var a=unescape(encodeURIComponent(e));e=new Uint8Array(a.length);for(var c=0;c>5]>>>t%32&255,o=parseInt("0123456789abcdef".charAt(n>>>4&15)+"0123456789abcdef".charAt(15&n),16);a.push(o)}return a}(function(e,a){e[a>>5]|=128<>5]|=(255&e[t/8])<>>32-a}var E=f("v5",80,(function(e){var a=[1518500249,1859775393,2400959708,3395469782],c=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=[];for(var n=0;n>>0;v=k,k=m,m=_(g,30)>>>0,g=h,h=y}c[0]=c[0]+h>>>0,c[1]=c[1]+g>>>0,c[2]=c[2]+m>>>0,c[3]=c[3]+k>>>0,c[4]=c[4]+v>>>0}return[c[0]>>24&255,c[0]>>16&255,c[0]>>8&255,255&c[0],c[1]>>24&255,c[1]>>16&255,c[1]>>8&255,255&c[1],c[2]>>24&255,c[2]>>16&255,c[2]>>8&255,255&c[2],c[3]>>24&255,c[3]>>16&255,c[3]>>8&255,255&c[3],c[4]>>24&255,c[4]>>16&255,c[4]>>8&255,255&c[4]]}))}])})); -//# sourceMappingURL=index.js.map diff --git a/docs/source/_templates/page.html b/docs/source/_templates/page.html index 68cc2615d4..f26954f9de 100644 --- a/docs/source/_templates/page.html +++ b/docs/source/_templates/page.html @@ -9,14 +9,17 @@ furnished to do so, subject to the following conditions: #} -{%- extends "!page.html" %} +{% extends "!page.html" %} + +{%- block extrahead %} + + +{% endblock %} + {% block body -%} - -{% include "partials/icons.html" %} - +{% include 'partials/icons.html' %} +

    Assigns the specified IPv6 addresses to the specified network interface. You can specify specific IPv6 addresses, or you can specify the number of IPv6 addresses to be automatically assigned from the subnet's IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the limit varies by instance type.

    You must specify either the IPv6 addresses or the IPv6 address count in the request.

    You can optionally use Prefix Delegation on the network interface. You must specify either the IPV6 Prefix Delegation prefixes, or the IPv6 Prefix Delegation count. For information, see Assigning prefixes to network interfaces in the Amazon EC2 User Guide.

    " + "documentation":"

    Assigns one or more IPv6 addresses to the specified network interface. You can specify one or more specific IPv6 addresses, or you can specify the number of IPv6 addresses to be automatically assigned from within the subnet's IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the limit varies per instance type.

    You must specify either the IPv6 addresses or the IPv6 address count in the request.

    You can optionally use Prefix Delegation on the network interface. You must specify either the IPV6 Prefix Delegation prefixes, or the IPv6 Prefix Delegation count. For information, see Assigning prefixes to network interfaces in the Amazon EC2 User Guide.

    " }, "AssignPrivateIpAddresses":{ "name":"AssignPrivateIpAddresses", @@ -162,7 +162,7 @@ }, "input":{"shape":"AssignPrivateIpAddressesRequest"}, "output":{"shape":"AssignPrivateIpAddressesResult"}, - "documentation":"

    Assigns the specified secondary private IP addresses to the specified network interface.

    You can specify specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned from the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon EC2 User Guide.

    When you move a secondary private IP address to another network interface, any Elastic IP address that is associated with the IP address is also moved.

    Remapping an IP address is an asynchronous operation. When you move an IP address from one network interface to another, check network/interfaces/macs/mac/local-ipv4s in the instance metadata to confirm that the remapping is complete.

    You must specify either the IP addresses or the IP address count in the request.

    You can optionally use Prefix Delegation on the network interface. You must specify either the IPv4 Prefix Delegation prefixes, or the IPv4 Prefix Delegation count. For information, see Assigning prefixes to network interfaces in the Amazon EC2 User Guide.

    " + "documentation":"

    Assigns one or more secondary private IP addresses to the specified network interface.

    You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon EC2 User Guide.

    When you move a secondary private IP address to another network interface, any Elastic IP address that is associated with the IP address is also moved.

    Remapping an IP address is an asynchronous operation. When you move an IP address from one network interface to another, check network/interfaces/macs/mac/local-ipv4s in the instance metadata to confirm that the remapping is complete.

    You must specify either the IP addresses or the IP address count in the request.

    You can optionally use Prefix Delegation on the network interface. You must specify either the IPv4 Prefix Delegation prefixes, or the IPv4 Prefix Delegation count. For information, see Assigning prefixes to network interfaces in the Amazon EC2 User Guide.

    " }, "AssignPrivateNatGatewayAddress":{ "name":"AssignPrivateNatGatewayAddress", @@ -470,7 +470,7 @@ }, "input":{"shape":"CancelCapacityReservationRequest"}, "output":{"shape":"CancelCapacityReservationResult"}, - "documentation":"

    Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to cancelled.

    You can cancel a Capacity Reservation that is in the following states:

    • assessing

    • active and there is no commitment duration or the commitment duration has elapsed. You can't cancel a future-dated Capacity Reservation during the commitment duration.

    You can't modify or cancel a Capacity Block. For more information, see Capacity Blocks for ML.

    If a future-dated Capacity Reservation enters the delayed state, the commitment duration is waived, and you can cancel it as soon as it enters the active state.

    Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.

    " + "documentation":"

    Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to cancelled.

    You can cancel a Capacity Reservation that is in the following states:

    • assessing

    • active and there is no commitment duration or the commitment duration has elapsed. You can't cancel a future-dated Capacity Reservation during the commitment duration.

    If a future-dated Capacity Reservation enters the delayed state, the commitment duration is waived, and you can cancel it as soon as it enters the active state.

    Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.

    " }, "CancelCapacityReservationFleets":{ "name":"CancelCapacityReservationFleets", @@ -598,7 +598,7 @@ }, "input":{"shape":"CopySnapshotRequest"}, "output":{"shape":"CopySnapshotResult"}, - "documentation":"

    Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy a snapshot within the same Region, from one Region to another, or from a Region to an Outpost. You can't copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost.

    You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).

    When copying snapshots to a Region, copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable encryption for the snapshot copy operation. By default, encrypted snapshot copies use the default KMS key; however, you can specify a different KMS key. To copy an encrypted snapshot that has been shared from another account, you must have permissions for the KMS key used to encrypt the snapshot.

    Snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using KmsKeyId. Outposts do not support unencrypted snapshots. For more information, see Amazon EBS local snapshots on Outposts in the Amazon EBS User Guide.

    Snapshots created by copying another snapshot have an arbitrary volume ID that should not be used for any purpose.

    For more information, see Copy an Amazon EBS snapshot in the Amazon EBS User Guide.

    " + "documentation":"

    Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy a snapshot within the same Region, from one Region to another, or from a Region to an Outpost. You can't copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost.

    You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).

    When copying snapshots to a Region, copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable encryption for the snapshot copy operation. By default, encrypted snapshot copies use the default KMS key; however, you can specify a different KMS key. To copy an encrypted snapshot that has been shared from another account, you must have permissions for the KMS key used to encrypt the snapshot.

    Snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using KmsKeyId. Outposts do not support unencrypted snapshots. For more information, Amazon EBS local snapshots on Outposts in the Amazon EBS User Guide.

    Snapshots created by copying another snapshot have an arbitrary volume ID that should not be used for any purpose.

    For more information, see Copy an Amazon EBS snapshot in the Amazon EBS User Guide.

    " }, "CreateCapacityReservation":{ "name":"CreateCapacityReservation", @@ -938,7 +938,7 @@ }, "input":{"shape":"CreateManagedPrefixListRequest"}, "output":{"shape":"CreateManagedPrefixListResult"}, - "documentation":"

    Creates a managed prefix list. You can specify entries for the prefix list. Each entry consists of a CIDR block and an optional description.

    " + "documentation":"

    Creates a managed prefix list. You can specify one or more entries for the prefix list. Each entry consists of a CIDR block and an optional description.

    " }, "CreateNatGateway":{ "name":"CreateNatGateway", @@ -1097,7 +1097,7 @@ }, "input":{"shape":"CreateSnapshotRequest"}, "output":{"shape":"Snapshot"}, - "documentation":"

    Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

    The location of the source EBS volume determines where you can create the snapshot.

    • If the source volume is in a Region, you must create the snapshot in the same Region as the volume.

    • If the source volume is in a Local Zone, you can create the snapshot in the same Local Zone or in its parent Amazon Web Services Region.

    • If the source volume is on an Outpost, you can create the snapshot on the same Outpost or in its parent Amazon Web Services Region.

    When a snapshot is created, any Amazon Web Services Marketplace product codes that are associated with the source volume are propagated to the snapshot.

    You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your Amazon EBS volume at the time the snapshot command is issued; this might exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

    When you create a snapshot for an EBS volume that serves as a root device, we recommend that you stop the instance before taking the snapshot.

    Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected. For more information, see Amazon EBS encryption in the Amazon EBS User Guide.

    " + "documentation":"

    Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

    The location of the source EBS volume determines where you can create the snapshot.

    • If the source volume is in a Region, you must create the snapshot in the same Region as the volume.

    • If the source volume is in a Local Zone, you can create the snapshot in the same Local Zone or in parent Amazon Web Services Region.

    • If the source volume is on an Outpost, you can create the snapshot on the same Outpost or in its parent Amazon Web Services Region.

    When a snapshot is created, any Amazon Web Services Marketplace product codes that are associated with the source volume are propagated to the snapshot.

    You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your Amazon EBS volume at the time the snapshot command is issued; this might exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

    When you create a snapshot for an EBS volume that serves as a root device, we recommend that you stop the instance before taking the snapshot.

    Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected. For more information, Amazon EBS encryption in the Amazon EBS User Guide.

    " }, "CreateSnapshots":{ "name":"CreateSnapshots", @@ -1107,7 +1107,7 @@ }, "input":{"shape":"CreateSnapshotsRequest"}, "output":{"shape":"CreateSnapshotsResult"}, - "documentation":"

    Creates crash-consistent snapshots of multiple EBS volumes attached to an Amazon EC2 instance. Volumes are chosen by specifying an instance. Each volume attached to the specified instance will produce one snapshot that is crash-consistent across the instance. You can include all of the volumes currently attached to the instance, or you can exclude the root volume or specific data (non-root) volumes from the multi-volume snapshot set.

    The location of the source instance determines where you can create the snapshots.

    • If the source instance is in a Region, you must create the snapshots in the same Region as the instance.

    • If the source instance is in a Local Zone, you can create the snapshots in the same Local Zone or in its parent Amazon Web Services Region.

    • If the source instance is on an Outpost, you can create the snapshots on the same Outpost or in its parent Amazon Web Services Region.

    " + "documentation":"

    Creates crash-consistent snapshots of multiple EBS volumes attached to an Amazon EC2 instance. Volumes are chosen by specifying an instance. Each volume attached to the specified instance will produce one snapshot that is crash-consistent across the instance. You can include all of the volumes currently attached to the instance, or you can exclude the root volume or specific data (non-root) volumes from the multi-volume snapshot set.

    The location of the source instance determines where you can create the snapshots.

    • If the source instance is in a Region, you must create the snapshots in the same Region as the instance.

    • If the source instance is in a Local Zone, you can create the snapshots in the same Local Zone or in parent Amazon Web Services Region.

    • If the source instance is on an Outpost, you can create the snapshots on the same Outpost or in its parent Amazon Web Services Region.

    " }, "CreateSpotDatafeedSubscription":{ "name":"CreateSpotDatafeedSubscription", @@ -1865,7 +1865,7 @@ "requestUri":"/" }, "input":{"shape":"DeleteSnapshotRequest"}, - "documentation":"

    Deletes the specified snapshot.

    When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume.

    You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first deregister the AMI before you can delete the snapshot.

    For more information, see Delete an Amazon EBS snapshot in the Amazon EBS User Guide.

    " + "documentation":"

    Deletes the specified snapshot.

    When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume.

    You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first de-register the AMI before you can delete the snapshot.

    For more information, see Delete an Amazon EBS snapshot in the Amazon EBS User Guide.

    " }, "DeleteSpotDatafeedSubscription":{ "name":"DeleteSpotDatafeedSubscription", @@ -2386,7 +2386,7 @@ }, "input":{"shape":"DescribeCapacityBlockOfferingsRequest"}, "output":{"shape":"DescribeCapacityBlockOfferingsResult"}, - "documentation":"

    Describes Capacity Block offerings available for purchase in the Amazon Web Services Region that you're currently using. With Capacity Blocks, you purchase a specific instance type for a period of time.

    To search for an available Capacity Block offering, you specify a reservation duration and instance count. You must select one of the following options.

    • For reservation durations 1-day increments up 14 days and 7-day increments up to 182 days total

    • For instance count 1, 2, 4, 8, 16, 32, or 64 instances

    " + "documentation":"

    Describes Capacity Block offerings available for purchase in the Amazon Web Services Region that you're currently using. With Capacity Blocks, you purchase a specific instance type for a period of time.

    " }, "DescribeCapacityReservationBillingRequests":{ "name":"DescribeCapacityReservationBillingRequests", @@ -2836,7 +2836,7 @@ }, "input":{"shape":"DescribeInstanceTopologyRequest"}, "output":{"shape":"DescribeInstanceTopologyResult"}, - "documentation":"

    Describes a tree-based hierarchy that represents the physical host placement of your EC2 instances within an Availability Zone or Local Zone. You can use this information to determine the relative proximity of your EC2 instances within the Amazon Web Services network to support your tightly coupled workloads.

    Limitations

    • Supported zones

      • Availability Zone

      • Local Zone

    • Supported instance types

      • hpc6a.48xlarge | hpc6id.32xlarge | hpc7a.12xlarge | hpc7a.24xlarge | hpc7a.48xlarge | hpc7a.96xlarge | hpc7g.4xlarge | hpc7g.8xlarge | hpc7g.16xlarge

      • p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | p5.48xlarge | p5e.48xlarge | p5en.48xlarge

      • trn1.2xlarge | trn1.32xlarge | trn1n.32xlarge | trn2.48xlarge | trn2u.48xlarge

    For more information, see Amazon EC2 instance topology in the Amazon EC2 User Guide.

    " + "documentation":"

    Describes a tree-based hierarchy that represents the physical host placement of your EC2 instances within an Availability Zone or Local Zone. You can use this information to determine the relative proximity of your EC2 instances within the Amazon Web Services network to support your tightly coupled workloads.

    Limitations

    • Supported zones

      • Availability Zone

      • Local Zone

    • Supported instance types

      • hpc6a.48xlarge | hpc6id.32xlarge | hpc7a.12xlarge | hpc7a.24xlarge | hpc7a.48xlarge | hpc7a.96xlarge | hpc7g.4xlarge | hpc7g.8xlarge | hpc7g.16xlarge

      • p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | p5.48xlarge | p5e.48xlarge | p5en.48xlarge

      • trn1.2xlarge | trn1.32xlarge | trn1n.32xlarge

    For more information, see Amazon EC2 instance topology in the Amazon EC2 User Guide.

    " }, "DescribeInstanceTypeOfferings":{ "name":"DescribeInstanceTypeOfferings", @@ -3176,7 +3176,7 @@ }, "input":{"shape":"DescribeNetworkInterfacesRequest"}, "output":{"shape":"DescribeNetworkInterfacesResult"}, - "documentation":"

    Describes the specified network interfaces or all your network interfaces.

    If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: group-id, mac-address, private-dns-name, private-ip-address, private-dns-name, subnet-id, or vpc-id.

    We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.

    " + "documentation":"

    Describes one or more of your network interfaces.

    If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: group-id, mac-address, private-dns-name, private-ip-address, private-dns-name, subnet-id, or vpc-id.

    We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.

    " }, "DescribePlacementGroups":{ "name":"DescribePlacementGroups", @@ -6469,7 +6469,7 @@ }, "input":{"shape":"UnassignIpv6AddressesRequest"}, "output":{"shape":"UnassignIpv6AddressesResult"}, - "documentation":"

    Unassigns the specified IPv6 addresses or Prefix Delegation prefixes from a network interface.

    " + "documentation":"

    Unassigns one or more IPv6 addresses IPv4 Prefix Delegation prefixes from a network interface.

    " }, "UnassignPrivateIpAddresses":{ "name":"UnassignPrivateIpAddresses", @@ -6478,7 +6478,7 @@ "requestUri":"/" }, "input":{"shape":"UnassignPrivateIpAddressesRequest"}, - "documentation":"

    Unassigns the specified secondary private IP addresses or IPv4 Prefix Delegation prefixes from a network interface.

    " + "documentation":"

    Unassigns one or more secondary private IP addresses, or IPv4 Prefix Delegation prefixes from a network interface.

    " }, "UnassignPrivateNatGatewayAddress":{ "name":"UnassignPrivateNatGatewayAddress", @@ -7676,7 +7676,10 @@ }, "AllocationType":{ "type":"string", - "enum":["used"] + "enum":[ + "used", + "future" + ] }, "AllowedImagesSettingsDisabledState":{ "type":"string", @@ -8211,7 +8214,7 @@ }, "Ipv6Prefixes":{ "shape":"IpPrefixList", - "documentation":"

    One or more IPv6 prefixes assigned to the network interface. You can't use this option if you use the Ipv6PrefixCount option.

    ", + "documentation":"

    One or more IPv6 prefixes assigned to the network interface. You cannot use this option if you use the Ipv6PrefixCount option.

    ", "locationName":"Ipv6Prefix" }, "NetworkInterfaceId":{ @@ -8257,12 +8260,12 @@ "members":{ "Ipv4Prefixes":{ "shape":"IpPrefixList", - "documentation":"

    One or more IPv4 prefixes assigned to the network interface. You can't use this option if you use the Ipv4PrefixCount option.

    ", + "documentation":"

    One or more IPv4 prefixes assigned to the network interface. You cannot use this option if you use the Ipv4PrefixCount option.

    ", "locationName":"Ipv4Prefix" }, "Ipv4PrefixCount":{ "shape":"Integer", - "documentation":"

    The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface. You can't use this option if you use the Ipv4 Prefixes option.

    " + "documentation":"

    The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface. You cannot use this option if you use the Ipv4 Prefixes option.

    " }, "NetworkInterfaceId":{ "shape":"NetworkInterfaceId", @@ -15177,7 +15180,7 @@ }, "Groups":{ "shape":"SecurityGroupIdStringList", - "documentation":"

    The IDs of the security groups.

    ", + "documentation":"

    The IDs of one or more security groups.

    ", "locationName":"SecurityGroupId" }, "PrivateIpAddresses":{ @@ -24287,7 +24290,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

    One or more filters.

    • association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.

    • association.association-id - The association ID returned when the network interface was associated with an IPv4 address.

    • addresses.association.owner-id - The owner ID of the addresses associated with the network interface.

    • addresses.association.public-ip - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).

    • addresses.primary - Whether the private IPv4 address is the primary IP address associated with the network interface.

    • addresses.private-ip-address - The private IPv4 addresses associated with the network interface.

    • association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface.

    • association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface.

    • association.public-dns-name - The public DNS name for the network interface (IPv4).

    • attachment.attach-time - The time that the network interface was attached to an instance.

    • attachment.attachment-id - The ID of the interface attachment.

    • attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated.

    • attachment.device-index - The device index to which the network interface is attached.

    • attachment.instance-id - The ID of the instance to which the network interface is attached.

    • attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

    • attachment.status - The status of the attachment (attaching | attached | detaching | detached).

    • availability-zone - The Availability Zone of the network interface.

    • description - The description of the network interface.

    • group-id - The ID of a security group associated with the network interface.

    • ipv6-addresses.ipv6-address - An IPv6 address associated with the network interface.

    • interface-type - The type of network interface (api_gateway_managed | aws_codestar_connections_managed | branch | ec2_instance_connect_endpoint | efa | efa-only | efs | gateway_load_balancer | gateway_load_balancer_endpoint | global_accelerator_managed | interface | iot_rules_managed | lambda | load_balancer | nat_gateway | network_load_balancer | quicksight | transit_gateway | trunk | vpc_endpoint).

    • mac-address - The MAC address of the network interface.

    • network-interface-id - The ID of the network interface.

    • operator.managed - A Boolean that indicates whether this is a managed network interface.

    • operator.principal - The principal that manages the network interface. Only valid for managed network interfaces, where managed is true.

    • owner-id - The Amazon Web Services account ID of the network interface owner.

    • private-dns-name - The private DNS name of the network interface (IPv4).

    • private-ip-address - The private IPv4 address or addresses of the network interface.

    • requester-id - The alias or Amazon Web Services account ID of the principal or service that created the network interface.

    • requester-managed - Indicates whether the network interface is being managed by an Amazon Web Services service (for example, Amazon Web Services Management Console, Auto Scaling, and so on).

    • source-dest-check - Indicates whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

    • status - The status of the network interface. If the network interface is not attached to an instance, the status is available; if a network interface is attached to an instance the status is in-use.

    • subnet-id - The ID of the subnet for the network interface.

    • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    • vpc-id - The ID of the VPC for the network interface.

    ", + "documentation":"

    One or more filters.

    • association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.

    • association.association-id - The association ID returned when the network interface was associated with an IPv4 address.

    • addresses.association.owner-id - The owner ID of the addresses associated with the network interface.

    • addresses.association.public-ip - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).

    • addresses.primary - Whether the private IPv4 address is the primary IP address associated with the network interface.

    • addresses.private-ip-address - The private IPv4 addresses associated with the network interface.

    • association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface.

    • association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface.

    • association.public-dns-name - The public DNS name for the network interface (IPv4).

    • attachment.attach-time - The time that the network interface was attached to an instance.

    • attachment.attachment-id - The ID of the interface attachment.

    • attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated.

    • attachment.device-index - The device index to which the network interface is attached.

    • attachment.instance-id - The ID of the instance to which the network interface is attached.

    • attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

    • attachment.status - The status of the attachment (attaching | attached | detaching | detached).

    • availability-zone - The Availability Zone of the network interface.

    • description - The description of the network interface.

    • group-id - The ID of a security group associated with the network interface.

    • ipv6-addresses.ipv6-address - An IPv6 address associated with the network interface.

    • interface-type - The type of network interface (api_gateway_managed | aws_codestar_connections_managed | branch | ec2_instance_connect_endpoint | efa | efa-only | efs | gateway_load_balancer | gateway_load_balancer_endpoint | global_accelerator_managed | interface | iot_rules_managed | lambda | load_balancer | nat_gateway | network_load_balancer | quicksight | transit_gateway | trunk | vpc_endpoint).

    • mac-address - The MAC address of the network interface.

    • network-interface-id - The ID of the network interface.

    • owner-id - The Amazon Web Services account ID of the network interface owner.

    • private-dns-name - The private DNS name of the network interface (IPv4).

    • private-ip-address - The private IPv4 address or addresses of the network interface.

    • requester-id - The alias or Amazon Web Services account ID of the principal or service that created the network interface.

    • requester-managed - Indicates whether the network interface is being managed by an Amazon Web Services service (for example, Amazon Web Services Management Console, Auto Scaling, and so on).

    • source-dest-check - Indicates whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

    • status - The status of the network interface. If the network interface is not attached to an instance, the status is available; if a network interface is attached to an instance the status is in-use.

    • subnet-id - The ID of the subnet for the network interface.

    • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    • vpc-id - The ID of the VPC for the network interface.

    ", "locationName":"filter" } }, @@ -37107,7 +37110,7 @@ }, "NoDevice":{ "shape":"String", - "documentation":"

    Suppresses the specified device included in the block device mapping.

    ", + "documentation":"

    suppress the specified device included in the block device mapping.

    ", "locationName":"noDevice" } }, @@ -38120,7 +38123,7 @@ }, "SecondaryPrivateIpAddressCount":{ "shape":"Integer", - "documentation":"

    The number of secondary private IPv4 addresses. You can’t specify this parameter and also specify a secondary private IP address using the PrivateIpAddress parameter.

    ", + "documentation":"

    The number of secondary private IPv4 addresses. You can't specify this option and specify more than one private IP address using the private IP addresses option. You cannot specify this option if you're launching more than one instance in a RunInstances request.

    ", "locationName":"secondaryPrivateIpAddressCount" }, "SubnetId":{ @@ -38319,7 +38322,7 @@ }, "AcceleratorTypes":{ "shape":"AcceleratorTypeSet", - "documentation":"

    The accelerator types that must be on the instance type.

    • For instance types with FPGA accelerators, specify fpga.

    • For instance types with GPU accelerators, specify gpu.

    • For instance types with Inference accelerators, specify inference.

    Default: Any accelerator type

    ", + "documentation":"

    The accelerator types that must be on the instance type.

    • For instance types with GPU accelerators, specify gpu.

    • For instance types with FPGA accelerators, specify fpga.

    Default: Any accelerator type

    ", "locationName":"acceleratorTypeSet" }, "AcceleratorCount":{ @@ -38442,7 +38445,7 @@ }, "AcceleratorTypes":{ "shape":"AcceleratorTypeSet", - "documentation":"

    The accelerator types that must be on the instance type.

    • For instance types with FPGA accelerators, specify fpga.

    • For instance types with GPU accelerators, specify gpu.

    • For instance types with Inference accelerators, specify inference.

    Default: Any accelerator type

    ", + "documentation":"

    The accelerator types that must be on the instance type.

    • To include instance types with GPU hardware, specify gpu.

    • To include instance types with FPGA hardware, specify fpga.

    Default: Any accelerator type

    ", "locationName":"AcceleratorType" }, "AcceleratorCount":{ @@ -41882,7 +41885,7 @@ "documentation":"

    The IPv6 prefix.

    " } }, - "documentation":"

    Describes the IPv6 prefix option for a network interface.

    " + "documentation":"

    Describes the IPv4 prefix option for a network interface.

    " }, "Ipv6PrefixSpecificationResponse":{ "type":"structure", @@ -61967,7 +61970,7 @@ }, "UnassignedIpv6Prefixes":{ "shape":"IpPrefixList", - "documentation":"

    The IPv6 prefixes that have been unassigned from the network interface.

    ", + "documentation":"

    The IPv4 prefixes that have been unassigned from the network interface.

    ", "locationName":"unassignedIpv6PrefixSet" } } From 80b1eb0256593d3179a6e7d9e7295d11bd2737ca Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 23 Jan 2025 19:07:13 +0000 Subject: [PATCH 3/3] Bumping version to 1.36.5 --- .changes/1.36.5.json | 7 +++++++ .changes/next-release/api-change-ec2-90444.json | 5 ----- CHANGELOG.rst | 6 ++++++ botocore/__init__.py | 2 +- docs/source/conf.py | 2 +- 5 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 .changes/1.36.5.json delete mode 100644 .changes/next-release/api-change-ec2-90444.json diff --git a/.changes/1.36.5.json b/.changes/1.36.5.json new file mode 100644 index 0000000000..80c9496ad9 --- /dev/null +++ b/.changes/1.36.5.json @@ -0,0 +1,7 @@ +[ + { + "category": "``ec2``", + "description": "Added \"future\" allocation type for future dated capacity reservation", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-ec2-90444.json b/.changes/next-release/api-change-ec2-90444.json deleted file mode 100644 index ab541216c7..0000000000 --- a/.changes/next-release/api-change-ec2-90444.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ec2``", - "description": "Added \"future\" allocation type for future dated capacity reservation" -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a2d70fa335..cd1a419640 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,12 @@ CHANGELOG ========= +1.36.5 +====== + +* api-change:``ec2``: Added "future" allocation type for future dated capacity reservation + + 1.36.4 ====== diff --git a/botocore/__init__.py b/botocore/__init__.py index 8928a75b17..0c9f4cf03a 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re -__version__ = '1.36.4' +__version__ = '1.36.5' class NullHandler(logging.Handler): diff --git a/docs/source/conf.py b/docs/source/conf.py index bb6c9330ca..ae77ec014e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -59,7 +59,7 @@ # The short X.Y version. version = '1.36' # The full version, including alpha/beta/rc tags. -release = '1.36.4' +release = '1.36.5' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages.