diff --git a/.copier-answers.yml b/.copier-answers.yml index d126d7b..ec8b694 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,6 +1,6 @@ # This file is auto-generated, changes will be overwritten -_commit: v0.0.12 -_src_path: /task/b9fd4019-f2ce-11ed-8b1b-dae315becaa1/projecttype +_commit: v0.0.13 +_src_path: /task/cef6ced7-f9a1-11ed-8bca-cae66981e6ca/projecttype starting_version: v0.0.0 version_file: VERSION diff --git a/.project_automation/publication/Dockerfile b/.project_automation/publication/Dockerfile index cfaa978..5f11fe1 100644 --- a/.project_automation/publication/Dockerfile +++ b/.project_automation/publication/Dockerfile @@ -1,3 +1,18 @@ FROM public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:4.0 RUN yum install -y yum-utils && yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo && yum install -y gh RUN pip install taskcat + +# https://github.com/gohugoio/hugo/releases +ENV HUGO_VERSION=0.111.3 + +RUN yum install -y yum-utils && \ + yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo && \ + yum install -y gh && \ + pip3 install --upgrade pip && \ + go env -w GOPROXY=direct && \ + pushd /tmp && \ + wget -q -nv https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-amd64.tar.gz && \ + tar -xzf hugo_${HUGO_VERSION}_linux-amd64.tar.gz && \ + mv ./hugo /usr/bin/ && \ + popd && \ + gem install asciidoctor diff --git a/.project_automation/publication/entrypoint.sh b/.project_automation/publication/entrypoint.sh index 86f744e..0569f74 100755 --- a/.project_automation/publication/entrypoint.sh +++ b/.project_automation/publication/entrypoint.sh @@ -5,6 +5,35 @@ PROJECT_PATH=${BASE_PATH}/project PROJECT_TYPE_PATH=${BASE_PATH}/projecttype +BRANCH=main +EXISTING_GIT_VERSION="$(git tag -l)" +HUGO_VERSION=$(hugo version) +PUBLIC_PATH=./public +# ABP clones with HTTPS URL remotes +REPO_NAME=$(git config --get remote.origin.url | cut -d '/' -f5 | cut -d '.' -f1) +VERSION=$(cat VERSION) + +BASE_URL="this would be the path to s3 bucket/${REPO_NAME}/" +S3_URI="s3://aws-abi-pilot/guide/${REPO_NAME}/" + +print_header() { + printf "\n\n%s\n" "$*" +} + +print_header 'Building site...' +cd ${PROJECT_PATH}/guide +hugo --verbose --debug + +print_header 'Publishing...' +aws s3 sync --delete "${PUBLIC_PATH}" "${S3_URI}" --acl public-read + +print_header 'Listing uploaded content...' +aws s3 ls --recursive --human-readable --summarize "${S3_URI}" + +printf "\nPublished at ${BASE_URL}\n" + +# Publish code to S3 bucket + cd ${PROJECT_PATH} taskcat upload --bucket-name aws-abi-pilot --object-acl public-read diff --git a/guide/.hugo_build.lock b/guide/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/guide/assets/css/style.css b/guide/assets/css/style.css new file mode 100644 index 0000000..f02ee14 --- /dev/null +++ b/guide/assets/css/style.css @@ -0,0 +1,296 @@ +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_Bd.eot"); + src: + url("../fonts/AmazonEmber_W_Bd.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_Bd.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_Lt.woff") format("woff"); + font-style: normal; + font-weight: bold; +} + +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_BdIt.eot"); + src: + url("../fonts/AmazonEmber_W_BdIt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_BdIt.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_BdIt.woff") format("woff"); + font-style: italic; + font-weight: bold; +} + +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_He.eot"); + src: + url("../fonts/AmazonEmber_W_He.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_He.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_He.woff") format("woff"); + font-style: normal; + font-weight: bolder; +} + +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_HeIt.eot"); + src: + url("../fonts/AmazonEmber_W_HeIt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_HeIt.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_HeIt.woff") format("woff"); + font-style: italic; + font-weight: bolder; +} + +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_Lt.eot"); + src: + url("../fonts/AmazonEmber_W_Lt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_Lt.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_Lt.woff") format("woff"); + font-style: normal; + font-weight: lighter; +} + +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_LtIt.eot"); + src: + url("../fonts/AmazonEmber_W_LtIt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_LtIt.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_LtIt.woff") format("woff"); + font-style: italic; + font-weight: lighter; +} + +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_Rg.eot"); + src: + url("../fonts/AmazonEmber_W_Rg.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_Rg.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_Rg.woff") format("woff"); + font-style: normal; + font-weight: normal; +} + +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_RgIt.eot"); + src: + url("../fonts/AmazonEmber_W_RgIt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_RgIt.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_RgIt.woff") format("woff"); + font-style: italic; + font-weight: normal; +} + +@font-face { + font-family: 'Amazon Ember'; + src: url("../fonts/AmazonEmber_W_RgIt.eot"); + src: + url("../fonts/AmazonEmber_W_RgIt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmber_W_RgIt.woff2") format("woff2"), + url("../fonts/AmazonEmber_W_RgIt.woff") format("woff"); + font-style: italic; + font-weight: normal; +} + +@font-face { + font-family: 'Amazon Ember Mono'; + src: url("../fonts/AmazonEmberMono_W_Bd.eot"); + src: + url("../fonts/AmazonEmberMono_W_Bd.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberMono_W_Bd.woff2") format("woff2"), + url("../fonts/AmazonEmberMono_W_Bd.woff") format("woff"); + font-style: normal; + font-weight: bold; +} + +@font-face { + font-family: 'Amazon Ember Mono'; + src: url("../fonts/AmazonEmberMono_W_Rg.eot"); + src: + url("../fonts/AmazonEmberMono_W_Rg.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberMono_W_Rg.woff2") format("woff2"), + url("../fonts/AmazonEmberMono_W_Rg.woff") format("woff"); + font-style: normal; + font-weight: normal; +} + +@font-face { + font-family: 'Amazon Ember Cd RC'; + src: url("../fonts/AmazonEmberCd_W_Bd.eot"); + src: + url("../fonts/AmazonEmberCd_W_Bd.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberCd_W_Bd.woff2") format("woff2"), + url("../fonts/AmazonEmberCd_W_Bd.woff") format("woff"); + font-style: normal; + font-weight: bold; +} + +@font-face { + font-family: 'Amazon Ember Cd RC'; + src: url("../fonts/AmazonEmberCd_W_BdIt.eot"); + src: + url("../fonts/AmazonEmberCd_W_BdIt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberCd_W_BdIt.woff2") format("woff2"), + url("../fonts/AmazonEmberCd_W_BdIt.woff") format("woff"); + font-style: italic; + font-weight: bold; +} + +@font-face { + font-family: 'Amazon Ember Cd RC'; + src: url("../fonts/AmazonEmberCd_W_Lt.eot"); + src: + url("../fonts/AmazonEmberCd_W_Lt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberCd_W_Lt.woff2") format("woff2"), + url("../fonts/AmazonEmberCd_W_Lt.woff") format("woff"); + font-style: normal; + font-weight: lighter; +} + +@font-face { + font-family: 'Amazon Ember Cd RC'; + src: url("../fonts/AmazonEmberCd_W_LtIt.eot"); + src: + url("../fonts/AmazonEmberCd_W_LtIt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberCd_W_LtIt.woff2") format("woff2"), + url("../fonts/AmazonEmberCd_W_LtIt.woff") format("woff"); + font-style: italic; + font-weight: lighter; +} + +@font-face { + font-family: 'Amazon Ember Cd RC'; + src: url("../fonts/AmazonEmberCd_W_Rg.eot"); + src: + url("../fonts/AmazonEmberCd_W_Rg.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberCd_W_Rg.woff2") format("woff2"), + url("../fonts/AmazonEmberCd_W_Rg.woff") format("woff"); + font-style: normal; + font-weight: normal; +} + +@font-face { + font-family: 'Amazon Ember Cd RC'; + src: url("../fonts/AmazonEmberCd_W_RgIt.eot"); + src: + url("../fonts/AmazonEmberCd_W_RgIt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberCd_W_RgIt.woff2") format("woff2"), + url("../fonts/AmazonEmberCd_W_RgIt.woff") format("woff"); + font-style: italic; + font-weight: normal; +} + +@font-face { + font-family: 'Amazon Ember Display'; + src: url("../fonts/AmazonEmberDisplay_W_Bd.eot"); + src: + url("../fonts/AmazonEmberDisplay_W_Bd.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberDisplay_W_Bd.woff2") format("woff2"), + url("../fonts/AmazonEmberDisplay_W_Bd.woff") format("woff"); + font-style: normal; + font-weight: bold; +} + +@font-face { + font-family: 'Amazon Ember Display'; + src: url("../fonts/AmazonEmberDisplay_W_He.eot"); + src: + url("../fonts/AmazonEmberDisplay_W_He.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberDisplay_W_He.woff2") format("woff2"), + url("../fonts/AmazonEmberDisplay_W_He.woff") format("woff"); + font-style: normal; + font-weight: bolder; +} + +@font-face { + font-family: 'Amazon Ember Display'; + src: url("../fonts/AmazonEmberDisplay_W_Lt.eot"); + src: + url("../fonts/AmazonEmberDisplay_W_Lt.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberDisplay_W_Lt.woff2") format("woff2"), + url("../fonts/AmazonEmberDisplay_W_Lt.woff") format("woff"); + font-style: normal; + font-weight: lighter; +} + +@font-face { + font-family: 'Amazon Ember Display'; + src: url("../fonts/AmazonEmberDisplay_W_Rg.eot"); + src: + url("../fonts/AmazonEmberDisplay_W_Rg.eot?#iefix") format("embedded-opentype"), + url("../fonts/AmazonEmberDisplay_W_Rg.woff2") format("woff2"), + url("../fonts/AmazonEmberDisplay_W_Rg.woff") format("woff"); + font-style: normal; + font-weight: normal; +} + +@media screen and (min-width: 1430px) { + #body .flex-block-wrapper { + min-width: calc( 1430px - 300px - 2 * 3.25rem ); + width: calc( 1430px - 300px - 2 * 3.25rem ); + max-width: calc( 1430px - 300px - 2 * 3.25rem ); + } +} + +#sidebar #footer > div { + font-size: .8125rem; + margin: 0 auto; + max-width: 18.75rem; + min-width: 14.375rem; + padding: 0 1rem; + text-align: center; +} + +#sidebar #footer p { + margin: 0; +} + +#sidebar #footer ul { + list-style: none; + margin-top: 8px; + padding: 0; +} + +#sidebar #footer ul > li { + display: inline; + padding-left: 8px; + padding-right: 4px; +} + +#sidebar #footer ul > li:not(:first-child) { + border-left: 1px solid var(--MENU-SECTION-HR-color); +} + +#sidebar #footer ul > li > a { + color: var(--MENU-SECTIONS-LINK-color); + cursor: pointer; + display: inline; + text-decoration: none; +} + +#sidebar #footer ul > li > a:hover { + color: var(--MENU-SECTIONS-LINK-HOVER-color); + cursor: pointer; +} + +#sidebar #shortcuts > div { + color: var(--INTERNAL-MENU-SECTIONS-LINK-color); + font-size: 1.1rem; + font-weight: 300; + text-rendering: auto; + text-transform: none; +} + +article { + background-color: var(--MAIN-ARTICLE-BG-color); + padding: 0 1rem 1rem 1rem; +} + +article > h1 { + text-transform: none !important; +} diff --git a/guide/assets/images/error_pages_illustration.svg b/guide/assets/images/error_pages_illustration.svg new file mode 100644 index 0000000..21b37d7 --- /dev/null +++ b/guide/assets/images/error_pages_illustration.svg @@ -0,0 +1,25 @@ + diff --git a/guide/assets/images/logo.svg b/guide/assets/images/logo.svg new file mode 100644 index 0000000..4d23322 --- /dev/null +++ b/guide/assets/images/logo.svg @@ -0,0 +1 @@ +AWS-Logo_White-Color \ No newline at end of file diff --git a/guide/config/_default/config.toml b/guide/config/_default/config.toml new file mode 100644 index 0000000..1dd0540 --- /dev/null +++ b/guide/config/_default/config.toml @@ -0,0 +1,227 @@ +# https://gohugo.io/getting-started/configuration/ + +# The directory where Hugo finds archetype files (content templates). +# Default value: 'archetypes' +archetypeDir = 'archetypes' + +# The directory where Hugo finds asset files used in Hugo Pipes. +# Default value: 'assets' +assetDir = 'assets' + +# Hostname (and path) to the root. +baseUrl = "https://docs.builder-toolkit.partner.aws.dev/docs-abp-project-type" + +# Include drafts when building. +# Default value: false +buildDrafts = true + +# Include content already expired. +# Default value: false +buildExpired = false + +# Include content with publishdate in the future. +# Default value: false +buildFuture = true + +# Enable to turn relative URLs into absolute. +# Default value: false +# Relearn theme: Must be enabled when serving from a subfolder. +# https://mcshelby.github.io/hugo-theme-relearn/basics/configuration/index.html#serving-your-page-from-a-subfolder +canonifyURLs = true + +# The directory from where Hugo reads content files. +# Default value: 'content' +contentDir = 'content' + +# Copyright notice for your site, typically displayed in the footer. +# Default value: '' +copyright = '© {{YEAR}}, Amazon Web Services, Inc. or its affiliates. All rights reserved.' + +# The directory from where Hugo reads data files. +# Default value: 'data' +dataDir = 'data' + +# Content without language indicator will default to this language. +# Default value: 'en' +defaultContentLanguage = 'en' + +# Render the default content language in subdir, e.g. content/en/. The site root / will then redirect to /en/. +# Default value: false +defaultContentLanguageInSubdir = true + +# Will disable generation of alias redirects. Note that even if disableAliases is set, the aliases themselves are +# preserved on the page. The motivation with this is to be able to generate 301 redirects in an .htaccess, a Netlify +# _redirects file or similar using a custom output format. +# Default value: false +disableAliases = false + +# Hugo will, by default, inject a generator meta tag in the HTML head on the home page only. You can turn it off, but +# we would really appreciate if you don't, as this is a good way to watch Hugo's popularity on the rise. +# Default value: false +disableHugoGeneratorInject = false + +# Enable disabling of all pages of the specified Kinds. Allowed values in this list: "page", "home", "section", +# "taxonomy", "term", "RSS", "sitemap", "robotsTXT", "404". +# Default value: [] +disableKinds = [] + +# You can disable one or more languages. This can be useful when working on a new translation. +# Default value: [] +# Example: ['fr', 'ja'] +disableLanguages = [] + +# Disable automatic live reloading of browser window. +# Default value: false +disableLiveReload = false + +# Do not convert the url/path to lowercase. +# Default value: false +disablePathToLower = false + +# Enable Emoji emoticons support for page content; see the Emoji Cheat Sheet. +# https://www.webpagefx.com/tools/emoji-cheat-sheet/ +# Default value: false +enableEmoji = true + +# Enable .GitInfo object for each page (if the Hugo site is versioned by Git). This will then update the lastmod +# parameter for each page using the last git commit date for that content file. +# Default value: false +# enableGitInfo = true + +# Enable inline shortcode support. See Inline Shortcodes. +# https://gohugo.io/templates/shortcode-templates/#inline-shortcodes +enableInlineShortcodes = true + +# Show a placeholder instead of the default value or an empty string if a translation is missing. +# Default value: false +enableMissingTranslationPlaceholders = false + +# Enable generation of robots.txt file. +# Default value: false +enableRobotsTXT = true + +# Prefix for footnote anchors. +# Default value: '' +footnoteAnchorPrefix = '' + +# Text to display for footnote return links. +# Default value: '' +footnoteReturnLinkContents = '' + +# Google Analytics tracking ID. +# Default value: '' +googleAnalytics = '' + +# If true, auto-detect Chinese/Japanese/Korean Languages in the content. This will make .Summary and .WordCount behave +# correctly for CJK languages. +# Default value: false +hasCJKLanguage = false + +# A language tag as defined by RFC 5646. The internal RSS template populates its element with this value. +# The value is not used elsewhere. +# Default value: '' +languageCode = 'en-us' + +# The editor to use when creating new content. +# Default value: '' +newContentEditor = '' + +# Don't sync permission mode of files. +# noChmod + +# Don't sync modification time of files. +# noTimes + +# Default number of elements per page in pagination. +# Default value: 10 +paginate = 10 + +# The path element used during pagination (https://example.com/page/2). +# Default value: 'page' +paginatePath = 'page' + +# Pluralize titles in lists. +# Default value: true +pluralizeListTitles = false + +# The directory to where Hugo will write the final static site (the HTML files etc.). +# Default value: 'public' +# ABP Docs: Don't change this value or it will break the functional tests and publishing automation. +publishDir = 'public' + +# Enable this to make all relative URLs relative to content root. Note that this does not affect absolute URLs. +# Default value: false +# Relearn theme: Must be enabled when serving from a subfolder. +# https://mcshelby.github.io/hugo-theme-relearn/basics/configuration/index.html#serving-your-page-from-a-subfolder +relativeURLs = true + +# When using ref or relref to resolve page links and a link cannot resolved, it will be logged with this log level. +# Valid values are ERROR (default) or WARNING. Any ERROR will fail the build (exit -1). +# Default value: 'ERROR' +# refLinksErrorLevel 'ERROR' + +# URL to be used as a placeholder when a page reference cannot be found in ref or relref. Is used as-is. +# refLinksNotFoundURL + +# Removes non-spacing marks from composite characters in content paths. +# Example: content/post/hügó.md --> https://example.org/post/hugo/ +# Default value: false +removePathAccents = false + +# Undocumented +resourceDir = 'resources' + +# Maximum number of items in the RSS feed. +# Default value: -1 +rssLimit = -1 + +# Section Menu for Lazy Bloggers +# This will create a menu with all the sections as menu items and all the sections' pages as “shadow-members”. The +# shadow implies that the pages isn't represented by a menu-item themselves, but this enables you to create a top-level +# menu. +# Setting to 'main' will enable unless configured otherwise. +# https://gohugo.io/templates/menu-templates/#section-menu-for-lazy-bloggers +# Default value: '' +sectionPagesMenu = 'main' + +# The length of text in words to show in a .Summary. +# Default value: 70 +summaryLength = 70 + +# The name of the theme to import. +# ABP Docs: Hugo modules implementation for importing the Relearn theme. +theme = ['github.com/McShelby/hugo-theme-relearn'] + +# The directory where Hugo reads the themes from. +# Default value: 'themes' +# ABP Docs: Not used since theme is imported via Hugo modules. +themesDir = 'themes' + +# Timeout for generating page contents, specified as a duration or in milliseconds. Note: this is used to bail out of +# recursive content generation. You might need to raise this limit if your pages are slow to generate (e.g., because +# they require large image processing or depend on remote contents). +# Default value: '30s' +timeout = '30s' + +# The time zone (or location), e.g. Europe/Oslo, used to parse front matter dates without such information and in the +# time function. The list of valid values may be system dependent, but should include UTC, Local, and any location in +# the IANA Time Zone database. +# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +timeZone = 'UTC' + +# Site title. +title = "" + +# Set titleCaseStyle to specify the title style used by the title template function and the automatic section titles in +# Hugo. It defaults to AP Stylebook for title casing, but you can also set it to Chicago or Go (every word starts with +# a capital letter). +# Default value: 'AP' +titleCaseStyle = 'AP' + +# When enabled, creates URL of the form /filename.html instead of /filename/. +# Default value: false +uglyURLs = false + +# Watch filesystem for changes and recreate as needed. +# Default value: false +watch = true diff --git a/guide/config/_default/config.toml.example b/guide/config/_default/config.toml.example new file mode 100644 index 0000000..954cbc1 --- /dev/null +++ b/guide/config/_default/config.toml.example @@ -0,0 +1,227 @@ +# https://gohugo.io/getting-started/configuration/ + +# The directory where Hugo finds archetype files (content templates). +# Default value: 'archetypes' +archetypeDir = 'archetypes' + +# The directory where Hugo finds asset files used in Hugo Pipes. +# Default value: 'assets' +assetDir = 'assets' + +# Hostname (and path) to the root. +baseURL = 'https://docs.builder-toolkit.partner.aws.dev/docs-abp-project-type' + +# Include drafts when building. +# Default value: false +buildDrafts = true + +# Include content already expired. +# Default value: false +buildExpired = false + +# Include content with publishdate in the future. +# Default value: false +buildFuture = true + +# Enable to turn relative URLs into absolute. +# Default value: false +# Relearn theme: Must be enabled when serving from a subfolder. +# https://mcshelby.github.io/hugo-theme-relearn/basics/configuration/index.html#serving-your-page-from-a-subfolder +canonifyURLs = true + +# The directory from where Hugo reads content files. +# Default value: 'content' +contentDir = 'content' + +# Copyright notice for your site, typically displayed in the footer. +# Default value: '' +copyright = '© {{YEAR}}, Amazon Web Services, Inc. or its affiliates. All rights reserved.' + +# The directory from where Hugo reads data files. +# Default value: 'data' +dataDir = 'data' + +# Content without language indicator will default to this language. +# Default value: 'en' +defaultContentLanguage = 'en' + +# Render the default content language in subdir, e.g. content/en/. The site root / will then redirect to /en/. +# Default value: false +defaultContentLanguageInSubdir = true + +# Will disable generation of alias redirects. Note that even if disableAliases is set, the aliases themselves are +# preserved on the page. The motivation with this is to be able to generate 301 redirects in an .htaccess, a Netlify +# _redirects file or similar using a custom output format. +# Default value: false +disableAliases = false + +# Hugo will, by default, inject a generator meta tag in the HTML head on the home page only. You can turn it off, but +# we would really appreciate if you don't, as this is a good way to watch Hugo's popularity on the rise. +# Default value: false +disableHugoGeneratorInject = false + +# Enable disabling of all pages of the specified Kinds. Allowed values in this list: "page", "home", "section", +# "taxonomy", "term", "RSS", "sitemap", "robotsTXT", "404". +# Default value: [] +disableKinds = [] + +# You can disable one or more languages. This can be useful when working on a new translation. +# Default value: [] +# Example: ['fr', 'ja'] +disableLanguages = [] + +# Disable automatic live reloading of browser window. +# Default value: false +disableLiveReload = false + +# Do not convert the url/path to lowercase. +# Default value: false +disablePathToLower = false + +# Enable Emoji emoticons support for page content; see the Emoji Cheat Sheet. +# https://www.webpagefx.com/tools/emoji-cheat-sheet/ +# Default value: false +enableEmoji = true + +# Enable .GitInfo object for each page (if the Hugo site is versioned by Git). This will then update the lastmod +# parameter for each page using the last git commit date for that content file. +# Default value: false +# enableGitInfo = true + +# Enable inline shortcode support. See Inline Shortcodes. +# https://gohugo.io/templates/shortcode-templates/#inline-shortcodes +enableInlineShortcodes = true + +# Show a placeholder instead of the default value or an empty string if a translation is missing. +# Default value: false +enableMissingTranslationPlaceholders = false + +# Enable generation of robots.txt file. +# Default value: false +enableRobotsTXT = true + +# Prefix for footnote anchors. +# Default value: '' +footnoteAnchorPrefix = '' + +# Text to display for footnote return links. +# Default value: '' +footnoteReturnLinkContents = '' + +# Google Analytics tracking ID. +# Default value: '' +googleAnalytics = '' + +# If true, auto-detect Chinese/Japanese/Korean Languages in the content. This will make .Summary and .WordCount behave +# correctly for CJK languages. +# Default value: false +hasCJKLanguage = false + +# A language tag as defined by RFC 5646. The internal RSS template populates its element with this value. +# The value is not used elsewhere. +# Default value: '' +languageCode = 'en-us' + +# The editor to use when creating new content. +# Default value: '' +newContentEditor = '' + +# Don't sync permission mode of files. +# noChmod + +# Don't sync modification time of files. +# noTimes + +# Default number of elements per page in pagination. +# Default value: 10 +paginate = 10 + +# The path element used during pagination (https://example.com/page/2). +# Default value: 'page' +paginatePath = 'page' + +# Pluralize titles in lists. +# Default value: true +pluralizeListTitles = false + +# The directory to where Hugo will write the final static site (the HTML files etc.). +# Default value: 'public' +# ABP Docs: Don't change this value or it will break the functional tests and publishing automation. +publishDir = 'public' + +# Enable this to make all relative URLs relative to content root. Note that this does not affect absolute URLs. +# Default value: false +# Relearn theme: Must be enabled when serving from a subfolder. +# https://mcshelby.github.io/hugo-theme-relearn/basics/configuration/index.html#serving-your-page-from-a-subfolder +relativeURLs = true + +# When using ref or relref to resolve page links and a link cannot resolved, it will be logged with this log level. +# Valid values are ERROR (default) or WARNING. Any ERROR will fail the build (exit -1). +# Default value: 'ERROR' +# refLinksErrorLevel 'ERROR' + +# URL to be used as a placeholder when a page reference cannot be found in ref or relref. Is used as-is. +# refLinksNotFoundURL + +# Removes non-spacing marks from composite characters in content paths. +# Example: content/post/hügó.md --> https://example.org/post/hugo/ +# Default value: false +removePathAccents = false + +# Undocumented +resourceDir = 'resources' + +# Maximum number of items in the RSS feed. +# Default value: -1 +rssLimit = -1 + +# Section Menu for Lazy Bloggers +# This will create a menu with all the sections as menu items and all the sections' pages as “shadow-members”. The +# shadow implies that the pages isn't represented by a menu-item themselves, but this enables you to create a top-level +# menu. +# Setting to 'main' will enable unless configured otherwise. +# https://gohugo.io/templates/menu-templates/#section-menu-for-lazy-bloggers +# Default value: '' +sectionPagesMenu = 'main' + +# The length of text in words to show in a .Summary. +# Default value: 70 +summaryLength = 70 + +# The name of the theme to import. +# ABP Docs: Hugo modules implementation for importing the Relearn theme. +theme = ['github.com/McShelby/hugo-theme-relearn'] + +# The directory where Hugo reads the themes from. +# Default value: 'themes' +# ABP Docs: Not used since theme is imported via Hugo modules. +themesDir = 'themes' + +# Timeout for generating page contents, specified as a duration or in milliseconds. Note: this is used to bail out of +# recursive content generation. You might need to raise this limit if your pages are slow to generate (e.g., because +# they require large image processing or depend on remote contents). +# Default value: '30s' +timeout = '30s' + +# The time zone (or location), e.g. Europe/Oslo, used to parse front matter dates without such information and in the +# time function. The list of valid values may be system dependent, but should include UTC, Local, and any location in +# the IANA Time Zone database. +# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +timeZone = 'UTC' + +# Site title. +title = "" + +# Set titleCaseStyle to specify the title style used by the title template function and the automatic section titles in +# Hugo. It defaults to AP Stylebook for title casing, but you can also set it to Chicago or Go (every word starts with +# a capital letter). +# Default value: 'AP' +titleCaseStyle = 'AP' + +# When enabled, creates URL of the form /filename.html instead of /filename/. +# Default value: false +uglyURLs = false + +# Watch filesystem for changes and recreate as needed. +# Default value: false +watch = true diff --git a/guide/config/_default/languages.toml.example b/guide/config/_default/languages.toml.example new file mode 100644 index 0000000..bec96da --- /dev/null +++ b/guide/config/_default/languages.toml.example @@ -0,0 +1,15 @@ +[en] +title = "" +weight = 1 +languageName = "English" +landingPageName = " Home" + +[[en.menu.shortcuts]] +name = ' Categories' +url = '/categories' +weight = 1 + +[[en.menu.shortcuts]] +name = ' Tags' +url = '/tags' +weight = 2 diff --git a/guide/config/_default/markup.toml b/guide/config/_default/markup.toml new file mode 100644 index 0000000..d6faf0e --- /dev/null +++ b/guide/config/_default/markup.toml @@ -0,0 +1,145 @@ +# https://gohugo.io/getting-started/configuration-markup + +defaultMarkdownHandler = 'goldmark' + +[asciidocExt] +# https://gohugo.io/content-management/formats/#external-helper-asciidoc + +# Don't change this unless you know what you are doing. +backend = 'html5' + +# Currently, the only document type supported in Hugo is article. +doctype = 'article' + +# Possible extensions are asciidoctor-html5s, asciidoctor-bibtex, asciidoctor-diagram, asciidoctor-interdoc-reftext, +# asciidoctor-katex, asciidoctor-latex, asciidoctor-mathematical, asciidoctor-question, asciidoctor-rouge. +extensions = [] + +# The minimum logging level that triggers a non-zero exit code (failure). +failureLevel = 'fatal' + +# Output an embeddable document, which excludes the header, the footer, and everything outside the body of the +# document. Don't change this unless you know what you are doing. +noHeaderOrFooter = true + +# By default, Hugo removes the table of contents generated by Asciidoctor and provides it through the built-in variable +# .TableOfContents to enable further customization and better integration with the various Hugo themes. This option can +# be set to true to preserve Asciidoctor's TOC in the generated page. +preserveTOC = false + +# Safe mode level unsafe, safe, server or secure. Don't change this unless you know what you are doing. +safeMode = 'unsafe' + +# Auto-number section titles. +sectionNumbers = false + +# Include backtrace information on errors. +trace = true + +# Verbosely print processing information and configuration file checks to stderr. +verbose = true + +# Sets the working directory to be the same as that of the AsciiDoc file being processed, so that include will work +# with relative paths. This setting uses the asciidoctor cli parameter --base-dir and attribute outdir=. For rendering +# diagrams with asciidoctor-diagram, workingFolderCurrent must be set to true. +workingFolderCurrent = false + +[asciidocExt.attributes] +# https://gohugo.io/content-management/formats/#external-helper-asciidoctor +# Variables to be referenced in your AsciiDoc file. This is a list of variable name/value maps. See Asciidoctor's +# attributes. +# Reference: https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/#attributes-and-substitutions + +toc = true + +# NOTE: Use hugo's built-in chroma code syntax highlighter via shortcode instead, because it's much faster and requires +# less overhead and technical debt. +# highlightjsdir = 'hljs' +# source-highlighter = 'highlight.js' + +[goldmark.renderer] + +# By default, Goldmark does not render raw HTMLs and potentially dangerous links. If you have lots of inline HTML +# and/or JavaScript, you may need to turn this on. +unsafe = false + +[highlight] +# https://gohugo.io/getting-started/configuration-markup/#highlight +# https://gohugo.io/functions/highlight/#options + +# Render each line number as an HTML anchor element, and set the id attribute of the surrounding to the line +# number. Irrelevant if lineNos is false. +# Default value: false +anchorLineNos = false + +# Default value: true +codeFences = true + +# If the LANG parameter is blank or an unrecognized language, auto-detect the language if possible, otherwise use a +# fallback language. +# Default value: false +guessSyntax = false + +# Render the highlighted code without a wrapping container. +# Default value: false +hl_inline = false + +# A space-separated list of lines to emphasize within the highlighted code. To emphasize lines 2, 3, 4, and 7, set this +# value to 2-4 7. This option is independent of the lineNoStart option. +# This setting is intended to be configured at the shortcode-level. +# Default value: '' +hl_Lines = '' + +# When rendering a line number as an HTML anchor element, prepend this value to the id attribute of the surrounding +# . This provides unique id attributes when a page contains two or more code blocks. Irrelevant if lineNos or +# anchorLineNos is false. +# This setting is intended to be configured at the shortcode-level. +# Default value: '' +lineAnchors = '' + +# Display a number at the beginning of each line. +# Default value: false +lineNos = false + +# The number to display at the beginning of the first line. Irrelevant if lineNos is false. +# This setting is intended to be configured at the shortcode-level. +# Default value: 1 +lineNoStart = 1 + +# Render the highlighted code in an HTML table with two cells. The left table cell contains the line numbers. The right +# table cell contains the code, allowing a user to select and copy the code without line numbers. Irrelevant if lineNos +# is false. +# Default value: true +lineNumbersInTable = false + +# Use inline CSS styles instead of an external CSS file. To use an external CSS file, set this value to false and +# generate the file with the hugo client. +# https://gohugo.io/commands/hugo_gen_chromastyles +# If you run with markup.highlight.noClasses=false in your site config, you need a style sheet. +# You can generate one with Hugo: +# hugo gen chromastyles --style=monokai > syntax.css +# ABP Docs: Exported chroma styles are imported with theme to support mode-level themes. +# Default value: true +noClasses = false + +# Default value: false +noHl = false + +# The CSS styles to apply to the highlighted code. See the style gallery for examples. Case-sensitive. +# https://xyproto.github.io/splash/docs/ +# Default value: 'monokai' +style = 'solarized-dark' + +# Substitute this number of spaces for each tab character in your highlighted code. Irrelevant if noClasses is false. +# Default value: 4 +tabWidth = 2 + +[tableOfContents] +# The heading level, inclusive, to stop render the table of contents. +endLevel = 3 + +# Whether or not to generate an ordered list instead of an unordered list. +ordered = false + +# The heading level, values starting at 1 (h1), to start render the table of contents. +startLevel = 2 diff --git a/guide/config/_default/menu.toml b/guide/config/_default/menu.toml new file mode 100644 index 0000000..7f85b97 --- /dev/null +++ b/guide/config/_default/menu.toml @@ -0,0 +1,9 @@ +[[shortcuts]] +name = ' Categories' +url = '/categories' +weight = 1 + +[[shortcuts]] +name = ' Tags' +url = '/tags' +weight = 2 diff --git a/guide/config/_default/minify.toml b/guide/config/_default/minify.toml new file mode 100644 index 0000000..06614ea --- /dev/null +++ b/guide/config/_default/minify.toml @@ -0,0 +1,38 @@ +# https://gohugo.io/getting-started/configuration/?search-input=languageCode#configure-minify + +disableCSS = false +disableHTML = true +disableJS = false +disableJSON = false +disableSVG = false +disableXML = false +minifyOutput = false + +[tdewolff] + +[tdewolff.css] +keepCSS2 = true +precision = 0 + +[tdewolff.html] +keepComments = false +keepConditionalComments = true +keepDefaultAttrVals = true +keepDocumentTags = true +keepEndTags = true +keepQuotes = false +keepWhitespace = true + +[tdewolff.js] +keepVarNames = false +precision = 0 + +[tdewolff.json] +keepNumbers = false +precision = 0 + +[tdewolff.svg] +precision = 0 + +[tdewolff.xml] +keepWhitespace = false diff --git a/guide/config/_default/module.toml b/guide/config/_default/module.toml new file mode 100644 index 0000000..e9b694d --- /dev/null +++ b/guide/config/_default/module.toml @@ -0,0 +1,54 @@ +# https://gohugo.io/hugo-modules/configuration/ + +# A optional Glob pattern matching module paths to skip when vendoring, e.g. “github.com/**” +# noVendor = '' + +# When enabled, we will pick the vendored module closest to the module using it. The default behaviour is to pick the +# first. Note that there can still be only one dependency of a given module path, so once it is in use it cannot be +# redefined. +# vendorClosest = false + +# Defines the proxy server to use to download remote modules. Default is direct, which means “git clone” and similar. +# proxy = 'direct' +proxy = 'direct' + +# Comma separated glob list matching paths that should not use the proxy configured above. +# noProxy = 'none' + +# Comma separated glob list matching paths that should be treated as private. +# private = '*.*' + +# A comma separated (or a slice) list of module path to directory replacement mapping, +# e.g. "github.com/bep/myprettytheme -> ../..,github.com/bep/shortcodes -> /some/path". This is mostly useful for +# temporary locally development of a module, and then it makes sense to set it as an OS environment variable, +# e.g: env HUGO_MODULE_REPLACEMENTS="github.com/bep/myprettytheme -> ../..". Any relative path relates to themesDir, +# and absolute paths are allowed. +# replacements = '' + +[hugoVersion] +# Whether the extended version of Hugo is required. +extended = false + +# The maximum Hugo version supported +# max = '' + +# The minimum Hugo version supported. +min = '0.111.3' + +[[imports]] +# Set to true to disable the module while keeping any version info in the go.* files. +# disable = false + +# If enabled, any module configuration file, e.g. config.toml, will not be loaded. Note that this will also stop the +# loading of any transitive module dependencies. +# ignoreConfig = false + +# If enabled, module imports will not be followed. +# ignoreImports = false + +# Do not mount any folder in this import. +# noMounts = false + +# Can be either a valid Go Module module path, e.g. github.com/gohugoio/myShortcodes, or the directory name for the +# module as stored in your themes folder. +path = 'github.com/McShelby/hugo-theme-relearn' diff --git a/guide/config/_default/outputs.toml b/guide/config/_default/outputs.toml new file mode 100644 index 0000000..edd9154 --- /dev/null +++ b/guide/config/_default/outputs.toml @@ -0,0 +1,11 @@ +# Relearn theme: Must be set to the following to activate search +# https://mcshelby.github.io/hugo-theme-relearn/basics/configuration/index.html#activate-search +home = [ + "HTML", + "PRINT", + "RSS", + "SEARCH", + "SEARCHPAGE", +] +section = ["HTML", "RSS", "PRINT"] +page = ["HTML", "RSS", "PRINT"] diff --git a/guide/config/_default/params.toml b/guide/config/_default/params.toml new file mode 100644 index 0000000..6cdb222 --- /dev/null +++ b/guide/config/_default/params.toml @@ -0,0 +1,129 @@ +# This controls whether submenus will be expanded (true), or collapsed (false) in the +# menu; if no setting is given, the first menu level is set to false, all others to true; +# this can be overridden in the pages frontmatter +alwaysopen = true + +# Prefix URL to edit current page. Will display an "Edit" button on top right hand corner of every page. +# Useful to give opportunity to people to create merge request for your doc. +# See the config.toml file from this documentation site to have an example. +editURL = '' + +# Author of the site, will be used in meta information +# Note: Override this value in the production config +author = 'The AWS Integration & Automation team' + +# Description of the site, will be used in meta information +# Note: Override this value in the production config +description = 'AWS Builder Platform documentation' + +# Shows a checkmark for visited pages on the menu. +showVisitedLinks = false + +# Disable search function. It will hide the search bar. +disableSearch = false + +# Disable search in hidden pages, otherwise they will be shown in search box. +disableSearchHiddenPages = true + +# Disables hidden pages from showing up in the sitemap and on Google (et all), otherwise they may be indexed by search +# engines. +disableSeoHiddenPages = true + +# Disables hidden pages from showing up on the tags page although the tag term will be displayed even if all pages are +# hidden. +disableTagHiddenPages = true + +# Javascript and CSS cache are automatically busted when new version of site is generated. +# Set this to true to disable this behavior (some proxies don't handle this optimization well) +disableAssetsBusting = false + +# Set this to true if you want to disable generation for generator version meta tags of hugo and the theme; +# don't forget to also set Hugo's disableHugoGeneratorInject=true, otherwise it will generate a meta tag into your home +# page. +disableGeneratorVersion = false + +# Set this to true to disable copy-to-clipboard button for inline code. +disableInlineCopyToClipBoard = false + +# A title for shortcuts in menu is set by default. Set this to true to disable it. +disableShortcutsTitle = false + +# If set to false, a Home button will appear below the search bar on the menu. +# It is redirecting to the landing page of the current language if specified. (Default is "/") +disableLandingPageButton = true + +# When using mulitlingual website, disable the switch language button. +disableLanguageSwitchingButton = false + +# Hide breadcrumbs in the header and only show the current page title +disableBreadcrumb = false + +# If set to true, hide table of contents menu in the header of all pages +disableToc = false + +# If set to false, load the MathJax module on every page regardless if a MathJax shortcode is present +disableMathJax = true + +# Specifies the remote location of the MathJax js +customMathJaxURL = "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" + +# Initialization parameter for MathJax, see MathJax documentation +mathJaxInitialize = "{}" + +# If set to false, load the Mermaid module on every page regardless if a Mermaid shortcode or Mermaid codefence is +# present. +disableMermaid = true + +# Specifies the remote location of the Mermaid js +customMermaidURL = "https://unpkg.com/mermaid/dist/mermaid.min.js" + +# Initialization parameter for Mermaid, see Mermaid documentation +mermaidInitialize = "{ \"theme\": \"default\" }" + +# If set to false, load the Swagger module on every page regardless if a Swagger shortcode is present +disableSwagger = true + +# Specifies the remote location of the RapiDoc js +customSwaggerURL = "https://unpkg.com/rapidoc/dist/rapidoc-min.js" + +# Initialization parameter for Swagger, see RapiDoc documentation +swaggerInitialize = "{ \"theme\": \"light\" }" + +# Hide Next and Previous page buttons normally displayed full height beside content +disableNextPrev = false + +# Order sections in menu by "weight" or "title". Default to "weight"; +# this can be overridden in the pages frontmatter +ordersectionsby = "weight" + +# Change default color scheme with a variant one (eg: can be "auto", "red", "blue", "green" or an array like [ "blue", +# "green" ]). +# Default value: 'auto' +themeVariant = ['light-theme', 'dark-theme'] + +# The first element is the variant for light mode, the second for dark mode. +themeVariantAuto = ['light-theme', 'dark-theme'] + +# Change the title separator. Default to '::'. +titleSeparator = '::' + +# If set to true, the menu in the sidebar will be displayed in a collapsible tree view. Although the functionality +# works with old browsers (IE11), the display of the expander icons is limited to modern browsers +collapsibleMenu = true + +# If a single page can contain content in multiple languages, add those here +additionalContentLanguage = ['en'] + +# If set to true, no index.html will be appended to prettyURLs; this will cause pages not +# to be servable from the file system +disableExplicitIndexURLs = false + +# For external links you can define how they are opened in your browser; this setting will only be applied to the +# content area but not the shortcut menu. +externalLinkTarget = '_blank' + +######### +# Custom +######### +# Used for both the logo at the top of the sidebar as well as the favicon through partials. +logoPath = '/images/logo.svg' diff --git a/guide/config/_default/privacy.toml b/guide/config/_default/privacy.toml new file mode 100644 index 0000000..4732c09 --- /dev/null +++ b/guide/config/_default/privacy.toml @@ -0,0 +1,58 @@ +# https://gohugo.io/about/hugo-and-gdpr/ + +[disqus] +disable = true + +[googleAnalytics] +disable = true + +# Enabling this will make it so the users' IP addresses are anonymized within Google Analytics. +anonymizeIP = true + +# Enabling this will make the GA templates respect the “Do Not Track” HTTP header. +respectDoNotTrack = true + +# Enabling this will disable the use of Cookies and use Session Storage to Store the GA Client ID. +useSessionStorage = true + +[instagram] +disable = true + +# If simple mode is enabled, a static and no-JS version of the Instagram image card will be built. Note that this only +# supports image cards and the image itself will be fetched from Instagram's servers. +simple = true + +# If you use the simple mode for Instagram and a site styled with Bootstrap 4, you may want to disable the inline +# styles provided by Hugo. +disableInlineCSS = true + +[twitter] +disable = true + +# Enabling this for the twitter/tweet shortcode, the tweet and its embedded page on your site are not used for purposes +# that include personalized suggestions and personalized ads. +enableDNT = true + +# If simple mode is enabled, a static and no-JS version of a tweet will be built. +simple = true + +# If you use the simple mode for Twitter, you may want to disable the inlines styles provided by Hugo. +disableInlineCSS = true + +[vimeo] +disable = true + +# Enabling this for the vimeo shortcode, the Vimeo player will be blocked from tracking any session data, including all +# cookies and stats. +enableDNT = false + +# If simple mode is enabled, the video thumbnail is fetched from Vimeo's servers and it is overlayed with a play +# button. If the user clicks to play the video, it will open in a new tab directly on Vimeo's website. +simple = false + +[youtube] +disable = true + +# When you turn on privacy-enhanced mode, YouTube won't store information about visitors on your website unless the +# user plays the embedded video. +privacyEnhanced = true diff --git a/guide/config/_default/security.toml b/guide/config/_default/security.toml new file mode 100644 index 0000000..27d304a --- /dev/null +++ b/guide/config/_default/security.toml @@ -0,0 +1,15 @@ +# https://gohugo.io/about/security-model/#security-policy +# https://stackoverflow.com/questions/71058236/hugo-with-asciidoctor + +enableInlineShortcodes = false + +[exec] +allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$', '^asciidoctor$'] +osEnv = ['(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM|GO\w+|RUBYLIB)$'] + +[funcs] +getenv = ['^HUGO_', '^CI$'] + +[http] +methods = ['(?i)GET|POST'] +urls = ['.*'] diff --git a/guide/config/production/config.toml b/guide/config/production/config.toml new file mode 100644 index 0000000..19c1a62 --- /dev/null +++ b/guide/config/production/config.toml @@ -0,0 +1,3 @@ +buildDrafts = false +buildExpired = false +buildFuture = false diff --git a/guide/config/production/minify.toml b/guide/config/production/minify.toml new file mode 100644 index 0000000..9dfce10 --- /dev/null +++ b/guide/config/production/minify.toml @@ -0,0 +1 @@ +minifyOutput = true diff --git a/guide/content/.gitkeep b/guide/content/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/guide/content/.gitkeep copy b/guide/content/.gitkeep copy new file mode 100644 index 0000000..e69de29 diff --git a/guide/content/_index.md b/guide/content/_index.md new file mode 100644 index 0000000..8fe9435 --- /dev/null +++ b/guide/content/_index.md @@ -0,0 +1,13 @@ +--- +weight: 1 +title: +description: +--- + +# Project Title + +The purpose of this document is to walk you through the process of . This document is intended for Customers who are using the AWS Built In program(ABI) and in process of building an ABI project. + +The AWS Built-in program is a differentiation program that validates Partner solutions which have automated their solution integrations with relevant AWS foundational services like identity, management, security and operations. This program helps customers find and deploy a validated Partner solution that addresses specific customer use cases while providing deep visibility and control of AWS native service integration. + +Choose [Overview](/overview/index.html) to get started. diff --git a/guide/content/additional-resources.md b/guide/content/additional-resources.md new file mode 100644 index 0000000..7a70162 --- /dev/null +++ b/guide/content/additional-resources.md @@ -0,0 +1,25 @@ +--- +weight: 11 +title: Additional Resources +description: Additional Resources +--- + +## Partner documentation + +* Reference-1 +* Reference-2 + +## AWS Services + +* Reference-1 +* Reference-2 + +## Frequently asked questions (FAQs) + +## Other documentation + +* [AWS Security Reference Architecture (AWS SRA)](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/welcome.html) +* [Code repository for AWS SRA examples](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/code-repo.html) + + +**Next:** Choose [Troubleshooting](/troubleshooting/index.html). \ No newline at end of file diff --git a/guide/content/architecture.md b/guide/content/architecture.md new file mode 100644 index 0000000..7c15752 --- /dev/null +++ b/guide/content/architecture.md @@ -0,0 +1,26 @@ +--- +weight: 5 +title: Architecture +description: Solution architecture. +--- + +Deploying this ABI package with default parameters builds the following architecture. + +![Architecture diagram](/images/architecture.png) + +As shown in the diagram, the Quick Start sets up the following: + +* In all current and AWS accounts in your AWS organization: + * to and . + * to perform and . + +* In the management account: + * to perform and . + +* In the log archive account: + * to perform and . + +* In the security tooling account: + * to perform and . + +**Next:** Choose [Deployment Options](/deployment-options/index.html) to get started. \ No newline at end of file diff --git a/guide/content/cleanup-instructions.md b/guide/content/cleanup-instructions.md new file mode 100644 index 0000000..d7d4d22 --- /dev/null +++ b/guide/content/cleanup-instructions.md @@ -0,0 +1,8 @@ +--- +weight: 99 +title: Cleanup Instructions +description: Instructions to cleanup the resources created by the ABI package +--- +## Cleanup Instructions + +![Under Construction](/images/under_construction.jpeg) diff --git a/guide/content/costandlicenses.md b/guide/content/costandlicenses.md new file mode 100644 index 0000000..e06f49a --- /dev/null +++ b/guide/content/costandlicenses.md @@ -0,0 +1,17 @@ +--- +weight: 4 +title: Cost and licenses +description: Cost of the solution and licenses required. +--- + + + + + + + + + + + +**Next:** Choose [Architecture](/architecture/index.html) to get started. diff --git a/guide/content/deployment-options.md b/guide/content/deployment-options.md new file mode 100644 index 0000000..428bb60 --- /dev/null +++ b/guide/content/deployment-options.md @@ -0,0 +1,22 @@ +--- +weight: 6 +title: Deployment Options +description: +--- + +This ABI package provides one deployment option: + +* [Deploy [[Partner Name-Product Name]] for AWS Organizations](quick-link) + +This option builds <>. + + +#### Deployment options supported by this ABI package + +Following are the deployment options supported by this ABI package: + +* Launch the [CloudFormation Template in the Management Account](/launch-using-cloudformation/index.html). +* Launch using [Customizations for Control Tower (CfCT)](/launch-using-cfct/index.html). + + +**Next:** Choose [Pre Deployment Steps](/pre-deployment-steps/index.html) to get started. \ No newline at end of file diff --git a/guide/content/deployment-steps.md b/guide/content/deployment-steps.md new file mode 100644 index 0000000..7ccc3fc --- /dev/null +++ b/guide/content/deployment-steps.md @@ -0,0 +1,63 @@ +--- +weight: 8 +title: Deployment steps +description: Deployment steps +--- + + +## Launch the CloudFormation Template in the Management Account + + +1. Download the cloudformation template from source: https:// +2. Launch CloudFormation template in your AWS Control Tower home region. + * Stack name: `template--enable-integrations` + * List Parameters with [call out default values and update below example as needed] + * **EnableIntegrationsStackName**: `template--enable-integrations` + * **EnableIntegrationsStackRegion**: `us-east-1` + * **EnableIntegrationsStackSetAdminRoleName**: `AWSCloudFormationStackSetAdministrationRole` + * **EnableIntegrationsStackSetExecutionRoleName**: `AWSCloudFormationStackSetExecutionRole` + * **EnableIntegrationsStackSetExecutionRoleArn**: `arn:aws:iam:::role/AWSCloudFormationStackSetExecutionRole` + +3. Choose both the **Capabilities** and select **Submit** to launch the stack. + + [] I acknowledge that AWS CloudFormation might create IAM resources with custom names. + + [] I acknowledge that AWS CloudFormation might require the following capability: CAPABILITY_AUTO_EXPAND + +Wait for the CloudFormation status to change to `CREATE_COMPLETE` state. + + +## Launch using Customizations for Control Tower (CfCT) + + +[Customizations for AWS Control Tower](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/) combines AWS Control Tower and other highly-available, trusted AWS services to help customers more quickly set up a secure, multi-account AWS environment using AWS best practices. You can easily add customizations to your AWS Control Tower landing zone using an AWS CloudFormation template and service control policies (SCPs). You can deploy the custom template and policies to individual accounts and organizational units (OUs) within your organization. It also integrates with AWS Control Tower lifecycle events to ensure that resource deployments stay in sync with your landing zone. For example, when a new account is created using the AWS Control Tower account factory, Customizations for AWS Control Tower ensures that all resources attached to the account's OUs will be automatically deployed. + +The templates provided as part of the ABI packages are deployable using Customizations for Control Tower. Please check below for additional details. + +#### Pre-requisites + +1. The CfCT solution, do not have ability to launch resources on the Management account. Hence, you need to create the role with required permissions in the Management account. + +#### How it works + +To deploy this sample partner integration page using CfCT solution, add the following blurb to the `manifest.yaml` file from your CfCT solution and update the account/ou names as needed. + +``` +resources: + - name: sra-enable-partner1-solution + resource_file: https://aws-abi-pilot.s3.us-east-1.amazonaws.com/cfn-abi-aws-reference-guide/templates/abi-enable-partner1-securityhub-integration.yaml + deploy_method: stack_set + parameters: + - parameter_key: pProductArn + parameter_value: arn:aws:securityhub:us-east-1::product/cloud-custodian/cloud-custodian + - parameter_key: pSRASourceS3BucketName + parameter_value: aws-abi-pilot + - parameter_key: pSRAStagingS3KeyPrefix + parameter_value: cfn-abi-aws-reference-guide + deployment_targets: + accounts: + - [[MANAGEMENT-AWS-ACCOUNT-ID]] +``` + + +**Next:** Choose [Postdeployment Options](/post-deployment-steps/index.html) to get started. \ No newline at end of file diff --git a/guide/content/faqs.md b/guide/content/faqs.md new file mode 100644 index 0000000..0e7df70 --- /dev/null +++ b/guide/content/faqs.md @@ -0,0 +1,14 @@ +--- +weight: 100 +title: FAQs +description: Frequently asked questions +--- + +## Can I contribute to this repository? + +Yes, this shared under Apache License, version 2.0 (the "License"). Please submit a GitHub issue if you see an issues or improvements. If you like to build and contribute a fix or enhancement, please submit a GitHub pull request with your changes. + +All pull requests will go through auto validations and human reviews before it is merged. + + + diff --git a/guide/content/feedback.md b/guide/content/feedback.md new file mode 100644 index 0000000..96d9b3d --- /dev/null +++ b/guide/content/feedback.md @@ -0,0 +1,16 @@ +--- +weight: 13 +title: Feedback +description: Feedback +--- + +To submit feature ideas and report bugs, use the Issues section of the [GitHub repository](https://public-github-repository-link) for this Quick Start. To submit code, refer to the [Quick Start Contributor’s Guide](https://link-to-reference-guide). To submit feedback on this deployment guide, use the following GitHub links: + +* [Grammar or spelling](https-link) +* [Broken link](https-link) +* [Inaccurate content](https-link) +* [Display or design issues](https-link) + + + +**Next:** Choose [Notices](/notices/index.html). \ No newline at end of file diff --git a/guide/content/images/under_construction.jpeg b/guide/content/images/under_construction.jpeg new file mode 100644 index 0000000..9bddb28 Binary files /dev/null and b/guide/content/images/under_construction.jpeg differ diff --git a/guide/content/notices.md b/guide/content/notices.md new file mode 100644 index 0000000..4966855 --- /dev/null +++ b/guide/content/notices.md @@ -0,0 +1,9 @@ +--- +weight: 14 +title: Notices +description: Notices +--- + +This document is provided for informational purposes only. It represents current AWS product offerings and practices as of the date of issue of this document, which are subject to change without notice. Customers are responsible for making their own independent assessment of the information in this document and any use of AWS products or services, each of which is provided "as is" without warranty of any kind, whether expressed or implied. This document does not create any warranties, representations, contractual commitments, conditions, or assurances from AWS, its affiliates, suppliers, or licensors. The responsibilities and liabilities of AWS to its customers are controlled by AWS agreements, and this document is not part of, nor does it modify, any agreement between AWS and its customers. + +The software included with this paper is licensed under the Apache License, version 2.0 (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the accompanying "license" file. This code is distributed on an "as is" basis, without warranties or conditions of any kind, either expressed or implied. Refer to the License for specific language governing permissions and limitations. diff --git a/guide/content/overview.md b/guide/content/overview.md new file mode 100644 index 0000000..fa8f28a --- /dev/null +++ b/guide/content/overview.md @@ -0,0 +1,19 @@ +--- +weight: 2 +title: Overview +description: +--- + + +This ABI deploys Integrations for AWS Organizations on the AWS Cloud. It’s for and that want to provide across multiple AWS accounts. If you are unfamiliar with AWS Built In, refer to the [AWS Built in](https://aws.amazon.com/builtin). + +Deploying this ABI package does not guarantee an organization’s compliance with any laws, certifications, policies, or other regulations. + + +[Expand solution overview here] + +### AWS Marketplace listing + +[Partner-product-name-in-aws-marketplace](https://aws.amazon.com/marketplace/pp/prodview-) + +**Next:** Choose [Terminologies](/terminologies/index.html) to get started. diff --git a/guide/content/post-deployment-steps.md b/guide/content/post-deployment-steps.md new file mode 100644 index 0000000..476b671 --- /dev/null +++ b/guide/content/post-deployment-steps.md @@ -0,0 +1,14 @@ +--- +weight: 9 +title: PostDeployment Options +description: Post deployment options +--- + +## Verifying the solution functionality + +## Parnter capability 1 + +## Parnter capability 2 + + +**Next:** Choose [Test the Deployment](/test-deployment/index.html) to get started. \ No newline at end of file diff --git a/guide/content/pre-deployment-steps.md b/guide/content/pre-deployment-steps.md new file mode 100644 index 0000000..87d0345 --- /dev/null +++ b/guide/content/pre-deployment-steps.md @@ -0,0 +1,14 @@ +--- +weight: 7 +title: PreDeployment Options +description: Pre Deployment Options +--- + +Before deploying this ABI package, complete the following steps: + +* Subscribe to partner product from AWS Marketplace using +* Any things to be done before deployment +* Any other pre-deployment steps +* Become familiar with the [additional resources](https://link), later in this guide. + +**Next:** Choose **[Deployment Steps](/deployment-steps/index.html)** to get started. \ No newline at end of file diff --git a/guide/content/terminologies.md b/guide/content/terminologies.md new file mode 100644 index 0000000..2bcc22f --- /dev/null +++ b/guide/content/terminologies.md @@ -0,0 +1,12 @@ +--- +weight: 3 +title: Terminologies +description: Terminolgies used in this guide. +--- + +* **ABI :** AWS Built In (ABI) as explained above. +* **ABI Modules :** The GitHub repositories based of AWS SRA, which provide templates for enabling AWS foundational services like CloudTrail, GuardDuty, SecurityHub and more security services. +* **ABI Projects :** The GitHub repositories built by Partners in partnership with AWS. While building these projects, partners leverage ABI Modules provided to enable AWS services as needed before creating partner specific assets. The project contains 1\ IaC templates to automate enablement of both AWS and Partner services, 2\ Wrappers for most common formats like CfCT manifest, SC Baselines and more to allow customers to easily pick and choose from the services available. For Pilot, we will focus only on including CfCT manifest file in the package. +* [[Add more terminologies here]] + +**Next:** Choose [Cost and licenses](/costandlicenses/index.html) to get started. diff --git a/guide/content/test-deployment.md b/guide/content/test-deployment.md new file mode 100644 index 0000000..052c10e --- /dev/null +++ b/guide/content/test-deployment.md @@ -0,0 +1,14 @@ +--- +weight: 10 +title: Test the deployment +description: Test the deployment +--- + +## Step-1 + +## Step-2 + +## Step-3 + + +**Next:** Choose [Additonal Resources](/additional-resources/index.html) to get started. \ No newline at end of file diff --git a/guide/content/troubleshooting.md b/guide/content/troubleshooting.md new file mode 100644 index 0000000..d6813b1 --- /dev/null +++ b/guide/content/troubleshooting.md @@ -0,0 +1,10 @@ +--- +weight: 12 +title: Troubleshooting +description: Troubleshooting +--- + +For troubleshooting common ABI issues, refer to the [AWS Built In General Information Guide](http://link-to-reference-architecture) and [Troubleshooting CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html). + + +**Next:** Choose [Feedback](/feedback/index.html). \ No newline at end of file diff --git a/guide/data/.gitkeep b/guide/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/guide/go.mod b/guide/go.mod new file mode 100644 index 0000000..bbddc88 --- /dev/null +++ b/guide/go.mod @@ -0,0 +1,5 @@ +module github.com/aws-ia/docs-abp-project-type + +go 1.18 + +require github.com/McShelby/hugo-theme-relearn v0.0.0-20230328175520-a3ea10c374cb // indirect diff --git a/guide/go.sum b/guide/go.sum new file mode 100644 index 0000000..5ebbc51 --- /dev/null +++ b/guide/go.sum @@ -0,0 +1,2 @@ +github.com/McShelby/hugo-theme-relearn v0.0.0-20230328175520-a3ea10c374cb h1:Ab7GfqjEq4VrhyjwYO1QeQAGnaGwBu4KSYclCSVsVhQ= +github.com/McShelby/hugo-theme-relearn v0.0.0-20230328175520-a3ea10c374cb/go.mod h1:mKQQdxZNIlLvAj8X3tMq+RzntIJSr9z7XdzuMomt0IM= diff --git a/guide/i18n/en.toml b/guide/i18n/en.toml new file mode 100644 index 0000000..4cc198f --- /dev/null +++ b/guide/i18n/en.toml @@ -0,0 +1,8 @@ +[message-404] +other = """ +

You might have typed the address incorrectly or you might have used an outdated link.

+

Check the link and try again, or:

+""" + +[title-404] +other = "Page not found" diff --git a/guide/layouts/404.html b/guide/layouts/404.html new file mode 100644 index 0000000..020fe6a --- /dev/null +++ b/guide/layouts/404.html @@ -0,0 +1,50 @@ + +{{- partialCached "page-meta.hugo" . .RelPermalink }} +{{- $outputFormat := partial "output-format.hugo" . }} + + + {{- partial "meta.html" . }} + {{- .Scratch.Add "title" "" }} + {{- if eq .Site.Data.titles .Title }} + {{- .Scratch.Set "title" (index .Site.Data.titles .Title).title }} + {{- else }} + {{- .Scratch.Set "title" .Title}} + {{- end }} + {{ .Scratch.Get "title" }} {{ default "::" .Site.Params.titleSeparator }} {{ .Site.Title }} + + {{- partialCached "favicon.html" . }} + {{- partialCached "stylesheet.html" (dict "page" . "outputFormat" $outputFormat) $outputFormat }} + + {{- partial "custom-header.html" . }} + + +

+ +
+
+
+ {{ with resources.Get "images/error_pages_illustration.svg" }} +

+

+ Page not found! +
+

+ {{ end }} +

{{ T "title-404" }}

+

+

{{ T "message-404" | safeHTML }}

+

+

{{ T "Go-to-homepage" }}

+
+
+
+
+ + diff --git a/guide/layouts/partials/archetypes/chapter/article.html b/guide/layouts/partials/archetypes/chapter/article.html new file mode 100644 index 0000000..04c2c2b --- /dev/null +++ b/guide/layouts/partials/archetypes/chapter/article.html @@ -0,0 +1,11 @@ +{{- $page := .page }} +{{- $content := .content }} +{{- with $page }} +
+ {{ partial "heading-pre.html" . }} +

{{ .Title }}

+ {{ partial "heading-post.html" . }} + {{ $content | safeHTML }} +
{{- partial "content-footer.html" . }}
+
+{{- end }} diff --git a/guide/layouts/partials/archetypes/chapter/styleclass.html b/guide/layouts/partials/archetypes/chapter/styleclass.html new file mode 100644 index 0000000..1aecbf5 --- /dev/null +++ b/guide/layouts/partials/archetypes/chapter/styleclass.html @@ -0,0 +1 @@ +chapter default diff --git a/guide/layouts/partials/custom-header.html b/guide/layouts/partials/custom-header.html new file mode 100644 index 0000000..33c4b6e --- /dev/null +++ b/guide/layouts/partials/custom-header.html @@ -0,0 +1,11 @@ +{{- $assetBusting := not .Site.Params.disableAssetsBusting }} +{{/* Custom styling */}} +{{ with resources.Get "css/style.css" | }} + +{{ end }} +{{/* Use highlight.js for code block syntax highlighting of AsciiDoc pages. Themes imported in mode. */}} +{{/* */}} +{{/* */}} diff --git a/guide/layouts/partials/favicon.html b/guide/layouts/partials/favicon.html new file mode 100644 index 0000000..53d54a4 --- /dev/null +++ b/guide/layouts/partials/favicon.html @@ -0,0 +1,5 @@ +{{ with .Site.Params.logoPath }} + {{ with resources.Get . }} + + {{ end }} +{{ end }} diff --git a/guide/layouts/partials/logo.html b/guide/layouts/partials/logo.html new file mode 100644 index 0000000..0366982 --- /dev/null +++ b/guide/layouts/partials/logo.html @@ -0,0 +1,16 @@ +{{ with .Site.Params.logoPath }} + {{ with resources.Get . }} + + {{ end }} +{{ end }} diff --git a/guide/layouts/partials/menu-footer.html b/guide/layouts/partials/menu-footer.html new file mode 100644 index 0000000..a741a7e --- /dev/null +++ b/guide/layouts/partials/menu-footer.html @@ -0,0 +1,24 @@ +
+
+ + +
diff --git a/guide/static/.nojekyll b/guide/static/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/guide/static/css/chroma-github.css b/guide/static/css/chroma-github.css new file mode 100644 index 0000000..9018df9 --- /dev/null +++ b/guide/static/css/chroma-github.css @@ -0,0 +1,86 @@ +/* Background */ .bg { background-color: #ffffff; } +/* PreWrapper */ .chroma { background-color: #ffffff; } +/* Other */ .chroma .x { } +/* Error */ .chroma .err { color: #a61717; background-color: #e3d2d2 } +/* CodeLine */ .chroma .cl { } +/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } +/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } +/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } +/* LineHighlight */ .chroma .hl { background-color: #ffffcc } +/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } +/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } +/* Line */ .chroma .line { display: flex; } +/* Keyword */ .chroma .k { color: #000000; font-weight: bold } +/* KeywordConstant */ .chroma .kc { color: #000000; font-weight: bold } +/* KeywordDeclaration */ .chroma .kd { color: #000000; font-weight: bold } +/* KeywordNamespace */ .chroma .kn { color: #000000; font-weight: bold } +/* KeywordPseudo */ .chroma .kp { color: #000000; font-weight: bold } +/* KeywordReserved */ .chroma .kr { color: #000000; font-weight: bold } +/* KeywordType */ .chroma .kt { color: #445588; font-weight: bold } +/* Name */ .chroma .n { } +/* NameAttribute */ .chroma .na { color: #008080 } +/* NameBuiltin */ .chroma .nb { color: #0086b3 } +/* NameBuiltinPseudo */ .chroma .bp { color: #999999 } +/* NameClass */ .chroma .nc { color: #445588; font-weight: bold } +/* NameConstant */ .chroma .no { color: #008080 } +/* NameDecorator */ .chroma .nd { color: #3c5d5d; font-weight: bold } +/* NameEntity */ .chroma .ni { color: #800080 } +/* NameException */ .chroma .ne { color: #990000; font-weight: bold } +/* NameFunction */ .chroma .nf { color: #990000; font-weight: bold } +/* NameFunctionMagic */ .chroma .fm { } +/* NameLabel */ .chroma .nl { color: #990000; font-weight: bold } +/* NameNamespace */ .chroma .nn { color: #555555 } +/* NameOther */ .chroma .nx { } +/* NameProperty */ .chroma .py { } +/* NameTag */ .chroma .nt { color: #000080 } +/* NameVariable */ .chroma .nv { color: #008080 } +/* NameVariableClass */ .chroma .vc { color: #008080 } +/* NameVariableGlobal */ .chroma .vg { color: #008080 } +/* NameVariableInstance */ .chroma .vi { color: #008080 } +/* NameVariableMagic */ .chroma .vm { } +/* Literal */ .chroma .l { } +/* LiteralDate */ .chroma .ld { } +/* LiteralString */ .chroma .s { color: #dd1144 } +/* LiteralStringAffix */ .chroma .sa { color: #dd1144 } +/* LiteralStringBacktick */ .chroma .sb { color: #dd1144 } +/* LiteralStringChar */ .chroma .sc { color: #dd1144 } +/* LiteralStringDelimiter */ .chroma .dl { color: #dd1144 } +/* LiteralStringDoc */ .chroma .sd { color: #dd1144 } +/* LiteralStringDouble */ .chroma .s2 { color: #dd1144 } +/* LiteralStringEscape */ .chroma .se { color: #dd1144 } +/* LiteralStringHeredoc */ .chroma .sh { color: #dd1144 } +/* LiteralStringInterpol */ .chroma .si { color: #dd1144 } +/* LiteralStringOther */ .chroma .sx { color: #dd1144 } +/* LiteralStringRegex */ .chroma .sr { color: #009926 } +/* LiteralStringSingle */ .chroma .s1 { color: #dd1144 } +/* LiteralStringSymbol */ .chroma .ss { color: #990073 } +/* LiteralNumber */ .chroma .m { color: #009999 } +/* LiteralNumberBin */ .chroma .mb { color: #009999 } +/* LiteralNumberFloat */ .chroma .mf { color: #009999 } +/* LiteralNumberHex */ .chroma .mh { color: #009999 } +/* LiteralNumberInteger */ .chroma .mi { color: #009999 } +/* LiteralNumberIntegerLong */ .chroma .il { color: #009999 } +/* LiteralNumberOct */ .chroma .mo { color: #009999 } +/* Operator */ .chroma .o { color: #000000; font-weight: bold } +/* OperatorWord */ .chroma .ow { color: #000000; font-weight: bold } +/* Punctuation */ .chroma .p { } +/* Comment */ .chroma .c { color: #999988; font-style: italic } +/* CommentHashbang */ .chroma .ch { color: #999988; font-style: italic } +/* CommentMultiline */ .chroma .cm { color: #999988; font-style: italic } +/* CommentSingle */ .chroma .c1 { color: #999988; font-style: italic } +/* CommentSpecial */ .chroma .cs { color: #999999; font-weight: bold; font-style: italic } +/* CommentPreproc */ .chroma .cp { color: #999999; font-weight: bold; font-style: italic } +/* CommentPreprocFile */ .chroma .cpf { color: #999999; font-weight: bold; font-style: italic } +/* Generic */ .chroma .g { } +/* GenericDeleted */ .chroma .gd { color: #000000; background-color: #ffdddd } +/* GenericEmph */ .chroma .ge { color: #000000; font-style: italic } +/* GenericError */ .chroma .gr { color: #aa0000 } +/* GenericHeading */ .chroma .gh { color: #999999 } +/* GenericInserted */ .chroma .gi { color: #000000; background-color: #ddffdd } +/* GenericOutput */ .chroma .go { color: #888888 } +/* GenericPrompt */ .chroma .gp { color: #555555 } +/* GenericStrong */ .chroma .gs { font-weight: bold } +/* GenericSubheading */ .chroma .gu { color: #aaaaaa } +/* GenericTraceback */ .chroma .gt { color: #aa0000 } +/* GenericUnderline */ .chroma .gl { text-decoration: underline } +/* TextWhitespace */ .chroma .w { color: #bbbbbb } diff --git a/guide/static/css/chroma-solarized-dark.css b/guide/static/css/chroma-solarized-dark.css new file mode 100644 index 0000000..d1bfc91 --- /dev/null +++ b/guide/static/css/chroma-solarized-dark.css @@ -0,0 +1,86 @@ +/* Background */ .bg { color: #93a1a1; background-color: #002b36; } +/* PreWrapper */ .chroma { color: #93a1a1; background-color: #002b36; } +/* Other */ .chroma .x { color: #cb4b16 } +/* Error */ .chroma .err { } +/* CodeLine */ .chroma .cl { } +/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } +/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } +/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } +/* LineHighlight */ .chroma .hl { background-color: #ffffcc } +/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #495050 } +/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #495050 } +/* Line */ .chroma .line { display: flex; } +/* Keyword */ .chroma .k { color: #719e07 } +/* KeywordConstant */ .chroma .kc { color: #cb4b16 } +/* KeywordDeclaration */ .chroma .kd { color: #268bd2 } +/* KeywordNamespace */ .chroma .kn { color: #719e07 } +/* KeywordPseudo */ .chroma .kp { color: #719e07 } +/* KeywordReserved */ .chroma .kr { color: #268bd2 } +/* KeywordType */ .chroma .kt { color: #dc322f } +/* Name */ .chroma .n { } +/* NameAttribute */ .chroma .na { } +/* NameBuiltin */ .chroma .nb { color: #b58900 } +/* NameBuiltinPseudo */ .chroma .bp { color: #268bd2 } +/* NameClass */ .chroma .nc { color: #268bd2 } +/* NameConstant */ .chroma .no { color: #cb4b16 } +/* NameDecorator */ .chroma .nd { color: #268bd2 } +/* NameEntity */ .chroma .ni { color: #cb4b16 } +/* NameException */ .chroma .ne { color: #cb4b16 } +/* NameFunction */ .chroma .nf { color: #268bd2 } +/* NameFunctionMagic */ .chroma .fm { } +/* NameLabel */ .chroma .nl { } +/* NameNamespace */ .chroma .nn { } +/* NameOther */ .chroma .nx { } +/* NameProperty */ .chroma .py { } +/* NameTag */ .chroma .nt { color: #268bd2 } +/* NameVariable */ .chroma .nv { color: #268bd2 } +/* NameVariableClass */ .chroma .vc { } +/* NameVariableGlobal */ .chroma .vg { } +/* NameVariableInstance */ .chroma .vi { } +/* NameVariableMagic */ .chroma .vm { } +/* Literal */ .chroma .l { } +/* LiteralDate */ .chroma .ld { } +/* LiteralString */ .chroma .s { color: #2aa198 } +/* LiteralStringAffix */ .chroma .sa { color: #2aa198 } +/* LiteralStringBacktick */ .chroma .sb { color: #586e75 } +/* LiteralStringChar */ .chroma .sc { color: #2aa198 } +/* LiteralStringDelimiter */ .chroma .dl { color: #2aa198 } +/* LiteralStringDoc */ .chroma .sd { } +/* LiteralStringDouble */ .chroma .s2 { color: #2aa198 } +/* LiteralStringEscape */ .chroma .se { color: #cb4b16 } +/* LiteralStringHeredoc */ .chroma .sh { } +/* LiteralStringInterpol */ .chroma .si { color: #2aa198 } +/* LiteralStringOther */ .chroma .sx { color: #2aa198 } +/* LiteralStringRegex */ .chroma .sr { color: #dc322f } +/* LiteralStringSingle */ .chroma .s1 { color: #2aa198 } +/* LiteralStringSymbol */ .chroma .ss { color: #2aa198 } +/* LiteralNumber */ .chroma .m { color: #2aa198 } +/* LiteralNumberBin */ .chroma .mb { color: #2aa198 } +/* LiteralNumberFloat */ .chroma .mf { color: #2aa198 } +/* LiteralNumberHex */ .chroma .mh { color: #2aa198 } +/* LiteralNumberInteger */ .chroma .mi { color: #2aa198 } +/* LiteralNumberIntegerLong */ .chroma .il { color: #2aa198 } +/* LiteralNumberOct */ .chroma .mo { color: #2aa198 } +/* Operator */ .chroma .o { color: #719e07 } +/* OperatorWord */ .chroma .ow { color: #719e07 } +/* Punctuation */ .chroma .p { } +/* Comment */ .chroma .c { color: #586e75 } +/* CommentHashbang */ .chroma .ch { color: #586e75 } +/* CommentMultiline */ .chroma .cm { color: #586e75 } +/* CommentSingle */ .chroma .c1 { color: #586e75 } +/* CommentSpecial */ .chroma .cs { color: #719e07 } +/* CommentPreproc */ .chroma .cp { color: #719e07 } +/* CommentPreprocFile */ .chroma .cpf { color: #719e07 } +/* Generic */ .chroma .g { } +/* GenericDeleted */ .chroma .gd { color: #dc322f } +/* GenericEmph */ .chroma .ge { font-style: italic } +/* GenericError */ .chroma .gr { color: #dc322f; font-weight: bold } +/* GenericHeading */ .chroma .gh { color: #cb4b16 } +/* GenericInserted */ .chroma .gi { color: #719e07 } +/* GenericOutput */ .chroma .go { } +/* GenericPrompt */ .chroma .gp { } +/* GenericStrong */ .chroma .gs { font-weight: bold } +/* GenericSubheading */ .chroma .gu { color: #268bd2 } +/* GenericTraceback */ .chroma .gt { } +/* GenericUnderline */ .chroma .gl { } +/* TextWhitespace */ .chroma .w { } diff --git a/guide/static/css/theme-dark-theme.css b/guide/static/css/theme-dark-theme.css new file mode 100644 index 0000000..b090419 --- /dev/null +++ b/guide/static/css/theme-dark-theme.css @@ -0,0 +1,82 @@ +/* here in this showcase we use our own modified chroma syntax highlightning style; + if you want to use a predefined style instead: + - remove `markup.highlight.noClasses` from your config.toml + - set `markup.highlight.style` to a predefined style name in your config.toml + - remove the following `@import` of the self-defined chroma stylesheet */ +@import 'chroma-solarized-dark.css'; /* For code blocks in Markdown pages */ + +:root { + --BROWSER-theme: dark; /* name of the theme for browser scrollbars of the main section */ + --MERMAID-theme: dark; /* name of the default Mermaid theme for this variant, can be overridden in config.toml */ + --SWAGGER-theme: dark; /* name of the default Swagger theme for this variant, can be overridden in config.toml */ + + --PRIMARY-color: #232f3e; /* brand primary color */ + --SECONDARY-color: #f90; /* brand secondary color */ + --ACCENT-color: #ff0; /* brand accent color, used for search highlights */ + + --MAIN-font: 'Amazon Ember'; + + --MAIN-ANCHOR-color: #44b9d6; /* Color of anchors on titles */ + + --MAIN-ARTICLE-BG-color: #2a2e33; + + --MAIN-BG-color: #16191f; /* Background color of content */ + + --MAIN-LINK-color: #44b9d6; /* Color of links */ + --MAIN-LINK-HOVER-color: #00a1c9; /* Color of hovered links */ + + --MAIN-TEXT-color: #d5dbdb; /* Color of text by default */ + + --MAIN-TITLES-H1-color: #eaeded; /* Color of h1 titles */ + --MAIN-TITLES-TEXT-color: #eaeded; /* Text color of h2-h6 titles and transparent box titles */ + --MAIN-TITLES-TEXT-font: 'Amazon Ember Display'; + + --MENU-HEADER-BG-color: #2a2e33; /* Background color of menu header */ + --MENU-HEADER-BORDER-color: #2a2e33; /* Color of menu header border */ + + --MENU-HOME-LINK-color: #44b9d6; /* Home button color if configured */ + --MENU-HOME-LINK-HOVER-color: #00a1c9; /* Hovered home button color if configured */ + + --MENU-SEARCH-color: #e0e0e0; /* Text and icon color of search box */ + --MENU-SEARCH-BG-color: #2a2e33; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BORDER-color: #879596; /* Border color of search box */ + --MENU-SEARCH-BOX-color: #4d6584; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #4d6584; /* Override search field icons color */ + + --MENU-SECTION-ACTIVE-CATEGORY-color: #232f3e; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #f90; /* Color of background for the active category (only) */ + --MENU-SECTION-ACTIVE-CATEGORY-TEXT-color: #fff; /* Color of pre text when selected */ + --MENU-SECTION-HR-color: #414750; /* Separator color of menu footer */ + + --MENU-SECTIONS-ACTIVE-BG-color: #414750; /* Background color of the active menu section */ + --MENU-SECTIONS-BG-color: #2a2e33; /* Background of the menu; this is NOT just a color value but can be a complete CSS background definition including gradients, etc. */ + --MENU-SECTIONS-TEXT-color: #f90; /*Color of pre text */ + --MENU-SECTIONS-LINK-color: #bababa; /* Link color of menu topics */ + --MENU-SECTIONS-LINK-HOVER-color: #fff; /* Hovered link color of menu topics */ + + --MENU-VISITED-color: #44b9d6; /* Icon color of visited menu topics if configured */ + + --TAG-BG-color: #95a5a6; + + --CODE-font: 'Amazon Ember Mono'; + + --CODE-BLOCK-color: #d5dbdb; /* fallback text color of block code; should be adjusted to your selected chroma style */ + --CODE-BLOCK-BG-color: #002b36; /* fallback background color of block code; should be adjusted to your selected chroma style */ + --CODE-BLOCK-BORDER-color: #2a2e33; /* border color of block code */ + + --CODE-INLINE-color: #d5dbdb; /* text color of inline code */ + --CODE-INLINE-BG-color: #414750; /* background color of inline code */ + --CODE-INLINE-BORDER-color: #414750; /* border color of inline code */ + + --BOX-BG-color: rgba(20, 20, 20, 1); /* Background color of colored boxes */ + --BOX-CAPTION-color: rgba(240, 240, 240, 1); /* Text color of colored box titles */ + --BOX-TEXT-color: #d5dbdb; /* Text color of colored box content */ + --BOX-ORANGE-color: #eb5f07; + --BOX-ORANGE-TEXT-color: #d5dbdb; + --BOX-BLUE-color: #0073bb; + --BOX-BLUE-TEXT-color: #d5dbdb; + --BOX-GREEN-color: #1d8102; + --BOX-GREEN-TEXT-color: #d5dbdb; + --BOX-RED-color: #d13212; + --BOX-RED-TEXT-color: #d5dbdb; +} diff --git a/guide/static/css/theme-light-theme.css b/guide/static/css/theme-light-theme.css new file mode 100644 index 0000000..f277a84 --- /dev/null +++ b/guide/static/css/theme-light-theme.css @@ -0,0 +1,82 @@ +/* here in this showcase we use our own modified chroma syntax highlightning style; + if you want to use a predefined style instead: + - remove `markup.highlight.noClasses` from your config.toml + - set `markup.highlight.style` to a predefined style name in your config.toml + - remove the following `@import` of the self-defined chroma stylesheet */ +@import 'chroma-github.css'; /* For code blocks in Markdown pages */ + +:root { + --BROWSER-theme: light; /* name of the theme for browser scrollbars of the main section */ + --MERMAID-theme: light; /* name of the default Mermaid theme for this variant, can be overridden in config.toml */ + --SWAGGER-theme: light; /* name of the default Swagger theme for this variant, can be overridden in config.toml */ + + --PRIMARY-color: #232f3e; /* Primary brand color */ + --SECONDARY-color: #f90; /* Secondary brand color */ + --ACCENT-color: #ff0; /* Accent brand color, used for search highlights */ + + --MAIN-font: 'Amazon Ember'; + + --MAIN-ANCHOR-color: #44b9d6; /* Color of anchors on titles */ + + --MAIN-ARTICLE-BG-color: #fff; + + --MAIN-BG-color: #f2f3f3; /* Background color of content */ + + --MAIN-LINK-color: #0a4a74; /* Color of links */ + --MAIN-LINK-HOVER-color: #0073bb; /* Color of hovered links */ + + --MAIN-TEXT-color: #16191f; /* Color of text by default */ + + --MAIN-TITLES-H1-color: #16191f; /* Color of h1 titles */ + --MAIN-TITLES-TEXT-color: #16191f; /* Text color of h2-h6 titles and transparent box titles */ + --MAIN-TITLES-TEXT-font: 'Amazon Ember Display'; + + --MENU-HEADER-BG-color: #161e2d; /* Background color of menu header */ + --MENU-HEADER-BORDER-color: #161e2d; /* Color of menu header border */ + + --MENU-HOME-LINK-color: #44b9d6; /* Home button color if configured */ + --MENU-HOME-LINK-HOVER-color: #00a1c9; /* Hovered home button color if configured */ + + --MENU-SEARCH-color: #16191f; /* Text and icon color of search box */ + --MENU-SEARCH-BG-color: #fff; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BORDER-color: #eaeded; /* Border color of search box */ + --MENU-SEARCH-BOX-color: #4d6584; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #4d6584; /* Override search field icons color */ + + --MENU-SECTION-ACTIVE-CATEGORY-color: #16191f; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #f90; /* Color of background for the active category (only) */ + --MENU-SECTION-ACTIVE-CATEGORY-TEXT-color: #fff; /* Color of pre text when selected */ + --MENU-SECTION-HR-color: #545b64; /* Separator color of menu footer */ + + --MENU-SECTIONS-ACTIVE-BG-color: #232f3e; /* Background color of the active section and its childs */ + --MENU-SECTIONS-BG-color: #161e2d; /* Background color of other sections */ + --MENU-SECTIONS-TEXT-color: #f90; /*Color of pre text */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + + --MENU-VISITED-color: #527FFF; /* Color of 'page visited' icons in menu */ + + --TAG-BG-color: #545b64; + + --CODE-font: 'Amazon Ember Mono'; + + --CODE-BLOCK-color: #232f3e; /* fallback text color of block code; should be adjusted to your selected chroma style */ + --CODE-BLOCK-BG-color: #fff; /* fallback background color of block code; should be adjusted to your selected chroma style */ + --CODE-BLOCK-BORDER-color: #eaeded; /* border color of block code */ + + --CODE-INLINE-color: #16191f; /* text color of inline code */ + --CODE-INLINE-BG-color: #d5dbdb; /* background color of inline code */ + --CODE-INLINE-BORDER-color: #d5dbdb; /* border color of inline code */ + + --BOX-BG-color: rgba(255, 255, 255, .833); /* Background color of colored boxes */ + --BOX-CAPTION-color: rgba(255, 255, 255, 1); /* Text color of colored box titles */ + --BOX-TEXT-color: rgba(16, 16, 16, 1); /* Text color of colored box content */ + --BOX-ORANGE-color: #eb5f07; + --BOX-ORANGE-TEXT-color: #d5dbdb; + --BOX-BLUE-color: #0073bb; + --BOX-BLUE-TEXT-color: #d5dbdb; + --BOX-GREEN-color: #1d8102; + --BOX-GREEN-TEXT-color: #d5dbdb; + --BOX-RED-color: #d13212; + --BOX-RED-TEXT-color: #d5dbdb; +} diff --git a/guide/static/fonts/AmazonEmberCd_W_Bd.eot b/guide/static/fonts/AmazonEmberCd_W_Bd.eot new file mode 100644 index 0000000..acb3d4f Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Bd.eot differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Bd.woff b/guide/static/fonts/AmazonEmberCd_W_Bd.woff new file mode 100644 index 0000000..63091ab Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Bd.woff differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Bd.woff2 b/guide/static/fonts/AmazonEmberCd_W_Bd.woff2 new file mode 100644 index 0000000..7bc7ca5 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Bd.woff2 differ diff --git a/guide/static/fonts/AmazonEmberCd_W_BdIt.eot b/guide/static/fonts/AmazonEmberCd_W_BdIt.eot new file mode 100644 index 0000000..a42ef94 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_BdIt.eot differ diff --git a/guide/static/fonts/AmazonEmberCd_W_BdIt.woff b/guide/static/fonts/AmazonEmberCd_W_BdIt.woff new file mode 100644 index 0000000..788cf5d Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_BdIt.woff differ diff --git a/guide/static/fonts/AmazonEmberCd_W_BdIt.woff2 b/guide/static/fonts/AmazonEmberCd_W_BdIt.woff2 new file mode 100644 index 0000000..14469a5 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_BdIt.woff2 differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Lt.eot b/guide/static/fonts/AmazonEmberCd_W_Lt.eot new file mode 100644 index 0000000..8f14edb Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Lt.eot differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Lt.woff b/guide/static/fonts/AmazonEmberCd_W_Lt.woff new file mode 100644 index 0000000..2c68230 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Lt.woff differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Lt.woff2 b/guide/static/fonts/AmazonEmberCd_W_Lt.woff2 new file mode 100644 index 0000000..3fda9ba Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Lt.woff2 differ diff --git a/guide/static/fonts/AmazonEmberCd_W_LtIt.eot b/guide/static/fonts/AmazonEmberCd_W_LtIt.eot new file mode 100644 index 0000000..9d6fbe2 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_LtIt.eot differ diff --git a/guide/static/fonts/AmazonEmberCd_W_LtIt.woff b/guide/static/fonts/AmazonEmberCd_W_LtIt.woff new file mode 100644 index 0000000..2fd79c4 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_LtIt.woff differ diff --git a/guide/static/fonts/AmazonEmberCd_W_LtIt.woff2 b/guide/static/fonts/AmazonEmberCd_W_LtIt.woff2 new file mode 100644 index 0000000..7c35d36 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_LtIt.woff2 differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Rg.eot b/guide/static/fonts/AmazonEmberCd_W_Rg.eot new file mode 100644 index 0000000..0340b19 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Rg.eot differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Rg.woff b/guide/static/fonts/AmazonEmberCd_W_Rg.woff new file mode 100644 index 0000000..3cbccfc Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Rg.woff differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Rg.woff2 b/guide/static/fonts/AmazonEmberCd_W_Rg.woff2 new file mode 100644 index 0000000..3e95548 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Rg.woff2 differ diff --git a/guide/static/fonts/AmazonEmberCd_W_RgIt.eot b/guide/static/fonts/AmazonEmberCd_W_RgIt.eot new file mode 100644 index 0000000..4f18289 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_RgIt.eot differ diff --git a/guide/static/fonts/AmazonEmberCd_W_RgIt.woff b/guide/static/fonts/AmazonEmberCd_W_RgIt.woff new file mode 100644 index 0000000..a51cbc0 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_RgIt.woff differ diff --git a/guide/static/fonts/AmazonEmberCd_W_RgIt.woff2 b/guide/static/fonts/AmazonEmberCd_W_RgIt.woff2 new file mode 100644 index 0000000..c5ddc04 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_RgIt.woff2 differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Th.eot b/guide/static/fonts/AmazonEmberCd_W_Th.eot new file mode 100644 index 0000000..7699e1c Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Th.eot differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Th.woff b/guide/static/fonts/AmazonEmberCd_W_Th.woff new file mode 100644 index 0000000..ed511a5 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Th.woff differ diff --git a/guide/static/fonts/AmazonEmberCd_W_Th.woff2 b/guide/static/fonts/AmazonEmberCd_W_Th.woff2 new file mode 100644 index 0000000..60fa11b Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_Th.woff2 differ diff --git a/guide/static/fonts/AmazonEmberCd_W_ThIt.eot b/guide/static/fonts/AmazonEmberCd_W_ThIt.eot new file mode 100644 index 0000000..81532d9 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_ThIt.eot differ diff --git a/guide/static/fonts/AmazonEmberCd_W_ThIt.woff b/guide/static/fonts/AmazonEmberCd_W_ThIt.woff new file mode 100644 index 0000000..ee19ad6 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_ThIt.woff differ diff --git a/guide/static/fonts/AmazonEmberCd_W_ThIt.woff2 b/guide/static/fonts/AmazonEmberCd_W_ThIt.woff2 new file mode 100644 index 0000000..6b048e5 Binary files /dev/null and b/guide/static/fonts/AmazonEmberCd_W_ThIt.woff2 differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Bd.eot b/guide/static/fonts/AmazonEmberDisplay_W_Bd.eot new file mode 100644 index 0000000..94f8dc0 Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Bd.eot differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Bd.woff b/guide/static/fonts/AmazonEmberDisplay_W_Bd.woff new file mode 100644 index 0000000..5b0146e Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Bd.woff differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Bd.woff2 b/guide/static/fonts/AmazonEmberDisplay_W_Bd.woff2 new file mode 100644 index 0000000..7031e15 Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Bd.woff2 differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_He.eot b/guide/static/fonts/AmazonEmberDisplay_W_He.eot new file mode 100644 index 0000000..64b890f Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_He.eot differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_He.woff b/guide/static/fonts/AmazonEmberDisplay_W_He.woff new file mode 100644 index 0000000..f68714b Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_He.woff differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_He.woff2 b/guide/static/fonts/AmazonEmberDisplay_W_He.woff2 new file mode 100644 index 0000000..26e510e Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_He.woff2 differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Lt.eot b/guide/static/fonts/AmazonEmberDisplay_W_Lt.eot new file mode 100644 index 0000000..06f73d8 Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Lt.eot differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Lt.woff b/guide/static/fonts/AmazonEmberDisplay_W_Lt.woff new file mode 100644 index 0000000..6cd516b Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Lt.woff differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Lt.woff2 b/guide/static/fonts/AmazonEmberDisplay_W_Lt.woff2 new file mode 100644 index 0000000..73c5cc3 Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Lt.woff2 differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Md.eot b/guide/static/fonts/AmazonEmberDisplay_W_Md.eot new file mode 100644 index 0000000..a340601 Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Md.eot differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Md.woff b/guide/static/fonts/AmazonEmberDisplay_W_Md.woff new file mode 100644 index 0000000..0851c05 Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Md.woff differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Md.woff2 b/guide/static/fonts/AmazonEmberDisplay_W_Md.woff2 new file mode 100644 index 0000000..28a10be Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Md.woff2 differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Rg.eot b/guide/static/fonts/AmazonEmberDisplay_W_Rg.eot new file mode 100644 index 0000000..7bb09cc Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Rg.eot differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Rg.woff b/guide/static/fonts/AmazonEmberDisplay_W_Rg.woff new file mode 100644 index 0000000..3a804d6 Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Rg.woff differ diff --git a/guide/static/fonts/AmazonEmberDisplay_W_Rg.woff2 b/guide/static/fonts/AmazonEmberDisplay_W_Rg.woff2 new file mode 100644 index 0000000..15003bb Binary files /dev/null and b/guide/static/fonts/AmazonEmberDisplay_W_Rg.woff2 differ diff --git a/guide/static/fonts/AmazonEmberMono_W_Bd.eot b/guide/static/fonts/AmazonEmberMono_W_Bd.eot new file mode 100644 index 0000000..13349be Binary files /dev/null and b/guide/static/fonts/AmazonEmberMono_W_Bd.eot differ diff --git a/guide/static/fonts/AmazonEmberMono_W_Bd.woff b/guide/static/fonts/AmazonEmberMono_W_Bd.woff new file mode 100644 index 0000000..f36c11b Binary files /dev/null and b/guide/static/fonts/AmazonEmberMono_W_Bd.woff differ diff --git a/guide/static/fonts/AmazonEmberMono_W_Bd.woff2 b/guide/static/fonts/AmazonEmberMono_W_Bd.woff2 new file mode 100644 index 0000000..4531f8c Binary files /dev/null and b/guide/static/fonts/AmazonEmberMono_W_Bd.woff2 differ diff --git a/guide/static/fonts/AmazonEmberMono_W_Rg.eot b/guide/static/fonts/AmazonEmberMono_W_Rg.eot new file mode 100644 index 0000000..fa0174d Binary files /dev/null and b/guide/static/fonts/AmazonEmberMono_W_Rg.eot differ diff --git a/guide/static/fonts/AmazonEmberMono_W_Rg.woff b/guide/static/fonts/AmazonEmberMono_W_Rg.woff new file mode 100644 index 0000000..a445e3a Binary files /dev/null and b/guide/static/fonts/AmazonEmberMono_W_Rg.woff differ diff --git a/guide/static/fonts/AmazonEmberMono_W_Rg.woff2 b/guide/static/fonts/AmazonEmberMono_W_Rg.woff2 new file mode 100644 index 0000000..db13186 Binary files /dev/null and b/guide/static/fonts/AmazonEmberMono_W_Rg.woff2 differ diff --git a/guide/static/fonts/AmazonEmber_W_Bd.eot b/guide/static/fonts/AmazonEmber_W_Bd.eot new file mode 100644 index 0000000..220b66b Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Bd.eot differ diff --git a/guide/static/fonts/AmazonEmber_W_Bd.woff b/guide/static/fonts/AmazonEmber_W_Bd.woff new file mode 100644 index 0000000..cc896a9 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Bd.woff differ diff --git a/guide/static/fonts/AmazonEmber_W_Bd.woff2 b/guide/static/fonts/AmazonEmber_W_Bd.woff2 new file mode 100644 index 0000000..229e79a Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Bd.woff2 differ diff --git a/guide/static/fonts/AmazonEmber_W_BdIt.eot b/guide/static/fonts/AmazonEmber_W_BdIt.eot new file mode 100644 index 0000000..fee5fe7 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_BdIt.eot differ diff --git a/guide/static/fonts/AmazonEmber_W_BdIt.woff b/guide/static/fonts/AmazonEmber_W_BdIt.woff new file mode 100644 index 0000000..bf5593c Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_BdIt.woff differ diff --git a/guide/static/fonts/AmazonEmber_W_BdIt.woff2 b/guide/static/fonts/AmazonEmber_W_BdIt.woff2 new file mode 100644 index 0000000..3674f31 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_BdIt.woff2 differ diff --git a/guide/static/fonts/AmazonEmber_W_He.eot b/guide/static/fonts/AmazonEmber_W_He.eot new file mode 100644 index 0000000..a6a8af2 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_He.eot differ diff --git a/guide/static/fonts/AmazonEmber_W_He.woff b/guide/static/fonts/AmazonEmber_W_He.woff new file mode 100644 index 0000000..6544aa0 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_He.woff differ diff --git a/guide/static/fonts/AmazonEmber_W_He.woff2 b/guide/static/fonts/AmazonEmber_W_He.woff2 new file mode 100644 index 0000000..5123580 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_He.woff2 differ diff --git a/guide/static/fonts/AmazonEmber_W_HeIt.eot b/guide/static/fonts/AmazonEmber_W_HeIt.eot new file mode 100644 index 0000000..2b8372f Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_HeIt.eot differ diff --git a/guide/static/fonts/AmazonEmber_W_HeIt.woff b/guide/static/fonts/AmazonEmber_W_HeIt.woff new file mode 100644 index 0000000..80a26e5 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_HeIt.woff differ diff --git a/guide/static/fonts/AmazonEmber_W_HeIt.woff2 b/guide/static/fonts/AmazonEmber_W_HeIt.woff2 new file mode 100644 index 0000000..70a5b60 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_HeIt.woff2 differ diff --git a/guide/static/fonts/AmazonEmber_W_Lt.eot b/guide/static/fonts/AmazonEmber_W_Lt.eot new file mode 100644 index 0000000..21b3663 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Lt.eot differ diff --git a/guide/static/fonts/AmazonEmber_W_Lt.woff b/guide/static/fonts/AmazonEmber_W_Lt.woff new file mode 100644 index 0000000..eff3740 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Lt.woff differ diff --git a/guide/static/fonts/AmazonEmber_W_Lt.woff2 b/guide/static/fonts/AmazonEmber_W_Lt.woff2 new file mode 100644 index 0000000..d948e71 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Lt.woff2 differ diff --git a/guide/static/fonts/AmazonEmber_W_LtIt.eot b/guide/static/fonts/AmazonEmber_W_LtIt.eot new file mode 100644 index 0000000..38a6ab5 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_LtIt.eot differ diff --git a/guide/static/fonts/AmazonEmber_W_LtIt.woff b/guide/static/fonts/AmazonEmber_W_LtIt.woff new file mode 100644 index 0000000..c371cc6 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_LtIt.woff differ diff --git a/guide/static/fonts/AmazonEmber_W_LtIt.woff2 b/guide/static/fonts/AmazonEmber_W_LtIt.woff2 new file mode 100644 index 0000000..0efe708 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_LtIt.woff2 differ diff --git a/guide/static/fonts/AmazonEmber_W_Rg.eot b/guide/static/fonts/AmazonEmber_W_Rg.eot new file mode 100644 index 0000000..c1b57b8 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Rg.eot differ diff --git a/guide/static/fonts/AmazonEmber_W_Rg.woff b/guide/static/fonts/AmazonEmber_W_Rg.woff new file mode 100644 index 0000000..2e78402 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Rg.woff differ diff --git a/guide/static/fonts/AmazonEmber_W_Rg.woff2 b/guide/static/fonts/AmazonEmber_W_Rg.woff2 new file mode 100644 index 0000000..1941e33 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_Rg.woff2 differ diff --git a/guide/static/fonts/AmazonEmber_W_RgIt.eot b/guide/static/fonts/AmazonEmber_W_RgIt.eot new file mode 100644 index 0000000..cbd3aa1 Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_RgIt.eot differ diff --git a/guide/static/fonts/AmazonEmber_W_RgIt.woff b/guide/static/fonts/AmazonEmber_W_RgIt.woff new file mode 100644 index 0000000..a4dbb4d Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_RgIt.woff differ diff --git a/guide/static/fonts/AmazonEmber_W_RgIt.woff2 b/guide/static/fonts/AmazonEmber_W_RgIt.woff2 new file mode 100644 index 0000000..98d867a Binary files /dev/null and b/guide/static/fonts/AmazonEmber_W_RgIt.woff2 differ diff --git a/scripts/cleanup_config.py b/scripts/cleanup_config.py index d582590..e73a18d 100644 --- a/scripts/cleanup_config.py +++ b/scripts/cleanup_config.py @@ -220,24 +220,41 @@ def get_temp_credentials(aws_account, role_name='AWSControlTowerExecution'): Get temporary credentials from STS ''' role_arn = 'arn:aws:iam::' + aws_account + ':role/' + role_name - response = STS.assume_role( - RoleArn=role_arn, - RoleSessionName=str(aws_account + '-' + role_name), - DurationSeconds=3600 - ) - return response['Credentials'] + result = None + try: + response = STS.assume_role( + RoleArn=role_arn, + RoleSessionName=str(aws_account + '-' + role_name), + DurationSeconds=3600 + ) + result = response['Credentials'] + except Exception as exe: + if exe.response['Error']['Code'] == 'AccessDenied': + print('Access denied to assume role: %s', role_arn) + else: + print('Error assuming role: %s', role_arn) + + return result def establish_remote_session(account): ''' Establish remote session ''' - sts_creds = get_temp_credentials(account) - return boto3.Session( - aws_access_key_id=sts_creds['AccessKeyId'], - aws_secret_access_key=sts_creds['SecretAccessKey'], - aws_session_token=sts_creds['SessionToken'] - ) + roles = ['AWSControlTowerExecution', 'OrganizationAccountAccessRole'] + result = None + + for role in roles: + sts_creds = get_temp_credentials(account, role) + if sts_creds: + result = boto3.Session( + aws_access_key_id=sts_creds['AccessKeyId'], + aws_secret_access_key=sts_creds['SecretAccessKey'], + aws_session_token=sts_creds['SessionToken'] + ) + break + + return result def get_log_archive_account(parameter_name='/sra/gd/control-tower/log-archive-account-id'): ''' @@ -266,16 +283,15 @@ def get_account_id(filters='Log Archive'): acct_id = account['Id'] return acct_id -def list_cw_lognames(): +def list_cw_lognames(context): ''' List all CloudWatch logs ''' - cwlogs = SESSION.client('logs') - response = cwlogs.describe_log_groups() + response = context.describe_log_groups() log_groups = response['logGroups'] result = [] while response.get('nextToken'): - response = cwlogs.describe_log_groups(nextToken=response['nextToken']) + response = context.describe_log_groups(nextToken=response['nextToken']) log_groups.extend(response['logGroups']) for log in log_groups: @@ -283,12 +299,19 @@ def list_cw_lognames(): return result -def delete_cw_logs(filters='sra/sra-org-trail'): +def delete_cw_logs(filters='sra/sra-org-trail', account=None): ''' Delete the pre-req data created during testing ''' - cwlogs = SESSION.client('logs') - log_groups = list_cw_lognames() + if account: + session = establish_remote_session(account) + cwlogs = session.client('logs') + print('Account-ID: %s', account) + else: + cwlogs = SESSION.client('logs') + + log_groups = list_cw_lognames(context=cwlogs) + print(filters) for log_group_name in log_groups: if log_group_name.startswith(filters): print('Deleting log group: %s', log_group_name) @@ -316,18 +339,23 @@ def delete_detector(): ''' accounts = get_list_of_accounts() mgt_acct_id = get_management_account_id() - - for account in accounts: + + for account in accounts: if mgt_acct_id != account['Id']: session = establish_remote_session(account['Id']) - gd = session.client('guardduty') + if session: + gd_client = session.client('guardduty') + else: + print('Unable to establish session for account: %s', account['Id']) + gd_client = None else: # Management account - gd = boto3.client('guardduty') + gd_client = boto3.client('guardduty') - detector_ids = get_list_of_detectors() - for det_id in detector_ids: - print('Deleting GuardDuty Detector in %s', account['Id']) - gd.delete_detector(DetectorId=det_id) + if gd_client: + detector_ids = get_list_of_detectors() + for det_id in detector_ids: + print('Deleting GuardDuty Detector in %s', account['Id']) + gd_client.delete_detector(DetectorId=det_id) def run_cleanup(config): ''' @@ -337,18 +365,23 @@ def run_cleanup(config): if item['Type'] == 'STACK': delete_stack(filters=item['Filter']) elif item['Type'] == 'S3_BUCKET': - ACCOUNT_ID = None + account_id = None if 'Account' in item: if item['Account'] in ACCOUNTS: - ACCOUNT_ID = get_account_id(ACCOUNTS[item['Account']]) - print('Account-id: %s', ACCOUNT_ID) - delete_s3_buckets(filters=item['Filter'], account=ACCOUNT_ID) + account_id = get_account_id(ACCOUNTS[item['Account']]) + print('Account-id: %s', account_id) + delete_s3_buckets(filters=item['Filter'], account=account_id) elif item['Type'] == 'SSM_PARAMETER': delete_parameters(filters=item['Filter']) elif item['Type'] == 'STACK_SET': delete_stacksets(filters=item['Filter']) elif item['Type'] == 'LOG_GROUP': - delete_cw_logs(filters=item['Filter']) + account_id = None + if 'Account' in item: + if item['Account'] in ACCOUNTS: + account_id = get_account_id(ACCOUNTS[item['Account']]) + print('Account-id: %s', account_id) + delete_cw_logs(filters=item['Filter'], account=account_id) elif item['Type'] == 'GUARDDUTY_DET': delete_detector() else: